Estaba interesado en tu función porque ahora me pidieron pasar
3 campos más; me dí cuenta que no lo iba a poder seguir haciendo así porque yo buscaba la coma con la función
POS de los string. El inconveniente era q esta devuelve la posición del 1er caracter q uno busca en la línea; ahora q tenía varias comas no iba a poder seguir insertandole comillas!
Pero bueno, lo acabo de solucionar copiando cada "campo" en strings temporales para así ponerles las comillas a c/u y luego concatenar todo; haciendo la línea. Gracias por todo! Les dejo el código final de la procedure q hice, por si a alguno le interesa...
Código Delphi
[-]procedure TImport_form.FlatSpeedButton1Click(Sender: TObject);
var
Archivocsv, Campos: Tstringlist;
I: Integer;
S,A,B,C,D,E,F,G,H,Y:string;
begin
Datamodule1.Client.Last;
Archivocsv:=Tstringlist.create;
Campos:=Tstringlist.create;
try
Archivocsv.LoadFromFile(Filelistbox1.FileName);
for I:=1 to Archivocsv.Count -1 do
begin
S:=Archivocsv.Strings[i];
Insert('"', S, 1);
Insert('"', S, (Length(S))+1);
Insert('"',S,Pos(',',S));
Insert('"',S,Pos(',',S)+1);
E:=Copy(S,0,Pos(',',S));
A:=Copy(S,Pos(',',S)+1,((Length(S))-Pos(',',S)));
Insert('"',A,Pos(',',A));
Insert('"',A,Pos(',',A)+1);
F:=Copy(A,0,Pos(',',A));
B:=Copy(A,Pos(',',A)+1,((Length(A))-Pos(',',A)));
Insert('"',B,Pos(',',B));
Insert('"',B,Pos(',',B)+1);
G:=Copy(B,0,Pos(',',B));
C:=Copy(B,Pos(',',B)+1,((Length(B))-Pos(',',B)));
Insert('"',C,Pos(',',C));
Insert('"',C,Pos(',',C)+1);
H:=Copy(C,0,Pos(',',C));
D:=Copy(C,Pos(',',C)+1,((Length(C))-Pos(',',C)));
Y:=concat(E,F,G,H,D);
Archivocsv.Strings[i]:=Y;
end;
Archivocsv.SaveToFile(Filelistbox1.FileName);
Archivocsv.LoadFromFile(Filelistbox1.FileName);
for I:=0 to Archivocsv.Count -1 do
begin
CoolGauge1.Progress:=I*100 div Archivocsv.Count;
Campos.clear;
Campos.CommaText:=ArchivoCsv[i];
if Datamodule1.Client.RecordCount=0 then ncli:=0
else ncli:=Datamodule1.Client['CLI_NUM'];
Datamodule1.Client.Insert;
Datamodule1.Client['CLI_NUM']:=ncli + 1;
Datamodule1.Client['CLI_NOM']:=Campos[0];
Datamodule1.Client['CLI_MAIL']:=Campos[1];
Datamodule1.Client['CLI_TEL']:=Campos[2];
Datamodule1.Client['CLI_CALIDAD']:=Campos[3];
Datamodule1.Client['CLI_TELLAB']:=Campos[4];
Datamodule1.Client.Post;
end;
finally
Archivocsv.Free;
Campos.Free;
end;
end;
Saludos!!!