Wenn das Array leer ist, bekommst Du Probleme beim Speichern, da Du in der ersten Dimension auf das erste Element zugreifst, ohne es auf Existenz zu prüfen. Beim Lesen hast Du das selbe Problem bei einer leeren Datei. Und statt
Zitat:
x := High(buchstabe) + 1;
würde ich eher
x := Length(buchstabe);
schreiben.
Das macht eigentlich keinen unterschied, da es equivalent ist, denn die Funktion High ist so definiert
Delphi-Quellcode:
function High(const a: TMyArray): integer;
begin
Result := Length(a) - 1;
end;
Bei statischen Arrays wird es ebenso im Compiler ausgerechnet und dann direkt verwendet.
Aber natürlichst speicherst/liest du immer nur den ersten Wert aller SubArrays (egal ob sie existieren oder nicht) und alle weiteren Daten der Subarrays werden ignoriert,
also für x = 1 bis Ende (
buchstabe[i][x]
)