Na verdade, a API FindFirst não garante nem que os arquivos voltarão na
ordem em que foram gravados, provavelmente pq a tabela de alocação de
arquivos pode ter suas entradas alterada por vários fatores, como
desfragmentações e otimizações de prefecth.

Então, assim como uma consulta SQL sem ORDER BY, o melhor é não assumir
ordem nenhuma.

Em 9 de abril de 2010 15:57, Alexandre <alexandre.pedr...@gmail.com>escreveu:

> boa tarde,
>
> não sei se é isso que você quis dizer, mas...
>
> a ordem que o FindFirst tras os arquivos é a ordem em que foram gravados no
> diretório. Para ordenar, grave os arquivos num stringlist e use a
> propriedade de ordenação do mesmo.
>
> Depois faça o loop no StringList e obterá o resultado desejado.
>
> Alexandre
>
> Em 8 de abril de 2010 08:16, Ralp Alves Bezerra <ral...@gmail.com>
> escreveu:
>
> >
> >
> > Bom dia nobres colegas.
> >
> > Estou utilizando esta rotina para pegar as imagens de uma pasta e salvar
> no
> > banco firebird.
> >
> > if FindFirst('C:\G2DOC\G2Imagem\*.jpg', faAnyFile, Arq) = 0 then
> >
> > begin
> >
> > repeat
> >
> > DM.cds_TCM_A.Insert;
> >
> > dbiImagem.LoadFromFile('C:\G2DOC\G2Imagem\'+Arq.Name);
> >
> > //Incrementa número da página
> >
> > Inc(Pag);
> >
> > //Grava Número da página
> >
> > DM.cds_TCM_APAGINA.Text :=IntToStr(Pag);
> >
> > //Grava nome do arquivo
> >
> > DM.cds_TCM_ANOME_ARQUIVO.Text
> > :=frmDigitalizaTCM.Label13.Caption+IntToStr(Pag)+'.jpg';
> >
> > //Grava Caminho do Arquivo
> >
> > DM.cds_TCM_ACAMINHO.Text :=Dir;
> >
> > //Grava sigla do documento
> >
> > DM.cds_TCM_ASIGLA_DOCUMENTO.Text
> > :=DM.cds_TCMSIGLA_DOCUMENTO.Text;
> >
> > //Grava Codigo entidade
> >
> > DM.cds_TCM_ACODIGO_ENTIDADE.Text
> > :=DM.cds_TCMCODIGO_ENTIDADE.Text;
> >
> > //Grava Cod. Unid. Administrativa
> >
> >
> >
> DM.cds_TCM_ACOD_UNID_ADMINISTRATIVA.Text:=DM.cds_TCMCOD_UNID_ADMINISTRATIVA.
> > Text;
> >
> > //Grava Exercicio
> >
> > DM.cds_TCM_AEXERCICIO.Text :=DM.cds_TCMEXERCICIO.Text;
> >
> > //Grava Unidade Gestora
> >
> > DM.cds_TCM_AUNIDADE_GESTORA.Text
> > :=DM.cds_TCMUNIDADE_GESTORA.Text;
> >
> > //Grava Nome Documento
> >
> > DM.cds_TCM_ANOME_DOCUMENTO.Text
> > :=DM.cds_TCMNOME_DOCUMENTO.Text;
> >
> > //Informa se arquivo foi digitalizado
> >
> > DM.cds_TCM_ADIGITAL.Text :='1';
> >
> > //Informa o anexo do demonstrativo
> >
> > DM.cds_TCM_AANEXOS.Text
> > :=frmDigitalizaTCM.DBText5.Caption;
> >
> > DM.cds_TCM_A.Post;
> >
> > DM.cds_TCM_A.ApplyUpdates(0)
> >
> > until FindNext(Arq) <> 0;
> >
> > FindClose(Arq);
> >
> > end;
> >
> > Porém, quando vou verificar a seqüência da pasta com a importação dos
> > arquivos no banco firebird, noto que alguns arquivos saem da ordem
> correta.
> >
> > Será que a rotina acima está correta? Alguém poderia me dar uma dica?
> >
> > Estou utilizando Firebird 2.1 e Delphi 7.
> >
> > Abraços.
> >
> > Ralp Alves
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ------------------------------------
>
> --
> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>
>
>
>


-- 
_____________________________________
Ricardo Augusto


"Muitos dos problemas do mundo devem-se ao fato de que os ignorantes estão
completamente seguros e os inteligentes cheios de dúvidas" (Bertrand Russel)


[As partes desta mensagem que não continham texto foram removidas]

Responder a