Comparação entre arquivos e registros

08/03/2006

0

Pessoal,

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

Rafaaugusto

Responder

Posts

09/03/2006

Antseralves

No exemplo abaixo temos um método ´ListaNomeArquivos´ em uma
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.


Responder

09/03/2006

Rafaaugusto

Valeu antseralves...

Só uma coisa: Ele não sai do loop, a variável ´Res´ fica sempre ´0´. Como parar?

Rafael


Responder

09/03/2006

Antseralves

Aqui funcionou legal. Verifique se não cometeu algum erro na transcrição,
por exemplo, se o comando ´ Res := FindNext(Sr); ´ não ficou fora do
loop while...!.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar