System.SetLength
Delphi
procedure SetLength(var S: String; NewLength: Integer);
Inhaltsverzeichnis
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
procedure | public | System.pas | System | System |
Beschreibung
Legt die Länge eines Strings oder einer Variable eines dynamischen Arrays fest.
S
ist eine Delphi-String- oder dynamische Array-Variable.
NewLength
enthält die neue Anzahl der Zeichen oder Elemente in S
.
Bei einem kurzen String ändert SetLength einfach das Längenbyte (das Zeichen an der Position S[0]) in den angegebenen Wert. In diesem Fall muss NewLength
einen Wert von 0 bis 255 enthalten.
Bei einer langen String-Variable weist SetLength dem in S
referenzierten String die angegebene Länge zu. Dabei bleiben die im String vorhandenen Zeichen erhalten, jedoch ist der Inhalt des neu zugewiesenen Speicherbereichs nicht definiert.
Bei einer dynamischen Array-Variable weist SetLength dem in S
referenzierten Array die angegebene Länge zu. Die vorhandenen Elemente des Arrays werden beibehalten, und der neu zugewiesene Platz wird auf 0 oder nil gesetzt. Bei multidimensionalen dynamischen Arrays kann SetLength mehrere Parameter für die Länge übernehmen. Die Parameteranzahl wird lediglich durch die Zahl der Array-Dimensionen beschränkt. Jeder Parameter gibt die Anzahl der Elemente für eine bestimmte Dimension an.
Nach dem Aufruf von SetLength ist sichergestellt, dass S
auf einen eindeutigen String oder ein eindeutiges Array zeigt (d.h. dessen Referenzzähler den Wert 1 hat). Ist nicht genügend Speicher für die Variable vorhanden, löst SetLength eine EOutOfMemory-Exception aus.
Siehe auch
- Strings deklarieren und initialisieren
- DynArraySetLength (für multidimensionale dynamische Arrays)
- Intrinsische Routinen in Delphi
- EOutOfMemory