Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodrigo Miss

Busca de arquivos

Recommended Posts

Boa tarde pessaol

 

To usando uma procedure pra buscar arquivos numa certa pasta de acordo com o nome q o usuario digitar num edit...

 

segue o codigo :

 

procedure TForm1.SearchFilePath(pasta: string);var	x: integer;	SearchRec: TSearchRec;	intControl: integer;	Name: string;beginMemo1.Lines.Clear;intControl:=FindFirst(pasta + '\*.*', faArchive, SearchRec);if intControl = 0 then	begin	while (intControl = 0) do		begin		Name:=ExtractFileName(SearchRec.Name);
if Name = edit2.Text then /// usar tipow um "Like"

memo1.Lines.Add(pasta + '\' + SearchRec.Name);		intControl:=FindNext(SearchRec);		end;	FindClose(SearchRec);	end;

como eu faria pra buscar por nome do arquivo naum exato 'por exemplo: axar os aquivos q estao na pasta meus documentos cujo nome contenham "PRO" '

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode fazer isto nesta linha:

intControl:=FindFirst(pasta + '\*.*', faArchive, SearchRec);

 

Fazendo:

 

intControl:=FindFirst(pasta + '\*' + edit2.Text + '*.*', faArchive, SearchRec);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia galera ! + uma coisaqual seria a melhor opçao pra mostrar o resuldado da pesquisa na pasta?tipow eu qria q mostrasse sei lah , como c fosse um listview ... o endereço completo do arquivo ...e qtod o user clikar numa linha abrisse o arquivo cujo caminho foi selcionado!Como eu faria issu?PS: naum tenho conhecimento com ListView ainda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já prefiro o ListView...

 

mas no delphi nunca usei... no vb eu fazia isso que voce quer e colocava os ícones em cima!!!! rsrs

 

usando listview...chegando em casa vejo como fazer no delphi e posto aki!!

 

Abraço! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda se quiser, dentro da instalação do seu delphi, deve de ter uma pasta chamada DEMO, dentro dela têm uma outra pasta chamada Virtual Listview que têm um exemplo bem bacana do uso do ListView

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde pessoal::

 

fiz assim óh!

 

{$R *.dfm}procedure TForm1.BuscaListaArquivosPasta(pasta, nome : string);var	x: integer;	SearchRec: TSearchRec;	intControl: integer;	Name: string;beginlst.Clear;intControl:=FindFirst(pasta + '\*' + nome + '*.*', faArchive, SearchRec);if intControl = 0 then	begin	while (intControl = 0) do		begin		Name:=ExtractFileName(SearchRec.Name);		if Name <> '' then		   ListItem:= lst.Items.Add;		   ListItem.Caption:= SearchRec.Name;		   ListItem.SubItems.Add(pasta + '\' + SearchRec.Name);		intControl:=FindNext(SearchRec);		end;	FindClose(SearchRec);	end;end;procedure TForm1.btnSearchClick(Sender: TObject);beginBuscaListaArquivosPasta(txtPasta.Text, txtNome.Text);end;procedure TForm1.lstDblClick(Sender: TObject);beginShellExecute(Handle, 'Open', Pchar(lst.ItemFocused.Caption), nil, (Pchar(lst.Selected.SubItems.Text)), SW_NORMAL);end;end.

 

o problema eh q ele esta somente abrindo os arquivos q estao no diretorio C:\Windows

 

c eu tentar abrir algum arquivos q estiver na C:\Documents and Settings\User\Meus documentos por exemplo ... naum abre

 

 

oke q tm de errado sera?

 

ps: 1ª columa do listview eh o nome do arquivos

e a 2ª coluna eh o caminho completo do arquivo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque o seguinte código no seu botão de abrir...

 

heheh!!!

procedure TForm1.Abrir1Click(Sender: TObject);var comando : String;beginComando := Copy(lst.Selected.SubItems.Text,1,Length(lst.Selected.SubItems.Text)-2)+'\'+lst.ItemFocused.Caption;//ShellExecute(Handle, 'Open', Pchar(lst.ItemFocused.Caption), nil, (Pchar(lst.Selected.SubItems.Text)), SW_NORMAL);ShellExecute(handle, 'open', PChar(comando), nil, nil, SW_SHOWNORMAL);end;

 

Abraço! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande Hugo ... mais uma vez vlw kra...Pessoal naum eh q eu esteja abusando da ajuda de vcs ...mais agora precisei de mais uma coisa....tipow ate agora consigue pesquisar os arquivos q estao dentro de um caminho absoluto ex: C:\WindowsAgora eu precisa tipow :o user coloca lah no nome da pasta C:\Windows e o nome do arquivo : ntoskrnl.exe...dae ele procurasse em todas as subpastas do C:\Windows e localizasse q o ntoskrnl.exe esta na C:\Windows\System32tm como fazer issu?c puderem me ajudar d novo ...Desculpa a prolongadaaaa no topico hein pessoal...

Compartilhar este post


Link para o post
Compartilhar em outros sites

kra vi o link q você me passo, e mudei um poco o esquema ... fiz assim:

 

procedure TfrmSearch.FileSearch(const PathName, FileName : string; const InDir : boolean);var Rec  : TSearchRec;	Path : string;beginlst.Clear;Path := IncludeTrailingBackslash(PathName);if FindFirst(Path + '\*' + FileName + '*.*', faAnyFile - faDirectory, Rec) = 0 then try   repeat	  ListItem:= lst.Items.Add;	  ListItem.Caption:= Rec.Name;	  ListItem.SubItems.Add(Path);   until FindNext(Rec) <> 0; finally   FindClose(Rec); end;If not InDir then Exit;if FindFirst(Path + '*.*', faDirectory, Rec) = 0 then try   repeat	if ((Rec.Attr and faDirectory) <> 0)  and (Rec.Name<>'.') and (Rec.Name<>'..') then	 FileSearch(Path + Rec.Name, FileName, True);   until FindNext(Rec) <> 0; finally   FindClose(Rec); end;end;

Xamo o procedure assim:

 

FileSearch(txtPasta.Text, txtNome.Text, CheckBox1.State in [cbChecked]);
Daew

por exemplo o arquivo Promocao.txt ta na seguinte pasta : C:\Documents and Settings\User\Meus documentos

 

o kra informa

txtPasta = C:\Documents and Settings\User\

txtNome = Promocao.txt

e marca a opçcao procurar subpastas...

naum da nenhum resultado

 

somente c ele informar o caminho completo q aparece

 

q sra q to fazendo de errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.