18. maj 2009 - 11:17Der er
8 kommentarer og 1 løsning
Læse et bestemt antal bytes af en file
Hej,
Jeg læser et bestemt antal bytes af en stor file med nedenstaaende kode. Problemet er at det virker som seek scanner fra starten a filen indtil mit index I1. Er det muligt at lave denne kode hurtigere?
assignfile(SpecRawFile,filename); reset(SpecRawFile); seek(SpecRawFile,I1); I:=I1; while (I<=I2) and (not eof(SpecRawFile))) do begin read(SpecRawFile,temp); ..min kode Inc(I); end;
type Massrecordtype=record Mass,int:double; ch:smallint; reten:real; end;
Det er meget intressant da jeg fandt en note der siger at blockread er mere effektiv en read. Så hvis jeg kan bruge blockread paa min record ville det vaerre smart.
Det hjalp en hel del (2-3 sekunder per array) da hver array har en størrelse på 100000.
Typisk skal jeg læse 2000-3000 gange så en god forbedring.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.