Hi, nachdem ich jetzt in meiner Programmlogik noch Optimierungspotential gefunden habe, bin ich schon kleinlauter....
CreateFile etc. schau ich mir mal bei Gelegenheit genauer in der
msdn an, sieht relativ kompliziert aus...
TFileStream klingt sehr interessant, hab' ich bis jetzt noch nicht benutzt...
I.a. handelt es sich bei mir um Files, die jeweils einen Datentyp hintereinander beinhalten, z.B. lauter smallints oder lauter singles. Momentan hab' ich meine
Unit so geschrieben, dass das sie im interface Funktionen bereitstellt, um
- die Datei zu öffnen
- einen single/smallint/byte zu lesen (oder eof zurückmelden)
- die Datei schliesst.
In Wirklichkeit liest die
Unit aber bei Bedarf einen ganzen Block (konfigurierbarer Größe) von smallints ein und gibt mit nur einen einzigen zurück, die anderen merkt sie sich fürs nächste mal.
Das Problem dabei ist aber: Wenn die Dateilänge nicht ein ganzzahliges Vielfaches der Blockgröße ist, mach ich das momentan so, dass ich die Datei schliesse, anders typisiert wieder öffne und den Rest einlese (bis vor kurzem noch byte für byte, aber das hab' ich mittlerweile auch schon verbessert, und lese in einem Rutsch den Rest ein). Trotzdem ist's noch nicht optimal.
Wie ist das mit TFileStream? Liest das "auf Vorrat" aus der Datei bzw. schreibt es einen ganzen Block auf einmal hinaus, auch wenn ich es hintereinander z.B. mit einzelnen singles füttere? Wenn ja, dann wäre das vermutlich ein guter Ersatz für meine ganze
Unit...
Viele Grüße,
Helmut