Duvida com StringList

Delphi

22/09/2005

por favor pessoal estou começando usar StringList agora e estou com algumas duvidas:

porque só estou pegando as duas primeiras linhas do arquivo ?

var
      arq: TStringList;
      i  : Integer;
begin
    arq :=  TStringList.Create;
    arq.LoadFromFile(´c:\08303001.R01´);
  try
    for i := 0 to arq.Count - 1 do
      begin
        Memo1.Lines.Add(arq.Strings[i]);
      end;
  finally
    FreeAndNil(arq);
  end;
end;




Fabiano Góes

Fabiano Góes

Curtidas 0

Respostas

Rjun

Rjun

22/09/2005

Não deveria. Seu código está correto. Seu arquivo tem mais de 2 linhas?


GOSTEI 0
Fabiano Góes

Fabiano Góes

22/09/2005

Rjun, sim meu arqruivo tem mais de 2 linhas

eu carreguei outro arquivo e deu certo.

algum caracter do outro arquivo que está impedindo de passar para as outras linhas

:?


GOSTEI 0
Bmetric

Bmetric

22/09/2005

Leia pelo Notepad e veja qtas linhas aparecem.


GOSTEI 0
Martins

Martins

22/09/2005

[quote:bb52401df7=´Fabiano Góes´]Rjun, sim meu arqruivo tem mais de 2 linhas

eu carreguei outro arquivo e deu certo.

algum caracter do outro arquivo que está impedindo de passar para as outras linhas

:?[/quote:bb52401df7]

Pode ser, seu código está correto, se vc pudesse postar parte do conteúdo desse arquivo, seria melhor, poderiamos ver se tem algo anormal, o melhor seriam os dois arquivos, o q vc testou e funcionou e o outro q só envia 2 linhas.

Martins


GOSTEI 0
Martins

Martins

22/09/2005

Fiz testes com outros arquivos texto e nada de anormal, me foram mostradas todas as linhas do arquivo.

Pode ser mesmo algum caractere do seu arquivo.


GOSTEI 0
Fabiano Góes

Fabiano Góes

22/09/2005

Martins aqui vai uma parte do arquivo texto

H971002200100000101000000000000000000000000000000000000000000*
E000001000000000000000065000003022601858388653411618301 0000
E000002000000000000000050001021284301897107650330220001



o código só me devolvia as duas primeiras linhas !


GOSTEI 0
Massuda

Massuda

22/09/2005

Tem um caractere estranho no final da segunda linha (o quadradinho, sexto do fim para o começo) que provavelmente está atrapalhando a carga no StringList.

Como os fontes do Windows geralmente inserem esse quadradinho para uma série de caracteres não imprimíveis, fica difícil dizer qual caractere está poluindo seus dados (só olhando no arquivo).

Se esse arquivo supostamente deveria conter apenas texto, seria bom você verificar o que ocorreu (pode ser bug no programa que gerou o arquivo ou algum problema no armazenamento do arquivo).

Outra possibilidade é que esse arquivo tenha sido aberto (e salvo) em algum editor de texto que inseriu quebras de linha.


GOSTEI 0
Martins

Martins

22/09/2005

Fiz um teste com o conteúdo passado, coloquei ele em um arquivo texto e consegui transportar os dados para um Memo na boa.
procedure TForm1.Button1Click(Sender: TObject);
var
 arq: TStringList;
 i  : Integer;
begin
  arq :=  TStringList.Create;
  arq.LoadFromFile(´c:\Teste.txt´);
  try
    for i := 0 to arq.Count - 1 do
      begin
        Memo1.Lines.Add(´Linha: ´IntToStr(i)´ - ´  arq.Strings[i]);
      end;
  finally
    FreeAndNil(arq);
  end;
end;


[b:f54f0fc8e8]Teste.txt[/b:f54f0fc8e8] é o arquivo feito pelo bloco de notas com os dados q foram passados.




vc poderia passar o arquivo por e-mail, caso não seja confidêncial.


GOSTEI 0
POSTAR