Foros del Web » Programando para Internet » PHP »

Hacer un salto de linea para seguir leyendo

Estas en el tema de Hacer un salto de linea para seguir leyendo en el foro de PHP en Foros del Web. Hola, pues lo que pretendo es leer una linea y saltar a la siguiente en un bucle, pero no se que funcion usar para pasar ...
  #1 (permalink)  
Antiguo 15/07/2007, 08:06
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Hacer un salto de linea para seguir leyendo

Hola, pues lo que pretendo es leer una linea y saltar a la siguiente en un bucle, pero no se que funcion usar para pasar a la siguiente linea, este es el codigo que utilizo para leer 1 linea:
Código PHP:
$mapa_instancias_tipo[$n]= fread($archivo,2); $ignorarfread($archivo,5);
        
$mapa_instancias_grafico[$n]= fread($archivo,5); $ignorarfread($archivo,5);
        switch (
$mapa_instancias_tipo[$n])
        {
            
//Si es instancia de bloqueo...
            
case "bb":
                
$mapa_instancias_argumento1[$n]= fread($archivo,4); $ignorarfread($archivo,5);
                
$mapa_instancias_argumento2[$n]= fread($archivo,3);
            break;
        } 
Este codigo esta en un bucle, pues despues del switch quiero que se pase a la siguiente linea para que empieze otra vez, ¿que funcion uso? gracias

saludos
  #2 (permalink)  
Antiguo 15/07/2007, 10:45
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Hacer un salto de linea para seguir leyendo

la función file() te devuelve el contenido de un archivo en un vector, en donde cada entrada es una línea del archivo.


Saludos.
  #3 (permalink)  
Antiguo 15/07/2007, 12:13
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Hacer un salto de linea para seguir leyendo

Entonces haciendo:
Código PHP:
 $ignorarfile(); 
¿bastaria para saltar una linea?

thx
  #4 (permalink)  
Antiguo 15/07/2007, 12:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Hacer un salto de linea para seguir leyendo

No, mas bien deberias de mantener un puntero de en que parte del archivo estas (ftell), luego usar fseek para moverte entre el archivo, ten en cuenta que tu dices moverme a la siguiente linea pero para PHP y en general cualquier sistema operativo un salto de linea no es mas que un char mas (\n) asi que lo que tienes que hacer es seguir leyendo hasta encontrar un salto de linea y ahi empiezas tu lectura nuevamente.

Saludos.
  #5 (permalink)  
Antiguo 15/07/2007, 12:33
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Hacer un salto de linea para seguir leyendo

ya pero c omo ago un salto de linea ;_;?
  #6 (permalink)  
Antiguo 15/07/2007, 12:41
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: Hacer un salto de linea para seguir leyendo

Es complicado con lo que tienes :\
Por qué no usas file() como te han dicho, y podrás saltar a la siguiente linea simplemente con continue;

