Anfangs wurde String/AnsiString genutzt, weil man damit "einfach" arbeiten konnte.
Heute wäre es besser wenigstens den RawByteString zu benutzen,
aber ja, TBytes bzw. TArray<Byte> oder ein Stream wäre für binäre Daten besser geeignet,
vor allem seit sich auch
dynamische Arrays string-like behandeln lassen.
Insert/Delete/Copy, aber auch
+
kann man ja inzwischen benutzen.
Lange hatte ich aber auch Strings benutzt, da dynamische Arrays leider kein Copy-on-Write besitzen.
Delphi-Quellcode:
str[123] := 'x'; // #$78
arr[123] := $78;
Mehrere Variablen auf den String, da wird beim String automatisch kopiert
und somit nur
diese Variable verändert,
während man beim Array ein Unicuqe selbst herbeiführen muß,
da sonst auch alle anderen Variablen ihren Wert ändern. (zeigen ja alle weiterhin auf den selben Speicher)
Dank der Custom-Managed-Records gibt es aber auch dafür endlich eine Lösung.