leitura de arquivo texto s/ delimitador
Boa tarde a todos
Tenho um arquivo texto que é gerado para um programa Folha de Pagamento, e preciso ler esse arquivo no Delphi, porém esse arquivo não tem delimitador nenhum para final de linha. Espero que vcs possam me ajudar
Exemplo do arquivo que preciso ler
Quero jogar esses dados (separados) em uma StringGrid, até aí eu consegui ler e gravar no StringGrid (usando Copy), mas sempre está retornando a mesma linha (a primeira)
Tenho um arquivo texto que é gerado para um programa Folha de Pagamento, e preciso ler esse arquivo no Delphi, porém esse arquivo não tem delimitador nenhum para final de linha. Espero que vcs possam me ajudar
Exemplo do arquivo que preciso ler
+00144106050800000000010393 +00144106050801000000010363 +00144106050802000000010393 +00144106050803000000010363 +00144206050804000000010393 +00144206050805000000010363 +00144206050806000000010363 +00144206050807000000010393
Quero jogar esses dados (separados) em uma StringGrid, até aí eu consegui ler e gravar no StringGrid (usando Copy), mas sempre está retornando a mesma linha (a primeira)
Facc
Curtidas 0
Respostas
Joaoshi
09/05/2008
Colega, talves ajude
A ideia é pegar o conteudo do arquivo texto e jogar no Memo, e ir lendo cada linha do Memo.
Espero ter ajudado.
A ideia é pegar o conteudo do arquivo texto e jogar no Memo, e ir lendo cada linha do Memo.
procedure TForm1.Button1Click(Sender: TObject); var nLinha : Integer; SuaVariavel1, SuaVariavel2 : String; begin Memo1.Lines.Clear; Memo1.Lines.LoadFromFile(´CaminhoDoArquivo.Texto´); For nLinha := 0 to Memo1.Lines.Count -1 do begin SuaVariavel1 := Copy(Memo1.Lines[nLinha],1,5); SuaVariavel2 := Copy(Memo1.Lines[nLinha],6,3); end; ShowMessage(´Acabou´); end;
Espero ter ajudado.
GOSTEI 0
Facc
09/05/2008
amigo, valeu pela dica, mas carregar no memo eu consegui...
o que quero é pegar akele arquivo e jogar numa stringgrid para tratar os dados, já identifiquei todos os campos e consegui fazer a quebra (fiz um For) mas só retorna a 1ª linha do arquivo.
o que quero é pegar akele arquivo e jogar numa stringgrid para tratar os dados, já identifiquei todos os campos e consegui fazer a quebra (fiz um For) mas só retorna a 1ª linha do arquivo.
GOSTEI 0
Joaoshi
09/05/2008
Colega, neste caso (uma grande linha sem delimitador), você deve saber o tamanho de um ´registro ´ por exemplo:
+00144106050800000000010393 tem 27 caracteres
Fazer um for lendo a até o fim da string de 27 em 27 caracteres, e cada conjunto de 27 caracteres você pega os dados individuais.
Espero ter ajudado.
+00144106050800000000010393 tem 27 caracteres
Fazer um for lendo a até o fim da string de 27 em 27 caracteres, e cada conjunto de 27 caracteres você pega os dados individuais.
Espero ter ajudado.
GOSTEI 0
Facc
09/05/2008
Bom dia
Consegui resolver por parte...
Com essa função consegui pegar linha a linha como precisava, porém qndo jogo na StringGrid ela fica toda branca, sem dado nenhum dentro... Porém a contagem da linha tá real. Como resolvo isso?
Consegui resolver por parte...
Memo1.Lines.Clear; Memo1.Lines.LoadFromFile(´C:\FolhaPgto\DADOS.TXT´); i := 0; sgrid.RowCount := Memo1.Lines.Count; while i <> Memo1.Lines.Count do begin if Copy(Memo1.Lines[i], 1, 3) = ´+00´ then begin sgrid.Cells[0, i] := ´E´ end else begin sgrid.Cells[0, i] := ´S´ end; sgrid.Cells[1, i+1] := Copy(Memo1.Lines[i], 4, 4); sgrid.Cells[2, i+1] := Copy(Memo1.Lines[i], 8, 6); sgrid.Cells[3, i+1] := Copy(Memo1.Lines[i], 14, 2); sgrid.Cells[4, i+1] := Copy(Memo1.Lines[i], 16, 12); Inc(i); Application.ProcessMessages; end;
Com essa função consegui pegar linha a linha como precisava, porém qndo jogo na StringGrid ela fica toda branca, sem dado nenhum dentro... Porém a contagem da linha tá real. Como resolvo isso?
GOSTEI 0