Foros del Web » Programando para Internet » PHP »

Problema con saltos de línea en lectura de ficheros e inserción en postgres

Estas en el tema de Problema con saltos de línea en lectura de ficheros e inserción en postgres en el foro de PHP en Foros del Web. Hola a todos! Tengo un fichero zip en el que hay una serie de ficheros .txt. La idea es que el programa descomprime el zip, ...
  #1 (permalink)  
Antiguo 24/06/2009, 07:47
 
Fecha de Ingreso: febrero-2006
Mensajes: 174
Antigüedad: 18 años, 9 meses
Puntos: 0
Problema con saltos de línea en lectura de ficheros e inserción en postgres

Hola a todos!

Tengo un fichero zip en el que hay una serie de ficheros .txt. La idea es que el programa descomprime el zip, saca los ficheros a un directorio y los va recorriendo uno a uno. Cada uno de estos ficheros de texto hay que leerlos línea a línea e insertar su contenido en una base de datos postgres.

Los ficheros son así:

A,B,C,D,E,F
G,H,I,J,K,L
M,N,Ñ,O,P,Q

Hago un split por comas, y cada elemento lo meto en la tabla. El problema es que para el último elemento mete también \n, es decir, quedaría F\n. Este salto, si entras a visualizar la tabla en postgres, no se ve, pero al intentar hacer un innerjoin, no funciona por el salto de línea. La duda que tengo es que no sé si estoy haciendo mal la lectura del fichero o la inserción. ¿Hay alguna manera de quitar esos saltos de línea?

Este es el código que ejecuto:

Código PHP:
//leer cada fichero del directorio
while ($elemento readdir($dir)){
$fila=0;
        
//Recorrer ficheros línea a línea. Cada línea se tokeniza por comas con un split. Se inserta cada token en la base de datos correspondiente.
        
$file=fopen($elemento"r");
        
        if (
$file) {
            while (!
feof($file)) {
                        
$buffer fgets($file4096);
                        
$split_buffer=split(",",$buffer);                    
                    
                        
$v1=$split_buffer[0]; 
                        
$v2=$split_buffer[1];
                        
$v3=$split_buffer[2];
                        
$v4=$split_buffer[3]; 

                                               
$v5=$split_buffer[4];
                                                
$v6=$split_buffer[5];
                                                 
$gbd->insertar($v1,$v2$v3$v4$v5$v6);
                      }
                 }
             
fclose($file);
 } 
Utilizo la librería adodb y ejecuto en Ubuntu.

Muchas gracias y un saludo!
  #2 (permalink)  
Antiguo 24/06/2009, 07:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema con saltos de línea en lectura de ficheros e inserción en postgre

usa trim()
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 24/06/2009, 08:50
 
Fecha de Ingreso: febrero-2006
Mensajes: 174
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: Problema con saltos de línea en lectura de ficheros e inserción en postgre

Joe! Semejante parrafada que he escrito y la solución era tan simple!!! yo pensaba que el trim sólo quitaba espacios en blanco, pero veo que también quita saltos de línea.

Muchas gracias por la respuesta breve, concisa y eficaz!!

Un saludo!
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 22:09.