Localizar Arquivo numa pasta por uma parte de seu nome

Delphi

05/03/2019

Boa noite,

Numa pasta tenho varios arquivos no formato .pdf derivados de nfe emitidas e esses arquivos tem um nome extenso assim:

00033600122106985475546533695887450

olhando esse nome de arquivo contando os ultimos 6 caracteres menos o ultimo é o numero da nota fiscal, preciso localizar somente esse arquivo pelo numero da nota fiscal que no meu caso seria 88745.

Teria como fazer essa consulta usando delphi? que ao digitar esse numero 88745 localizasse esse arquivo numa pasta?


grato.
Jose Medeiros

Jose Medeiros

Curtidas 0

Respostas

Hélio Devmedia

Hélio Devmedia

05/03/2019

Olá José, tudo bem?

Tem várias formas de fazer isto, e eu particularmente gosto do FindFirst. Se digitar o nome desse método no editor e apertar F1 em cima, o Delphi mostra a documentação completa.

Ele permite você fazer uma busca usando coringas igual é feito com coringas da busca do windows:

var 
  F: TSearchRec; 
  Ret: Integer; 
  TempNome: string; 
begin 
  Ret := FindFirst(Diretorio+'\\88745.PDF', faAnyFile, F); 
end;



Em F ficará gravado o nome completo do arquivo com os atributos que o windows informa...

Se precisar você também pode fazer um while para buscar o próximo arquivo que corresponder com aquele numero (para fazer outras rotinas no caso)

var 
  F: TSearchRec; 
  i: Integer; 
  TempNome: string; 
begin 
   i := FindFirst(Diretorio+'\\88745.PDF', faAnyFile, F); 
  
   while i = 0 do
   begin
      //seus comandos
      i := FindNext(F);  
   end;
   FindClose(F); 
end;



Espero ter ajudado. Um forte abraço e fique com Deus.
GOSTEI 0
Hélio Devmedia

Hélio Devmedia

05/03/2019

Olá José, tudo bem?

Tem várias formas de fazer isto, e eu particularmente gosto do FindFirst. Se digitar o nome desse método no editor e apertar F1 em cima, o Delphi mostra a documentação completa.

Ele permite você fazer uma busca usando coringas igual é feito com coringas da busca do windows:

var 
  F: TSearchRec; 
  Ret: Integer; 
  TempNome: string; 
begin 
  Ret := FindFirst(Diretorio+'\\\\88745.PDF', faAnyFile, F); 
end;



Em F ficará gravado o nome completo do arquivo com os atributos que o windows informa...

Se precisar você também pode fazer um while para buscar o próximo arquivo que corresponder com aquele numero (para fazer outras rotinas no caso)

var 
  F: TSearchRec; 
  i: Integer; 
  TempNome: string; 
begin 
   i := FindFirst(Diretorio+'\\\\88745.PDF', faAnyFile, F); 
  
   while i = 0 do
   begin
      //seus comandos
      i := FindNext(F);  
   end;
   FindClose(F); 
end;



Espero ter ajudado. Um forte abraço e fique com Deus.


No caso eu esqueci de informar no código o coringa *88745.PDF para fazer a busca.
GOSTEI 0
POSTAR