Florentin 0 Denunciar post Postado Junho 23, 2006 Saudações. sou novo neste forum e estou precisando da ajuda de vocês. Estou desenvolvendo um programa que busca em um disco por aquivos e os seleciona segundo seu tamanho e data de alteração. Estou usando o FindFirst e FindNext, mas quando o tamanho do arguivo é superior a 2.14 GB o valor retornado não é o correto. Isto ocorre porque o parâmetro retornado é do tipo inteiro e ocorre o estouro do valor.Alguém saberia me indicar outra forma de ler o tamanho de arquivos superiores a 2GB ou uma forma de contornar este problema?Desde já agradeço a ajuda de todos.Abraços,Fabiano Compartilhar este post Link para o post Compartilhar em outros sites
bdexterholland 0 Denunciar post Postado Junho 24, 2006 Bom, uma forma seria você passar esse valor no source do comando de integer para longword Compartilhar este post Link para o post Compartilhar em outros sites
BarbaraFidelis 0 Denunciar post Postado Agosto 3, 2009 Gente também preciso de uma ajuda com tamanhos de arquivos, é o seguinte, preciso criar um arquivo texto e o mesmo não pode passar de 1M, se passar é pra quebrar em tantos arquivos quanto necessários para que cada um tenha no máximo 1M. Como posso fazer isso? Compartilhar este post Link para o post Compartilhar em outros sites
Raficcha 1 Denunciar post Postado Agosto 3, 2009 Gente também preciso de uma ajuda com tamanhos de arquivos, é o seguinte, preciso criar um arquivo texto e o mesmo não pode passar de 1M, se passar é pra quebrar em tantos arquivos quanto necessários para que cada um tenha no máximo 1M. Como posso fazer isso? Fiz essa função. Veja se lhe é útil, espero que ajude. procedure QuebraArquivo1MB(FileName: string; MaxSizeByte: LongInt = 524288+524288 {1MB}); var Arq, Arq2 : file of byte; buffer: array [1 .. 524288] of byte;//buffer de 1MB bufferSize: integer; cont, cont2 : integer; // begin AssignFile(Arq, FileName); Reset(Arq); bufferSize := Length(buffer); cont := 0; while(not(eof(Arq))) do begin inc(cont); AssignFile(Arq2, FileName+inttostr(cont)); Rewrite(Arq2); //faz duas leituras de 512Kb for cont2 := 1 to Round(MaxSizeByte/length(buffer))+1 do begin BlockRead(Arq, buffer, bufferSize, BufferSize); BlockWrite(Arq2, buffer, BufferSize, BufferSize); end; // BlockRead(Arq, buffer, bufferSize, BufferSize); // BlockWrite(Arq2, buffer, BufferSize, BufferSize); CloseFile(Arq2); end; CloseFile(Arq); end; Compartilhar este post Link para o post Compartilhar em outros sites