Curinga para procurar arquivos
19/06/2008
0
para obter o arquivo ou o nome dele, passano o diretório e a extensão ou só o diretório?
Para cada computador, haverá um arquivo com nome diferente e tenho que fazer uma
única aplicação. É conhecida apenas a extensão, pois todos serão gerados com a mesma
extensão e o diretório, já que todos estrão sempre lá. Somente o nome é que varia de ECF
para ECF. Esse arquivo é o serial do ECF, razão pela qual cada ECF terá o seu próprio.
Paulo
Posts
19/06/2008
Antseralves
Veja no HELP.
19/06/2008
Paulo
C:\Teste\tt.mfd. Como eu não sei o nome do arquivo(tt) mas sei a extensão, preciso carregar na minha função esse arquivo como parâmetro, algo tipo assim:
CarregaArquivo(1,Path_do_arquivo_e_nome_c_extensão,0);
Isto ´Path_do_arquivo_e_nome_c_extensão´ é o meu arquivo. Para saber um diretório e o arquivo tal, eu uso FileExists(), mas isso eu teria que informar o nome do arquivo e extensão. Quero quase isso, exceto o nome do arquivo, tipo *.MFD. Esse curinga ´*.´ é que eu quero implementar.
19/06/2008
Antseralves
arquivo de uma pasta qualquer que tenha o nome (ou extensão)
informado. Por exemplo *.MFD. Aí você pode pegar o nome desse
arquivo encontrado e fazer o que quiser com ele. Depois você poderá
usar o FindNext para pesquisar se existem mais arquivos com a mesma
extensão. No fim não esquecer de dar um FindClose. Tem tudo no HELP
do Delphi.
25/06/2008
Paulo
25/06/2008
Antseralves
TDirectoryOutline (Samples) e um TListBox.
No click do botão escreva.
[b:266470fadf]
procedure TForm1.Button1Click(Sender: TObject);
var S : TSearchRec;
Pasta : string;
begin
ListBox1.Clear;
ShowMessage(DirectoryOutline1.Directory);
if FindFirst(DirectoryOutline1.Directory+´\*.*´,faAnyFile,S) = 0 then
repeat
ListBox1.Items.Add(S.Name);
until FindNext(S) <> 0;
FindClose(S);
end;[/b:266470fadf]
Isso exibirá no ListBox todos os arquivos (*.*) da pasta selecionada no
DirectoryOutline.
25/06/2008
Paulo
Preciso passar por parâmetro de uma função, um determinado arquivo. Hoje em teste passo assim:
Onde:PathOrig >> Diretorio + Arquivo Binário
PathDest >> Diretorio + Arquivo.TXT
os demais são data e um valor default da SWEDA
No PathOrig, eu carrego assim:
Este carregamento do arquivo binário, é que eu não posso setar na mão, como fiz acima, pois para cada ECF ele terá um nome diferente(Numero de Serie do ECF). Então, preciso fazer uma busca na pasta SWEDA(Ela é fixa), e achar o arquivo binário e carregar no meu parâmetro da função ou numa variável. No meu exemplo eu carrego na mão, pois estou testando ainda, mas preciso colocar em produção.
25/06/2008
Antseralves
procedure TForm1.Button1Click(Sender: TObject);
var S : TSearchRec;
PathOrigem,PathDestino : string;
begin
PathOrig := C:\Sweda\SW010500000000000232´;
PathDestino := ´<nome da pasta destino>´;
// O FindFirst abaixo pega o PRIMEIRO arquivo com extensão .MDF
// que está na pasta ´C:\Sweda\SW010500000000000232
// Estou supondo que pode haver mais de um !
if FindFirst(PathOrigem+´\*.MDF´,faAnyFile,S) = 0 then
repeat
// Se encontrou então o nome do arquivo
// encontrado (SW010500000000000300.MFD por exemplo)
// estará Em S.Name. Chama a função com o nome encontrado.
SWEDA_ReproduzirFitaDetalhe (PathOrig+´\S.Name´,PathDest,dtIni.Text,dtFim.Text,0);
until FindNext(S) <> 0; // Verifica se existe mais algum arquivo
// com extensão .MDF
FindClose(S); // No final dá o FindClose
end;
Desculpe se continuo não entendendo mas pelo menos tentei !!
25/06/2008
Antseralves
então faz primeiro uma pesquisa para pegar as subpastas
e então chama uma rotina que trata só os arquivos das mesmas.
procedure TForm1.Button1Click(Sender: TObject);
var S : TSearchRec;
PathOrigem : string;
begin
PathOrig := C:\Sweda´;
// Aqui só vai procurar as pastas de Sweda
if FindFirst(PathOrigem+´\*.*´,faDirectory,S) = 0 then
repeat
// Se tem pasta então vai pesquisar os
// arquivos .MDF da mesma
ProcuraNaPasta(PathOrigem+´\´+S.Name);
until FindNext(S) <> 0;
FindClose(S);
end;
procedure TForm1.ProcuraNaPasta(Pasta: string);
var S : TSearchRec;
PathDestino : string;
begin
PathDestino := ´<nome da pasta destino>´;
// O FindFirst abaixo pega o PRIMEIRO arquivo com extensão .MDF
// que está na pasta ´C:\Sweda\<nome da subpasta>
// Estou supondo que pode haver mais de um !
if FindFirst(PathOrigem+´\*.MDF´,faAnyFile,S) = 0 then
repeat
// Se encontrou então o nome do arquivo
// encontrado (SW010500000000000300.MFD por exemplo)
// estará Em S.Name. Chama a função com o nome encontrado.
SWEDA_ReproduzirFitaDetalhe(PathOrig+´\S.Name´,PathDest,dtIni.Text,dtFim.Text,0);
until FindNext(S) <> 0; // Verifica se existe mais algum arquivo com extensão .MDF
FindClose(S); // No final dá o FindClose
end;
26/06/2008
Paulo
26/06/2008
Paulo
26/06/2008
Paulo
Clique aqui para fazer login e interagir na Comunidade :)