Listbox e arquivo TXT
[quote:a52de57881=´Moderação´][color=red:a52de57881]Título editado por Massuda
Por favor, não use apenas letras maiúsculas no título/texto.
Leia as :arrow: [url=http://forum.clubedelphi.net/viewtopic.php?t=6689]Regras de Conduta[/url] do fórum.[/color:a52de57881][/quote:a52de57881]preciso listar o conteudo de um diretorio que contem apenas arquivos .txt em um Listbox ou Listview tanto faz... Ate ae tudo bem eu consigui, ae eu queria que quando eu desse um duplo click ele enviasse o conteudo desse arquivo que eu clikei pra um campo Memo! o problema comeca aki eu ate consigui jogar para o Memo, mais nao foi o Conteudo do arquivo, foi apenas o nome! Tipo eu tenho o arquivo dev.txt e dentro dele tem FORUM DEVMEDIA. Eu so consigui jogar no Memo o nome dev.txt, o conteudo FORUM DEVMEDIA nao estou consiguindo! alguem tem alguma ideia ?
[size=9:a52de57881]ps. desculpe os erros de portugues uadsuhsu[/size:a52de57881]
Por favor, não use apenas letras maiúsculas no título/texto.
Leia as :arrow: [url=http://forum.clubedelphi.net/viewtopic.php?t=6689]Regras de Conduta[/url] do fórum.[/color:a52de57881][/quote:a52de57881]preciso listar o conteudo de um diretorio que contem apenas arquivos .txt em um Listbox ou Listview tanto faz... Ate ae tudo bem eu consigui, ae eu queria que quando eu desse um duplo click ele enviasse o conteudo desse arquivo que eu clikei pra um campo Memo! o problema comeca aki eu ate consigui jogar para o Memo, mais nao foi o Conteudo do arquivo, foi apenas o nome! Tipo eu tenho o arquivo dev.txt e dentro dele tem FORUM DEVMEDIA. Eu so consigui jogar no Memo o nome dev.txt, o conteudo FORUM DEVMEDIA nao estou consiguindo! alguem tem alguma ideia ?
[size=9:a52de57881]ps. desculpe os erros de portugues uadsuhsu[/size:a52de57881]
Bertu
Curtidas 0
Respostas
Paulo
18/04/2008
Se vc jogar no Memo, o jeio que está fazendo só vai o nome mesmo. O que vc tem que fazer é abrir o arquivo e dar um While nele, e aí sim, ir adicionando no memo linha a linha do arquivo.
GOSTEI 0
Bertu
18/04/2008
olha os codigo q estou usando
Procedure que Lista:
Botao
Duplo Click ListBox
eu tentei fazer algo do tipo
se eu consiguir pegar o diretorio eu consigo fazer funcionar :p
Procedure que Lista:
Procedure TForm1.ListarPasta(Pasta: string; Strings: TStrings); var Rec : TSearchRec; PosEq: Integer; begin Strings.Clear; //Pasta := IncludeTrailingBackSlash(Pasta); // Note que aqui vc tb pode esccolher a extensão dos arquivos: if SysUtils.FindFirst(Pasta + ´*.txt´, faAnyFile, Rec) = 0 then try repeat if (Rec.Name <> ´.´) and (Rec.Name<>´..´)then begin PosEq:=Pos(´.´,Rec.Name); Strings.Add(Copy(Rec.Name,1,PosEq-1)); end; until SysUtils.FindNext(Rec) <> 0; finally SysUtils.FindClose(Rec); end; end;
Botao
procedure TForm1.Button1Click(Sender: TObject); begin ListarPasta(´C:\a\´, ListBox1.Items); end;
Duplo Click ListBox
procedure TForm1.ListBox1DblClick(Sender: TObject); begin Memo1.Text := ListBox1.Items.Strings[Listbox1.ItemIndex]; end;
eu tentei fazer algo do tipo
procedure TForm1.ListBox1DblClick(Sender: TObject); var f:TextFile; linha:String; begin AssignFile(f,´C:\a\´+ListBox1.Items.Strings[Listbox1.ItemIndex]); Reset(f); While not eof(f) do begin Readln(f,linha); Memo1.Text := linha; end; end;
se eu consiguir pegar o diretorio eu consigo fazer funcionar :p
GOSTEI 0
Paulo
18/04/2008
Ve se funciona esse exemplo:
procedure percorreArquivoTexto ( nomeDoArquivo: String );
var arq: TextFile;
linha: String;
begin
AssignFile ( arq, nomeDoArquivo );
Reset ( arq ); //Abre arquivo existentes
//ReadLn ( arq, linha );
while not Eof ( arq ) do
begin
{ Processe a linha lida aqui. }
{ Para particionar a linha lida em pedaços, use a função Copy. }
ReadLn ( arq, linha );
Memo1.Lines.Add(linha);
end;
CloseFile ( arq );
end;
GOSTEI 0
Bertu
18/04/2008
Como ele vai saber o Nome do Arquivo e o Diretorio ? vc tem msn ?
GOSTEI 0
Paulo
18/04/2008
Eu não uso MSN. No AssignFile, aí voce seta o arquivo, já passando o Diretório e o nome do arquivo, tipo, ´C:\teste\Arquivo.txt´. Depois vc dá um reset para abrir o arquivo e então é só ir jogando num Memo, StringList e etc...
GOSTEI 0
Bertu
18/04/2008
valew a ajuda mais consigui de outras formas. segue abaixo
procedure TForm1.ListBox1DblClick(Sender: TObject); var x:TextFile; linha:String; caminho: string; begin DirectoryListBox1.Directory := Edit1.Text; caminho := DirectoryListBox1.Directory+´\´+ListBox1.Items.Strings[Listbox1.ItemIndex]+´.txt´; AssignFile(x,caminho); Reset(x); While not eof(x) do begin Readln(x,linha); Memo1.Text := Decrypt(linha); end;
GOSTEI 0
Marco Salles
18/04/2008
preciso listar o conteudo de um diretorio que contem apenas arquivos .txt em um Listbox ou Listview tanto faz... Ate ae tudo bem eu consigui, ae eu queria que quando eu desse um duplo click ele enviasse o conteudo desse arquivo que eu clikei pra um campo Memo!
uma outra forma muito interessante é usat o TFileListBox
Adicione um TFileListBox ao Form
Altere as propriedades
Mask para .txt
ShowGriphs para Tue
finalmente escreva os métodos :
procedure TForm1.FormCreate(Sender: TObject); begin FileListBox1.Directory:=´C:\´; //******Coloque aqui o seu Diretório end; procedure TForm1.FileListBox1Click(Sender: TObject); begin //é so issso .. e ze finin memo1.Lines.LoadFromFile(FileListBox1.FileName); end;
GOSTEI 0
Fabiano Góes
18/04/2008
valew a ajuda mais consigui de outras formas. segue abaixo
procedure TForm1.ListBox1DblClick(Sender: TObject); var x:TextFile; linha:String; caminho: string; begin DirectoryListBox1.Directory := Edit1.Text; caminho := DirectoryListBox1.Directory+´\´+ListBox1.Items.Strings[Listbox1.ItemIndex]+´.txt´; AssignFile(x,caminho); Reset(x); While not eof(x) do begin Readln(x,linha); Memo1.Text := Decrypt(linha); end;
olha amigo, a dica do Marcos Salles é muito boa, bem pratica e com um código bastante limpo.
mais acho que com uma linha você faz o que precisa,
pelo que entendi o diretório está dentro do ´Edit1.Text´,
sendo assim:
procedure TForm1.ListBox1DblClick(Sender: TObject); begin Memo1.Lines.LoadFromFile(Edit1.Text+´\´+ListBox1.Items.Strings[Listbox1.ItemIndex]+´.txt´); end;
GOSTEI 0