Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by himitsu,
2. Mär 2017
Ich hatte bei der WFC mindestens 4K erwartet, da Windows den Arbeistspeicher in 4K-Blöcken verwaltet. :angle:
Aber vom Tempo her ist das da fast egal ob ein Vierttel oder Vier.
Nein.
Die kleinste Sektorgröße ist 512. (bei den meisten HDDs)
Bei großen Terrabyteplatten sind die Sektoren auch schon mal 4K oder mehr.
Bei SSDs sind die realen Speicherblöcke oft sogar mehrere Sektoren...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by himitsu,
28. Feb 2017
Die von dir genutzen File-APIs verwenden alle den WindowsFileCache.
Somit ist es egal ob 1, 20 oder 200 Byte gelesen werden.
Die Festplatte liefert eh immer nur ganze Sektoren, wodurch also immer mindestens ein Sektor ausgelesen wird.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by himitsu,
27. Feb 2017
Das SavePos ist, damit die Funktion univeral ist und den Stream nicht verändert, für nachfolgene Leseoperationen.
array of TBytes und man kann erstens direkt Result als Schleifenvariable nutzen und hat eine Bereichsprüfung für das Array, damit die Anzahl mit dem Enum übereinstimmt.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by himitsu,
26. Feb 2017
Du denkst doch nicht etwa, dass man mit dem FileStream nur ganze Dateien einlesen kann?
Das ganze noch in eine Konstante oder Variable (Array of Array) und dann das Vergleichen in eine Schleife.
TFileStream statt BlockRead nur ein Read und man braucht weder Try-Except noch IOResult.
PS: Das AssignFile gehörte vor das erste Try. Da in Finally auf die Variable zugegriffen wird, gehört die...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by himitsu,
25. Feb 2017
Das ist genauso "nötig", wie das PAnsiChar(...) :angle2: