Hallo Luckie,
per definition ist ein Delphi-String nicht durch ein null-Zeichen begrenzt sondern durch die Längenbeschreibung am Anfang des Datenbereichts. Mir ist bewusst, dass er Gründen der vereinfachten Kompatibilität mit einem null-Zeichen endet, um Ausdrücke der Art
PChar(AString)
ohne eine erneute Kopie zu realisieren, aber Deine Implementierung von
mylength ist kein Ersatz für
Length, weil es Fälle gibt, in denen die Rückgabewerte voneinander abweichen können:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
AString = 'a delphi string can contain '#0' several '#0' null characters';
begin
Assert( Length(AString) = mylength(AString) );
end;