Foros del Web » Programando para Internet » PHP »

Como mostrar parte de un archivo de texto que contenga un ID seleccionado?

Estas en el tema de Como mostrar parte de un archivo de texto que contenga un ID seleccionado? en el foro de PHP en Foros del Web. Me explico. Si tengo datos que se almacenan en archivos de texto de la siguiente forma: Código: Id |^| Nombre |^| Apellido |^| Pais |^| ...
  #1 (permalink)  
Antiguo 06/09/2006, 20:49
Avatar de LedideR  
Fecha de Ingreso: noviembre-2004
Ubicación: Temuco, Chile
Mensajes: 39
Antigüedad: 19 años, 5 meses
Puntos: 1
Como mostrar parte de un archivo de texto que contenga un ID seleccionado?

Me explico. Si tengo datos que se almacenan en archivos de texto de la siguiente forma:
Código:
Id |^| Nombre |^| Apellido |^| Pais |^| Edad
es decir algo asi:

Código:
1 |^| Juan |^| Fernandez |^| Chile |^| 25
2 |^| Pedro |^| Diaz |^| Argentina |^| 19
5 |^| Adolfo |^| Peña |^| Chile |^| 21
10 |^| Hector |^| Muñoz |^| Venezuela |^| 28
Ahora mi pregunta. ¿Como puedo obtener, por ejemplo, el ID número 5 y los datos que contiene esa linea? ¿Se puede hacer que el nombre pase a ser $nombre, el apellido sea $apellido, etc?

Gracias de Antemano
__________________
-=| L\€/O |=-
  #2 (permalink)  
Antiguo 06/09/2006, 23:10
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 17 años, 8 meses
Puntos: 0
Hay diversas formas de hacer lo que tú dices. Para mí la más sencilla que se me ocurre es usar un combinación entre las funciones file() y explode(). Esto será buena idea mientras el archivo no sea demasiado grande, puesto que file() carga cada línea del fichero en una posición de un array.

Teniendo en cuenta lo anterior te puedes montar una función como ésta:

Código PHP:
function obtener_campo($Fila$Columna) {
    static 
$lineas;
    if (!isset(
$lineas))
        
$lineas=file("NombreArchivo.txt");
    
$campos=explode("|^|"$lineas[$Fila]);
    return 
$campos[$Columna];

Esto devuelve un campo del fichero dada una fila. En tu ejemplo llamando a obtener_campo(2,3) se obtiene Chile. Para obtener toda la fila te podría servir esto:

Código PHP:
$id obtener_campo(2,0);
$nombre obtener_campo(2,1);
$apellido obtener_campo(2,2);
// ... 
Ya te digo que esto sólo será eficiente para archivos no demasiado grandes. Si tu archivo es muy grande (o puede llegar a serlo) entonces tendrás que enfocarlo de otro modo.
  #3 (permalink)  
Antiguo 07/09/2006, 12:21
Avatar de LedideR  
Fecha de Ingreso: noviembre-2004
Ubicación: Temuco, Chile
Mensajes: 39
Antigüedad: 19 años, 5 meses
Puntos: 1
Muchisimas Gracias, me ayudastes mucho!
__________________
-=| L\€/O |=-
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:17.