Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#10

Re: String/Shortstring Speicherbedarf

  Alt 14. Mär 2005, 13:02
Na ja, am efizientesten ist String/AnsiString, da dort mehrere Strings den Selben Speicherbereich belegen können, außerdem passen in String/AnsiString auch mal mehr als nur 255 Zeichen rein.

String[4] ist auch ein ShortString, nur halt mit der "maximalen" Länge von 4 Zeichen.

In Records ist der ShortString deßhalb gut, weil der Speicherbereich für die Zeichen direkt innerhalb des RecordSpeicherbereichs liegt, wobei bei String/AnsiString ja die Zeichen irgendwo anders rumliegen und nur der Zeiger auf diese Zeichen im Record abgelegt ist.

man kann also bei ShortString mit
Delphi-Quellcode:
Var R: Record ...

ZeroMemory(@R, SizeOf(R));
einen Record löschen/zurücksetzen(auf 0 setzen), was bei einem String/AnsiString nicht möglich wäre, da dort ja nur der Zeiger, aber nicht die Daten gelöscht werden.

außerdem kann beim ShortString ja auch der Record ganz einfach gespeichert/kopiert werden ... bei den anderen Strings hat man dort immer das "Problem" mit den Zeigern...


[add]
schau mal beim Luckie ( www.luckie-online.de ) nach, dort gibt es (glaub ich) ein String-Tutorial.
$2B or not $2B
  Mit Zitat antworten Zitat