@Chakotay1308: Ich muss Dich erst einmal enttäuschen. Du hast da ein arges Verstädnisproblem.
Wenn ein String so definiert wäre
Delphi-Quellcode:
type
String = array[0..255] of char;
, dann könntest Du immer noch auf die 100. Stelle mit StringName[100] zugreifen. Ohne Problem. Zusätzlich: Ein Char ist ein Byte groß, dass heisst, ess kann eine beliebigen Wert zwischen #0 und einschließlich #255 einnehmen.
Nun zum "AS-IS"
Ein String ist ein Pointer auf einen Block mit folgender Definition
Delphi-Quellcode:
type
PStrRec = ^StrRec;
StrRec = packed record
refCnt: Longint;
length: Longint;
end;
Das dahinter die eigentlichen Daten stehen, versteckt Delphi vor uns, wie freundlich
Der ShortString hat keine direkte Definition, ist von der Logik aber wie folgt aufgebaut:
Delphi-Quellcode:
type
// ObereGrenze liegt im Bereich von 1..255 (Standard=255)
ShortString: array[0..ObereGrenze] of AnsiChar;
Du kannst Dir eigene Shortstrings definieren. Ein Datentyp ShortString der Länge 56 Zeichen wäre
Delphi-Quellcode:
type
MyShortString56 = string[56];