Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#10

Re: Frage zum Aufbau eines Strings

  Alt 16. Jan 2005, 15:33
Moin!

Das stimmt schon - so wurde es früher gemacht. Die als ShortString bekannten Strings arbeiten immernoch so, daher haben diese eine Beschränkung auf maximal 255 Zeichen und im 0. Zeichen ([0]) steht auch tatsächlich die Länge drin. Und für die heutigen AnsiStrings gilt dies nicht mehr, SirThornberry hat ja schon gut erläutert das man in das Byte keine Längenangabe für 2 GB reinbekommt. Da die Strings aber kompatibel sein sollten so dass die Anwender nicht eine Routine für ShortString und eine für AnsiString schreiben müssen, deshalb gibt es [0] bei AnsiStrings auch noch, nur das hier der Compiler bei einem direktem Zugriff abblockt. Zum Beispiel gibt die Hilfe zu SetLength() an, das sie bei ShortStrings nur das Längenbyte [0] setzt und bei anderen Strings Speicher alloziiert.

@SirThornberry: Die Einschränkung mit String und DLL gilt nur für AnsiString, da diese mit internen Referenzen arbeiten - im Gegensatz dazu hat man mit WideStrings oder ShortStrings keine Probleme (keine Referenzen).

MfG
Muetze1

/EDIT: einmal Pizza aus dem Ofen geholt, schon 5 Posts zu spät...
  Mit Zitat antworten Zitat