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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar