Foros del Web » Programando para Internet » PHP »

Dividir filas muy largas

Estas en el tema de Dividir filas muy largas en el foro de PHP en Foros del Web. Tengo un archivo .txt con registros muy largos, vienen con la siguiente distribución: aaaaaaaaaBBBBBBBBBBBccccccccccDDDDDDDDD y deseo tenerlo de la siguiente forma: aaaaaaaaa BBBBBBBBBBB cccccccccc DDDDDDDDD ...
  #1 (permalink)  
Antiguo 01/07/2010, 17:03
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Dividir filas muy largas

Tengo un archivo .txt con registros muy largos, vienen con la siguiente distribución:

aaaaaaaaaBBBBBBBBBBBccccccccccDDDDDDDDD

y deseo tenerlo de la siguiente forma:

aaaaaaaaa
BBBBBBBBBBB
cccccccccc
DDDDDDDDD

¿alguna recomendación para poder dividir las filas con PHP?

Gracias
  #2 (permalink)  
Antiguo 01/07/2010, 17:36
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 15 años
Puntos: 14
Respuesta: Dividir filas muy largas

Pues lees el primer caracter de toda la cadena, que en tu caso sería la 'a', entonces recorres tu cadena hasta encontrar un caracter diferente al actual, cuando lo encuentres guardas la posición en que se ubica, y a la posición+1 agregas un '\n' para saltar al otro renglón y así sucesivamente. Adicional a eso te recomiendo revises la función substr que de seguro a de servirte.

Saludos.
__________________
Sólo quien nunca nada hace, nunca se equivoca.
  #3 (permalink)  
Antiguo 01/07/2010, 17:47
Avatar de egepe  
Fecha de Ingreso: diciembre-2009
Mensajes: 310
Antigüedad: 14 años, 4 meses
Puntos: 7
Respuesta: Dividir filas muy largas

tienes varias pero dos que te pueden servir es usando:


1) $str= "aaaaaaaaaBBBBBBBBBBBccccccccccDDDDDDDDD";
preg_match_all("#a(.*?)a(?=BB)#", $str, $str1);
preg_match_all("#B(.*?)B(?=cc)#", $str, $str2);
preg_match_all("#c(.*?)B(?=DD)#", $str, $str3);
preg_match_all("#D(.*?)^#", $str, $str4);

2) Otra forma sería utilizar strlen para saber el tamaño del string, luego haces un for desde 0 al tamaño del string y vas verificando con un if o un switch si viene la letra que deseas...

3) Y otra es una trampita con explode...
  #4 (permalink)  
Antiguo 01/07/2010, 21:03
Avatar de egepe  
Fecha de Ingreso: diciembre-2009
Mensajes: 310
Antigüedad: 14 años, 4 meses
Puntos: 7
Respuesta: Dividir filas muy largas

LO probe y funciona el de arriba tiene un par de errores que te corregí

<?php
$str= "aaaaaaaaaBBBBBBBBBBBccccccccccDDDDDDDDD";
preg_match_all("#a(.*?)a(?=BB)#", $str, $str1);
preg_match_all("#B(.*?)B(?=cc)#", $str, $str2);
preg_match_all("#c(.*?)c(?=DD)#", $str, $str3);
preg_match_all("#D(.*?)$#", $str, $str4);
echo $str."<br><pre>";
print_r($str1[0]);
print_r($str2[0]);
print_r($str3[0]);
print_r($str4[0]);

?>

Espero que te sirva el ejemplo
  #5 (permalink)  
Antiguo 02/07/2010, 06:58
 
Fecha de Ingreso: enero-2002
Mensajes: 1.174
Antigüedad: 22 años, 3 meses
Puntos: 21
Respuesta: Dividir filas muy largas

Probando, Gracias.

Los renglones a dividir los tengo en un archivo.txt

Gracias
  #6 (permalink)  
Antiguo 02/07/2010, 17:29
Avatar de egepe  
Fecha de Ingreso: diciembre-2009
Mensajes: 310
Antigüedad: 14 años, 4 meses
Puntos: 7
Respuesta: Dividir filas muy largas

Bueno usa fopen y pasas el contenido a eso que te pase que puede ser una funcion y ya...

Etiquetas: dividir, filas
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 21:10.