Manipular TXT
Ola amigo, eu tenho um arquivo txt com nome dados.txt, a estrutura desse arquivo esta na seguinte forma
007886ZINCO 28 EM ROLO 80CM METRO MTR$ 21,00
002751ZINCO 28 EM ROLO 70CM METRO MTR$ 19,00
005701ZINCO 28 EM ROLO 60CM-METRO MTR$ 18,00
002494ZINCO 28 EM ROLO 50CM - METROMTR$ 14,00
003293ZINCO 28 EM ROLO 1.00M-METRO MTR$ 29,00
002310ZINCO 28 EM CHAPA 2X1 NR$ 38,00
003692ZARCAO OXIDO ZARCOFER IQINE LT LTR$ 19,90
002856ZARCAO OXIDO ZARCOFER IQINE GL GLR$ 69,90
003241ZARCAO OXIDO STARLX LT LTR$ 11,50
000280ZARCAO OXIDO STARLX GL NR$ 38,00
004884ZARCAO OXIDO B.GA-IMPERIAL-LITROLTR$ 13,50
009982ZARCAO OXIDO B.GA-IMPERIAL-GALAOGLR$ 42,00
005726ZARCAO CINZA ZARCOFER IQINE GL GLR$ 54,00
003722ZARCAO CINZA STARLX LITRO LTR$ 11,50
005355ZARCAO CINZA STARLX GL GLR$ 38,00
006966X-BOX 360 4GB #NR$ 1.450,00
003745VIOLAO TRADICIONAL PRETO #NR$ 210,00
003988VIOLAO TRADICIONAL NATRAL #NR$ 410,00
000120VIOLAO MENFHIS LILAS #NR$ 190,00
007122VIOLAO ELETRICO GIANNINI PRETO #NR$ 495,00
004736VIOLAO ELETRICO GIANNINI NATRAL#NR$ 495,00
*** es minha duvida***
como faço para separa esses dados deixando dessa maneira:
005726; ZARCAO CINZA ZARCOFER IQINE; GL; R$ 54,00
003722; ZARCAO CINZA STARLX LITRO; LT; R$ 11,50
separado por(;) ou (|) piper/pipe
desde ja agradeço pela dica.
007886ZINCO 28 EM ROLO 80CM METRO MTR$ 21,00
002751ZINCO 28 EM ROLO 70CM METRO MTR$ 19,00
005701ZINCO 28 EM ROLO 60CM-METRO MTR$ 18,00
002494ZINCO 28 EM ROLO 50CM - METROMTR$ 14,00
003293ZINCO 28 EM ROLO 1.00M-METRO MTR$ 29,00
002310ZINCO 28 EM CHAPA 2X1 NR$ 38,00
003692ZARCAO OXIDO ZARCOFER IQINE LT LTR$ 19,90
002856ZARCAO OXIDO ZARCOFER IQINE GL GLR$ 69,90
003241ZARCAO OXIDO STARLX LT LTR$ 11,50
000280ZARCAO OXIDO STARLX GL NR$ 38,00
004884ZARCAO OXIDO B.GA-IMPERIAL-LITROLTR$ 13,50
009982ZARCAO OXIDO B.GA-IMPERIAL-GALAOGLR$ 42,00
005726ZARCAO CINZA ZARCOFER IQINE GL GLR$ 54,00
003722ZARCAO CINZA STARLX LITRO LTR$ 11,50
005355ZARCAO CINZA STARLX GL GLR$ 38,00
006966X-BOX 360 4GB #NR$ 1.450,00
003745VIOLAO TRADICIONAL PRETO #NR$ 210,00
003988VIOLAO TRADICIONAL NATRAL #NR$ 410,00
000120VIOLAO MENFHIS LILAS #NR$ 190,00
007122VIOLAO ELETRICO GIANNINI PRETO #NR$ 495,00
004736VIOLAO ELETRICO GIANNINI NATRAL#NR$ 495,00
*** es minha duvida***
como faço para separa esses dados deixando dessa maneira:
005726; ZARCAO CINZA ZARCOFER IQINE; GL; R$ 54,00
003722; ZARCAO CINZA STARLX LITRO; LT; R$ 11,50
separado por(;) ou (|) piper/pipe
desde ja agradeço pela dica.
Valtenci Santos
Curtidas 0
Respostas
Natanael Ferreira
07/06/2016
Teste o código abaixo:
var
sl: TStringList;
Origem, Destino, linha, codigo, produto, preco: string;
f: TextFile;
begin
Origem := 'c:\origem.txt'; // Caminho arquivo de origem
Destino := 'c:\destino.txt'; // Caminho arquivo de destino
sl := TStringList.Create;
sl.Sorted := True;
sl.Duplicates := dupIgnore; // Ignora as tentativas de adicionar itens duplicados à lista
try
AssignFile(f, Origem);
Reset(f);
while not(Eof(f)) do
begin
ReadLn(f, linha);
codigo := Copy(linha, 1, 6) + ';';
produto := Copy(linha, 7, Pos('R$', linha) - 7) + ';';
preco := Copy(linha, Pos('R$', linha));
sl.Add(codigo + produto + preco);
end;
finally
CloseFile(f);
end;
sl.SaveToFile(Destino);
FreeAndNil(sl);
end;GOSTEI 0