Er meinte es wohl eher so
ds.string_comment[i] := h.ReadShortString;
.
bzw. so
Delphi-Quellcode:
ds.string_comment[i] := h.ReadShortString;
ds.string_length_comment[i] := Length(ds.string_comment);
Das ReadShortString ließt wohl das LängenByte aus und darauf folgend entsprechend viele Bytes/AnsiZeichen in einen String, welcher dann zurückgegeben wird.
PS: Nur um die Verwirrungen komplett zu machen.
Man ließt hier eine feste Anzahl an Byte in einen
String,
nur daß ab Delphi 2009 der String ein
UnicodeString ist und somit jedes Zeichen darin 2 Byte groß wäre.
Und dann behaupte man wieder ich hätte nie davor gewarnt, daß man keine generischen Typen (wie den
String) mit festen ByteGrößen gleichsetzen soll.