GARANTIR DESCONTO

Fórum Listbox e arquivo TXT #357352

18/04/2008

0

[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]


Bertu

Bertu

Responder

Posts

18/04/2008

Paulo

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.


Responder

Gostei + 0

18/04/2008

Bertu

olha os codigo q estou usando

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


Responder

Gostei + 0

18/04/2008

Paulo

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;



Responder

Gostei + 0

18/04/2008

Bertu

Como ele vai saber o Nome do Arquivo e o Diretorio ? vc tem msn ?


Responder

Gostei + 0

18/04/2008

Paulo

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


Responder

Gostei + 0

18/04/2008

Bertu

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;



Responder

Gostei + 0

18/04/2008

Marco Salles

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;



Responder

Gostei + 0

19/04/2008

Fabiano Góes

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;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar