Foros del Web » Programando para Internet » PHP »

Obtener delimitadores

Estas en el tema de Obtener delimitadores en el foro de PHP en Foros del Web. Hola, tengo un archivo de texto con el siguiente formato: Código: 33 46.50 46.43 --------------------------------------------------------- 43 -11.50 3.50 --------------------------------------------------------- 58 55.24 55.00 --------------------------------------------------------- Y así ...
  #1 (permalink)  
Antiguo 10/12/2009, 15:59
Avatar de cemansilla  
Fecha de Ingreso: septiembre-2007
Ubicación: Buenos Aires, Argentina, Argentina
Mensajes: 214
Antigüedad: 16 años, 7 meses
Puntos: 6
Obtener delimitadores

Hola, tengo un archivo de texto con el siguiente formato:

Código:
33
46.50
46.43
---------------------------------------------------------
43
-11.50
3.50
---------------------------------------------------------
58
55.24
55.00
---------------------------------------------------------
Y así un listado larguisimo, necesito procesar ese archivo para volcar los datos en una hoja de calculo.

Primero separo en arrays tomando como un delimitador las lineas punteadas, pero luego no consigo separar cada uno de los 3 valores:

Código PHP:
$fp fopen("listado_procesado.txt""r");
$contenido fread($fpfilesize("listado_procesado.txt"));
fclose($fp);

$p1 explode("---------------------------------------------------------"$contenido);

foreach(
$p1 as $_1){
    echo 
$_1 "<hr />"// imprimo en pantalla para ver que tengo
    
$p2 explode("\r\n"trim($_1)); // intento separar con salto de linea y retorno de carro.

Al explode del foreach probe pasando como parametro: "\r", "\n", "\r\n", "\n\r", " ".

En definitiva, quisiera saber si hay forma de saber que es lo que esta separando a esos valores almacenados en el array.

saludos y gracias!
  #2 (permalink)  
Antiguo 10/12/2009, 16:05
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Obtener delimitadores

Es que esta bien lo que esta pasando... o sea Estas explotando por los guiones, y en cada posicion del array se guardan 3 numeros!

Deberias separar cada numero por un guion, por ejemplo

33-25-24.15-45-87

Y luego explotar por el guion, y en cada posicion del array tendrias un numero solo =)
  #3 (permalink)  
Antiguo 10/12/2009, 16:12
Avatar de cemansilla  
Fecha de Ingreso: septiembre-2007
Ubicación: Buenos Aires, Argentina, Argentina
Mensajes: 214
Antigüedad: 16 años, 7 meses
Puntos: 6
Respuesta: Obtener delimitadores

Cita:
Iniciado por jackson666 Ver Mensaje
Es que esta bien lo que esta pasando... o sea Estas explotando por los guiones, y en cada posicion del array se guardan 3 numeros!

Deberias separar cada numero por un guion, por ejemplo

33-25-24.15-45-87

Y luego explotar por el guion, y en cada posicion del array tendrias un numero solo =)
El tema es que el archivo contiene unos 5 mil de esos grupos de numeros y es una perdida de tiempo enorme rehacer ese listado, estya sacado de una base de datos procesando muchas tablas y registros, necesito trabajar asi como esta, por lo que agregar esos guiones esta descartado.

Necesito saber que es lo que esta separando a esos numeros.
  #4 (permalink)  
Antiguo 10/12/2009, 17:21
Avatar de bacdavi  
Fecha de Ingreso: junio-2006
Ubicación: http://localhost/
Mensajes: 351
Antigüedad: 17 años, 11 meses
Puntos: 7
Respuesta: Obtener delimitadores

si esta en tu DB, solo realiza la consulta, y vuelcala en tu archivo *.xls;
hasta ahora eso he entendido, o explicame bien que es lo que deseas hacer, si decis que ya esta en tu DB... asumo por logica que deberías solo hacer una consulta....
  #5 (permalink)  
Antiguo 10/12/2009, 17:34
Avatar de cemansilla  
Fecha de Ingreso: septiembre-2007
Ubicación: Buenos Aires, Argentina, Argentina
Mensajes: 214
Antigüedad: 16 años, 7 meses
Puntos: 6
Respuesta: Obtener delimitadores

Cita:
Iniciado por bacdavi Ver Mensaje
si esta en tu DB, solo realiza la consulta, y vuelcala en tu archivo *.xls;
hasta ahora eso he entendido, o explicame bien que es lo que deseas hacer, si decis que ya esta en tu DB... asumo por logica que deberías solo hacer una consulta....
El tema es que esos datos si estan en una BD, peor hacer ese listado llevo mucho tiempo y tengo que trabajarlos asi como estan.

Son datos con consultas cruzadas, algo complejo y que no viene al caso.

No es tan sencillo como volver a hacer el listado, sino que hay que trabajar asi como esta.

Gracias...
  #6 (permalink)  
Antiguo 10/12/2009, 19:21
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Obtener delimitadores

La verdad esta bien jodido che, no hay ningun patron con el cual explotar, o separar o algo, no se que decirte...
Buscaste en google a ver si hay alguine que le haya pasado algo asi??
  #7 (permalink)  
Antiguo 10/12/2009, 19:50
Avatar de cemansilla  
Fecha de Ingreso: septiembre-2007
Ubicación: Buenos Aires, Argentina, Argentina
Mensajes: 214
Antigüedad: 16 años, 7 meses
Puntos: 6
Respuesta: Obtener delimitadores

Cita:
Iniciado por jackson666 Ver Mensaje
La verdad esta bien jodido che, no hay ningun patron con el cual explotar, o separar o algo, no se que decirte...
Buscaste en google a ver si hay alguine que le haya pasado algo asi??
Si busque pero tampoco se como hacerlo :(... o sea cuales son las palabras claves de este problema...

Es raro porque el archivo fue hecho usando "\r\n" pero no se puede hacer el explode con ese parametro, si no encuentro solucion pronto tendre que perder un monton de tiempo haciendolo otra vez...
  #8 (permalink)  
Antiguo 10/12/2009, 20:04
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Obtener delimitadores

lo mire un rato, y la verdad yo lo veo sencillo...

archivo.dat
Código:
33
46.50
46.43
---------------------------------------------------------
43
-11.50
3.50
---------------------------------------------------------
58
55.24
55.00
---------------------------------------------------------
ejemplo 1
Código PHP:
$test file('archivo.dat');
$out $tmp = array();

foreach (
$test as $line)
{
  if (
substr_count($line'-') > 1)
  {
    
$out []= $tmp;
    
$tmp = array();
  }
  else 
$tmp []= $line;
}

 echo 
"<pre>$out</pre>"
ejemplo 2
Código PHP:
$test preg_match_all('/(-?[\.\d]+\s+)+-*/Us'file_get_contents('archivo.dat'), $matches);
$out array_map('trim'$matches[1]);

echo 
"<pre>$out</pre>"
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 10/12/2009, 20:06
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Obtener delimitadores

Y la verdad es todo un tema che...
Lo de \r\n son saltos de linea quie se ejcutan al escribir un archivo, no es algo "fisico" que este escrito en el txt....

Bueno, en fin: he aqui la solucion (te va a salir caro eh!)

Código PHP:
<?php

$array
=file("tuArchivo.txt");

for(
$i=0;$i<count($array);$i++){
    echo 
$array[$i]."<br />";
}

?>
Esto es solo xa q veas lo q imprime, para q sepas como estan los datos en el array =)

EDIT: me ganaste pateketrueke!!!! lo estaba escribiendo!
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 04:06.