Jump to content



Foto

como ler um arquivo texto no delphi?



Existem 5 respostas neste tópico

#1 Gary    

Gary
  • Participante
  • 148 mensagens

Publicado 03 March 2004 - 08:19 AM

oi gente blz?
seguinte.. eu não mexo com delphi, mas esse periodo na facul eu estou tendo análise e projeto de sistemas II, dae o professor está pedindo uma aplicação em delphi que tem de fazer o seguinte:
abrir um arquivo texto.
contar quantas linhas tem
e após a ultima linha inserir o comentário " total de linhas=" +total_de_linhas;
e salvar este arquivo assim.
bom.. minha dúvida é como fazer para abrir o arquivo texto..
tem no delphi akela " textarea" ?
da para carregar o arquivo la?
e como no caso eu pularia de uma linha para outra....
até aí eu acho que tenho algumas idéias para tentar lá em casa
o problema é como fazer para salvar esse arquivo, pois realmente não sei nada em delphi.. valeu!


#2 Rafael Rascalhia    

Rafael Rascalhia
  • Participante
  • 872 mensagens

Publicado 03 March 2004 - 10:31 AM

----------------
Gary escreveu:

oi gente blz?
seguinte.. eu não mexo com delphi, mas esse periodo na facul eu estou tendo análise e projeto de sistemas II, dae o professor está pedindo uma aplicação em delphi que tem de fazer o seguinte:
abrir um arquivo texto.
contar quantas linhas tem
e após a ultima linha inserir o comentário ' total de linhas=' +total_de_linhas;
e salvar este arquivo assim.
bom.. minha dúvida é como fazer para abrir o arquivo texto..
tem no delphi akela ' textarea' ?
da para carregar o arquivo la?
e como no caso eu pularia de uma linha para outra....
até aí eu acho que tenho algumas idéias para tentar lá em casa
o problema é como fazer para salvar esse arquivo, pois realmente não sei nada em delphi.. valeu!

----------------

O arquivo texto tem delimitadores de campos? Como espaços, pontos e virgulas??
se sim você pode fazer uma procedure de leitura do arquivo e verificar se ele encontra esse delimitador de campo, se encontrou ele incrementa o campo, depois é só posicionar no fim do arquivo e incluir o total de linhas.

EDIT: Procedure não, function.

#3 Iluvatar    

Iluvatar
  • Participante
  • 178 mensagens

Publicado 03 March 2004 - 11:24 AM

Olha, não sei exatamente se é isso que você quer, mas você pode fazer assim:

procedure TXT;
var
str: TStringList;
i : integer;
begin
str := TStringList.Create;
try
str.LoadFromFile({caminho do seu txt});
for i:= 0 to str.Count-1 do
str := str[i] + ´ - ´ +IntToStr;
finally
[i]//você PODE COLOCAR UM MEMO NO FORMULARIO E ATRIBUIR A ELE O RESULTADO FINAL
MEMO1.addStrings(Str);
str.free;
end;
end;


Eu não testei, mas ele passa o txt todo e no fim da linha coloca qtas linhas se passaram.

Espero ter ajudado


#4 Gary    

Gary
  • Participante
  • 148 mensagens

Publicado 03 March 2004 - 11:56 AM

gente.. é bem por ae mesmo.
o lance é um pouco mais complexo.. mas acho que por esse exemplo eu vou tentar..
hj a noite quando voltar da faculdade vou tentar dar uma olhada..
agora estou no serviço, não tem delhpi aki.
bom..
qto aos delimitadors.. na verdade tem sim
tipo.. depois explico com mais calma o que na verdae é a aplicaçãozinha.. mas por hora agradeço vcs..
e dexa só eu perguntar..
o cara quer que grave essas alterações no próprio arquivo que a gente selecionou...
e ae? como faz isso?
alguém tem idéia?

#5 Gary    

Gary
  • Participante
  • 148 mensagens

Publicado 04 March 2004 - 08:36 AM

bom..testei lá em casa ontem e acabei fazendo algo diferente..
pq a coisa é um pouco mais complexa..
dai meu problema e´ escrever no arquivo..
uma parte do programa está assim

AssignFile(arqtxt,'texto.txt');
Reset(arqtxt);
totalLinha:=0;
while not Eof(arqtxt) do
begin
Readln(arqtxt, linha);
Memo1.Text :=Memo1.Text+ linha;
totalLinha:=totalLinha+1;
end;

ta... o problema é que o programa so está rodando se eu abro em modo de leitura (com o reset) ou zerando o arquivo(rewrite) e eu preciso acrescentar no final dele, o total de linhas..
tentei o Append(arqtxt), mas não deu

#6 Gary    

Gary
  • Participante
  • 148 mensagens

Publicado 04 March 2004 - 09:17 AM

blz gente.. dei uma lida no help e consegui algo assim
memo1.strings.savetofile('c:texte.txt');
ou memo1.lines.save
nao me lembro
é que testei num computador agora a poco aqui que tinha delf..
consegui o que precisava
valeu a todos que ajudaram!