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.