Die eine Richtung mit:
Code:
SetLength(A,Length(A)+1);
Insert(A[Length(A)-1], A, 0);
Delete(A,Length(A)-1,1);
SetLength(A,Length(A)-1);
die nur mit "SetLength+1" und "SetLength-1" geht, habe ich geändert.
Nur ein:
Code:
Insert(A[Length(A)-1], A, 0);
Delete(A,Length(A)-1,1);
reicht aber hier nicht. Er setzt hier den vorletzten Eintrag an den Anfang. Auf den letzten Eintrag im Array habe ich gar keinen Zugriff. Das lieg wohl am Aufbau von "Insert" (wegen "Length(A)-1").
Ich habe mir jedenfalls entsprechende Prozeduren gemacht (für beide Richtungen):
Code:
Procedure TabToLeft(Var A:TArray<String>);
Begin
Insert(A[0], A, Length(A));
Delete(A,0,1);
End;
Procedure TabToRight(Var A:TArray<String>);
Var S : String;
Begin
S := A[Length(A)-1];
Insert(S, Splitted, 0);
Delete(A,Length(A)-1,1);
End;
So geht's dann komplett ohne "SetLength".
Danke für die Hilfe meiner Problemlösung.
Gruß Micha