Ver Mensaje Individual
  #35  
Antiguo 28-02-2008
tocomi tocomi is offline
Miembro
 
Registrado: may 2006
Posts: 45
Reputación: 0
tocomi Va por buen camino
Cita:
Empezado por Angel Fernández Ver Mensaje
Lo que voy a intentar hacer es un readln de cada línea del fichero csv, después con la utilidad strman.pas (completísima unidad con infinidad de utilidades para trabajar con cadenas de texto -en torry está-) le voy quitando lo que hay delante de cada ; y lo asigno al campo correspondiente.
Te dejo esto por si te sirve


Código:
 
function Buscandocol(lintmp:string;nrocol:integer):string;
var
i:integer;
hasta:integer;
largo:integer;
dato:string;
valor:integer;
begin
lintmp:=trim(lintmp);
For i:=1 to nrocol do
   begin
   largo:=length(lintmp);
   hasta:=pos(';',lintmp);
   dato:=copy(lintmp,1,hasta-1);
   lintmp:=copy(lintmp,hasta+1,largo);
end;
result:=trim(dato);
end;
Esta funcion lee la linea de texto y te devuelve la columna que le indicas, obviamente las columnas estan separadas por un punto y coma, lo tuve que hacer porque habia un cliente que enviaba los datos en formato CSV, y tenia que separarlos para poder incorporarlos a la base

En terminos practicos haces el readln, lo dejas en una variable string, por ejemplo "linea" y para buascar la quinta columna la sintaxis seria:

Buscandocol(linea,5);

Te devolveria lo que esta en la quinta columna, en formato String

Nos cuentas como te va

Última edición por tocomi fecha: 28-02-2008 a las 13:54:51.
Responder Con Cita