Comparação entre arquivos e registros
08/03/2006
0
Tenho um diretório com vários arquivos, e uma tabela com a relação desses arquivos. Porém, nem todos os arquivos estão cadastrados na tabela.
Eu preciso listar o nome de todos os arquivos do diretório que não estão cadastrados na tabela.
Alguém???
Valeu,
Rafael
Rafaaugusto
Posts
09/03/2006
Antseralves
tabela referenciada por um TTable onde existe um campo
chamado ´Nome´ que contem os nomes dos arquivos.
Em um TMemo serão listados os nomes dos arquivos que estão em
uma pasta cujo nome deverá ser passado no parâmetro ´Pasta´.
procedure TForm1.ListaNomeArquivos(Pasta : string);
var Sr : TSearchRec;
Res : integer;
begin
Memo1.Clear;
Table1.Open;
Res := FindFirst(Pasta+´\*.*´,faAnyFile-faDirectory,Sr); // Qualquer
// arquivo exceto nomes de Pastas
while Res = 0 do
begin
if not (Table1.Locate(´Nome´,Sr.Name,[])) then
Memo1.Lines.Add(Sr.Name);
Res := FindNext(Sr);
end;
FindClose(Sr);
Table1.Close;
end;
Por exemplo, no click do botão vc poderá chamar o método
ListaNomeArquivos da seguinte forma:
procedure TForm1.Button1Click(Sender: TObject);
var Pasta : string;
begin
Pasta := ´C:\temp´;
ListaNomeArquivos(Pasta);
end;
Espero ter ajudado.
09/03/2006
Rafaaugusto
Só uma coisa: Ele não sai do loop, a variável ´Res´ fica sempre ´0´. Como parar?
Rafael
09/03/2006
Antseralves
por exemplo, se o comando ´ Res := FindNext(Sr); ´ não ficou fora do
loop while...!.
Clique aqui para fazer login e interagir na Comunidade :)