Registriert seit: 6. Apr 2005
10.109 Beiträge
|
Re: [TStringList] Problem mit einer Datei (Lädt nicht)
28. Okt 2006, 12:01
Hallo Fabian,
für die gängigen Mikro-Prozessoren sind Zugriffe auf Speicheradressen vorteilhaft, die ein Vielfaches der Registerbreite darstellen. Mit PACKED wird die vom Delphi-Compiler aus Performanzgründen (eventuell) vorgenommene Spreizung der einzelnen Felder eines strukturierten Datentyps verhindert.
Wenn die Dimensionen feststehen, dann musst du nicht mit einem dynamischen Array arbeiten. Den Header mit den Dimensionen würde ich wohl auch dann schreiben, aber die Redimensionierung in der Routine LoadMatrix() würde ich durch eine Dimensionsprüfung ersetzen.
Probleme mit #13 und #10 hast du immer - wenn du an der Textdatei festhalten willst.
"n SHL 8" ist das gleiche wie "n * 256" - oder auch "n * 2 hoch 8". Die Online-Hilfe von Delphi beschreibt die Operatoren SHL und SHR ganz gut.
dwDIM ist tatsächlich der Header - ein Vier-Byte-Wert, bei dem wegen deiner drei Dimensionen ein Byte nicht genutzt wird.
SizeOf(m) gibt den von m belegten Nettospeicher in Bytes an. Length(m) würde dir Größe der ersten Dimension des Arrays liefern.
SizeOf(dwSize) funktioniert also immer und liefert 4 - wie auch SizeOf(Integer).
Hi() und Lo() sind in meinem Code fehlerhaft angewendet, ich habe die Zeile geändert.
Grüße
|