Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/08/2006, 18:00
vcayob
 
Fecha de Ingreso: agosto-2003
Ubicación: Lima
Mensajes: 123
Antigüedad: 20 años, 7 meses
Puntos: 3
Archivo plano ascii

Tengo un problema al parecer con el retorno de linea.
Necesito actualizar una tabla de una base de datos, la informacion la debo de tomar de un archivo texto (delimitado por comas), pero no puedo determinar donde concluye una linea.

En los datos de ejemplo que estoy poniendo abajo e insertado una linea en blanco entre linea y linea para no confundir.

Cuando empleo este comando me retorna en $lineas un arreglo con todos los datos de todas las filas, pero yo necesito solo los datos de una fila para asi poder hacer inser o update a mi tabla y posteriormente tomar la siguiente fila.

$lineas = split(',',$content);


Entorno
======
Linux Mandriva 2006, Postgresql 8 y PHP5.



Esta es la data (ENVLORDC.TXT)
========================

"200601068","02","5","07919","TAIMA INTERNATIONAL INC."," -",20060720,3852.0000,22726.80,"DOL","C30","Com pra de Calzado","MGUTIERR",20060905,20060905,"CAL",""

"200601079","02","5","07777","MANUFACTURA BOLIVIANA S.A./MANACO","FABRICA DE CALZADO MANACO CASILLA 513 COCHABAMBA",20060719,600.0000,4710.00,"DOL","F90", "Compra de Calzado","MGUTIERR",20060915,20060915,"CAL",""

"200600844","02","5","07796","LEA INTERNATIONAL","RM.1106 #18 XIBAH DONGLI CHAO YANG DISTR. -",20060614,2120.0000,13610.40,"DOL","C12","Com pra de Calzado","MGUTIERR",20060730,20060730,"CAL",""



Este es el codigo
============

function pMigra_Ordenes3() {

print "Migrando datos de Ordenes de Compra a sComercial<br>";

//$cnx = gConecBD('ADODB', 'pgsql', 'scomercial');

$arch = "/var/www/htdocs/temporal/ENVLORDC.TXT";
$fp = fopen($arch,"rt");
$content = fread($fp,filesize($arch));
fclose($fp);
$lineas = split(',',$content);

//print_r($lineas)."<br>";
//echo count($lineas)."<br>";

// Aqui deberia recorrer linea por linea el archivo de texto.
for ($i=0; $i < count($lineas); $i ) {

//echo $lineas[0]."<br>";

// Aqui verifico si ya existe el registro.
$sql = "select nro_ocompra from tocompra where nro_ocompra = '".$lineas[0]."'";
//$cnx->debug = true;
$reg = $cnx->Execute($sql);
if ($reg === false) die($cnx->ErrorMsg());
$nReg = $reg->RecordCount();
unset($sql); $reg->close();

if ($nReg>0) {
// actualizo el registro
$sql = "update .......";
}else{
// inserto nuevo registro
$sql = "insert .......";
}

//$cnx->debug = true;
$reg = $cnx->Execute($sql);
if ($reg === false) die($cnx->ErrorMsg());
unset($sql); $reg->close();

}

//$cnx->close();
}


Muchas gracias por su ayuda.