Velia
19-09-2008, 13:52:35
Hola estoy necesitando extraer cadenas de un archivo plano donde el formato es el siguiente
xx|xxxx|xx xxxx xxxxx x|xxx
xx|xxxx|xxxx xxxx xxxx |xxx
xx|xxxx|xxx xxxx xxx |xxx
Y mi código es este
procedure TfrmImportacion.BitBtn1Click(Sender: TObject);
var
i, j : Integer;
cadena : String;
slFile, slLinea : TStringList;
begin
slFile := TStringList.Create;
slLinea := TStringList.Create;
slLinea.Delimiter:= #124; //Defino el delimitador
slFile.LoadFromFile('D:\wpaboent_p14.txt'); //cargo el archivo
for i:=0 to slFile.Count-1 do //Lee por línea
begin
cadena:='';
slLinea.DelimitedText:=slFile[i];
for j:=0 to slLinea.Count-1 do //Lee por delimitador y por espacio en blanco
begin
cadena := cadena+' '+slLinea[j];
showmessage(cadena);
end; // end for j
end;// end for i
El problema es que en vez de leer solamente por delimitador también lee por espacio en blanco, y no sé como hacer para que solo respete el delimitador | = #124
Desde ya agradezco a quien pueda ayudarme
Saludos Velia
xx|xxxx|xx xxxx xxxxx x|xxx
xx|xxxx|xxxx xxxx xxxx |xxx
xx|xxxx|xxx xxxx xxx |xxx
Y mi código es este
procedure TfrmImportacion.BitBtn1Click(Sender: TObject);
var
i, j : Integer;
cadena : String;
slFile, slLinea : TStringList;
begin
slFile := TStringList.Create;
slLinea := TStringList.Create;
slLinea.Delimiter:= #124; //Defino el delimitador
slFile.LoadFromFile('D:\wpaboent_p14.txt'); //cargo el archivo
for i:=0 to slFile.Count-1 do //Lee por línea
begin
cadena:='';
slLinea.DelimitedText:=slFile[i];
for j:=0 to slLinea.Count-1 do //Lee por delimitador y por espacio en blanco
begin
cadena := cadena+' '+slLinea[j];
showmessage(cadena);
end; // end for j
end;// end for i
El problema es que en vez de leer solamente por delimitador también lee por espacio en blanco, y no sé como hacer para que solo respete el delimitador | = #124
Desde ya agradezco a quien pueda ayudarme
Saludos Velia