Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/06/2009, 07:47
xayide
 
Fecha de Ingreso: febrero-2006
Mensajes: 174
Antigüedad: 18 años, 2 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!