Código PHP:
$f file("tu_archivo");
foreach(
$f as $linea) {
  
// en $linea tienes toda una linea completa
  // continue; aqui saltará a la próxima linea

Exitos ^^
  #7 (permalink)  
Antiguo 16/07/2007, 01:20
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Hacer un salto de linea para seguir leyendo

No lo entiendo... si uso "continue;" saltara de linea?, como es posible?
  #8 (permalink)  
Antiguo 16/07/2007, 07:30
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Hacer un salto de linea para seguir leyendo

continue salta a la próxima iteración del bucle (en este caso foreach). La próxima iteración toma la siguiente entrada del vector, que corresponde a la próxima línea del archivo.
  #9 (permalink)  
Antiguo 25/07/2007, 06:05
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Hacer un salto de linea para seguir leyendo

Ya añadi continue pero sige sin funcionar, veamos, lo que quiero esque añadiendo alguna funcion o codigo a:
Código PHP:
for ($n=0;$n<119;$n++)
  {
    
$mapa_instancias_tipo[$n]= fread($archivo,2); $ignorarfread($archivo,5);
        
$mapa_instancias_grafico[$n]= fread($archivo,5); $ignorarfread($archivo,5);
        switch (
$mapa_instancias_tipo[$n])
        {
            
//Si es instancia de bloqueo...
            
case "bb":
                
$mapa_instancias_argumento1[$n]= fread($archivo,4); $ignorarfread($archivo,5);
                
$mapa_instancias_argumento2[$n]= fread($archivo,3);
            break;
            
//Si es instancia de Transportacion
            
case "tt":
                
$mapa_instancias_argumento1[$n]= fread($archivo,4); $ignorarfread($archivo,5);
                
$mapa_instancias_argumento2[$n]= fread($archivo,3);
            break;
        }
  } 
Salte de linea en el archivo, SOLO ESO

gracias
  #10 (permalink)  
Antiguo 25/07/2007, 07:29
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Hacer un salto de linea para seguir leyendo

¿y por qué no intentás incorporando las sugerencias que te hemos dado?
  #11 (permalink)  
Antiguo 25/07/2007, 07:40
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Hacer un salto de linea para seguir leyendo

no se como hacerlo =s
  #12 (permalink)  
Antiguo 25/07/2007, 09:27
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Hacer un salto de linea para seguir leyendo

Pues pon un trozo de código más grande, para que veamos el que ya pegaste en su contexto. Así será mejor.
  #13 (permalink)  
Antiguo 25/07/2007, 10:30
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Hacer un salto de linea para seguir leyendo

Ese es el codigo =s, pretendo leer una linea y saltar a la siguiente para leerla tambien y asi hasta que acabe el bucle..
  #14 (permalink)  
Antiguo 25/07/2007, 12:52
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Hacer un salto de linea para seguir leyendo

Bien, pero explicá de dónde viene $archivo y cuál es el objetivo práctico de ese código.
¿es algo que leés de un archivo o de la red?
¿para qué sirve el código que pegaste?

Las respuestas a estas preguntas son importantes, quizás tanto como el código mismo, a la hora de dar una solución.


Saludos.
  #15 (permalink)  
Antiguo 27/07/2007, 07:52
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Hacer un salto de linea para seguir leyendo

$archivo contiene el archivo abierto:
Código PHP:
$archivofopen("../../MAPAS/1.txt","r"); 
Las lineas del txt tienen la forma:
Código:
tt 00005 00012 023
Entonces, mi algoritmo lo que hace es leer los 2 primeros caracteres, salta 5 caracteres, lee 5 caracteres, salta 5 caracteres etc.... recoge la informacion de esa linea, y lo que quiero esque salte a la siguiente y haga lo mismo, ya que el txt tiene 119 lineas con ese contenido, ¿entiendes?, espero que ahora me puedas ayudar, gracias!
  #16 (permalink)  
Antiguo 27/07/2007, 09:33
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Hacer un salto de linea para seguir leyendo

ahora sí se entiende todo.
Te hago una sugerencia, si los datos están separados por un espacio y lo que querés es tener cada "trozo", es mejor usar explode.
Usando
Código PHP:
$datos explode(' ''tt 00005 00012 023'); 
$datos[0] es 'tt',
$datos[1] es '00005',
$datos[2] es '00012' y
$datos[3] es '023'

Vamos:

Código PHP:
// $archivo es una matriz en donde cada entrada es una línea del archivo.
$archivo file("../../MAPAS/1.txt","r");

// vamos secuencialmente por cada entrada de $archivo
foreach($archivo as $linea)
{
    
$datos explode(' '$linea);
    
// aquí pones el switch, recordando la estructura de $datos 
    // en vez de usar tantos fread


Espero que soluciones el problema ahora.


Saludos.
  #17 (permalink)  
Antiguo 29/07/2007, 08:30
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 18 años, 7 meses
Puntos: 5
Re: Hacer un salto de linea para seguir leyendo

Ya y donde esta el salto de linea?? no quier usar explode..
  #18 (permalink)  
Antiguo 29/07/2007, 11:19
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Hacer un salto de linea para seguir leyendo

http://www.php.net/file
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 06:19.