Fórum Localizar Arquivo numa pasta por uma parte de seu nome #600943

05/03/2019

0

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

Responder

Posts

06/03/2019

Hélio Devmedia

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:

1
2
3
4
5
6
7
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)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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.
Responder

Gostei + 0

06/03/2019

Hélio Devmedia

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:

1
2
3
4
5
6
7
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)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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.

Ler Mais...



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

Gostei + 0

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

Aceitar