buscar arquivo no diretorio

Delphi

02/03/2022

Bom dia

estou fazendo uma busca de um arquivo em um diretorio, ate ai tudo bem estou consguindo so que preciso passar o que esta digitado no edit para a busca e nao esta indo

assim da certo
busca('C:\GUESTUS\NFe\enviadas', '31210235603074000105550010000002591080387373-nfe.xml');

queria que ficasse assim

busca('C:\GUESTUS\NFe\enviadas','+'(edit2.Text)'+'.xml'');

so que da erro
Wellington

Wellington

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

02/03/2022

busca('C:\\GUESTUS\\NFe\\enviadas', edit2.Text+'.xml');


pra ficar mais fácil de entender:
pasta := 'C:\\GUESTUS\\NFe\\enviadas';
arquivo := edit2.Text+'.xml' // acrescente o '.xml' somente se não estiver informado no edit2
busca(pasta, arquivo);





GOSTEI 0
Raimundo Pereira

Raimundo Pereira

02/03/2022

Veja se ajuda:
private
{ Private declarations }
Function Search(_Directory, _File,_Extension:String):Boolean;


function TForm1.Search(_Directory, _File, _Extension: String): Boolean;
var _Path:String;
begin
_Path:=_Directory+'\\'+_File+_Extension;
try
if FileExists(_Path) then
begin
Result:=True;
end
else
begin
Result:=False;
end;
Except

on E: Exception do
begin
ShowMessage('Error: ' + E.Message );
Result:=false;
end;
end;

end;


Chamando a função:
procedure TForm1.Button1Click(Sender: TObject);
begin
if Search('C:\\GUESTUS\\NFe\\enviadas',Edit2.Text,'.xml') then
begin
ShowMessage('Existente');
end
else
begin
ShowMessage('Inexistente');
end;

end;

GOSTEI 0
Wellington

Wellington

02/03/2022

nao deu certo
vou explicar melhor

preciso buscar o xml que esta dentro de um subdiretorio que seja 'C:\\GUESTUS\\NFe\\enviadas\\????
depois de enviadas o sistema gera uma pasta para cada mes, entao nao pode exatamente de da pasta enviada

deste jeito ele busca o xml , so que preciso que pegue a chave o xml do dbedit



veja com estou fazendo
function TForm1.Busca(const cPath, cFile: String): Boolean;
var
S: String;
nRet: Integer;
Search: TSearchRec;
begin
nRet := FindFirst(cPath+'*.*', faAnyFile or faArchive or faDirectory, Search);
while nRet = 0 do
begin
if (Trim(Search.Name) <> '.') and (Trim(Search.Name) <> '..') then
begin

if Search.Attr and faDirectory > 0 then
Busca(IncludeTrailingPathDelimiter(cPath+Search.Name), cFile)

else if Trim(Search.Name) = cFile then
edit1.Text:=(cPath+Search.Name);

end;
nRet := FindNext(Search);
end;

chamando a funcção

busca('C:\\GUESTUS\\NFe\\enviadas\\', '31210235603074000105550010000002591080387373-nfe.xml');

so que no lugar da chave do xml (31210235603074000105550010000002591080387373-nfe) que neste caso acima ta direto, eu queria buscar o que esta vindo do dbedit.text

como ficaria neste caso usando o dbedit??
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

02/03/2022

Faça um teste usando a função que lhe passei.
_Directory : Pasta Onde está salvo o arquivo
_File : Possível nome do arquivo , pode vim de um edit ou dbedit, aqui você pode debugar e verificar até se está sendo carregado
Como você está pegando do dbedit, pode está havendo algum erro ao passar o parametro está levando ou nome.
_Extension: Especifica a extensão
A própria função se encarrega de montar o caminho completo do arquivo.

Más tenho quase certeza que seu problema esteja relacionado ao dbedit.
Se for muito urgente chama no telegram @oficialrcp
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

02/03/2022

O problema dele não é a função. A função dele funciona usando passa o parâmetros fixos.

Ele quer passar os parâmetros de forma dinâmica, a partir do conteúdo de edit2.

Já dei a dica, mas ele sequer testou.

GOSTEI 0
Wellington

Wellington

02/03/2022

boa tarde pessoal, me desculpe a demora por responder estava em viajem cheguei hoje deu certo sim a dica do P2, me perdoe a demora foi de muita valia,

obrigado a todos
GOSTEI 0
Wellington

Wellington

02/03/2022

na verdade o erro estava em repassar o formato do dbedit mesmo
GOSTEI 0
POSTAR