Manipular TXT

Delphi

07/06/2016

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.
Valtenci Santos

Valtenci Santos

Curtidas 0

Respostas

Natanael Ferreira

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
POSTAR