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]