Forum: Sonstige Fragen zu Delphi
Delphi
by bernau,
15. Okt 2008
Das ist tatsächlich die eleganteste Lösung.
Zugelernt habe ich, daß der Anfang eines Array in der Procedure immer mit 0 beginnt, obwohl das übergebende Array einen ganz anderen Indexbereich hat. z.B. von 4 bis 8.
Forum: Sonstige Fragen zu Delphi
Delphi
by bernau,
15. Okt 2008
Problem wird auch sein, wenn folgendes passiert:
FillArray(arr,);
arr:='bla';
Das Array erhält mit "FillArray" die Zeiger der Konstanten. Dann wird mit dem Zweiten Befehl in den Speicher der Konstanten geschrieben. Übel.
Forum: Sonstige Fragen zu Delphi
Delphi
by bernau,
15. Okt 2008
Helf mir mal. Vieleicht habe ich ja einen Gedankenfehler aber hierbei werden doch nur die Zeiger der Strings kopiert.
1) Was ist, wenn Dest schon gefüllt ist. Die Pointer werden doch einfach überschrieben. Leckt da der Speicher nicht etwas.
2) Du weist Pointer von Source zu, die nach Ablauf der Procedure gar nicht mehr gültig sind.
Forum: Sonstige Fragen zu Delphi
Delphi
by bernau,
15. Okt 2008
Ja bestimmt. Ich hatte es aber nur so runtergeschrieben. War mir aber nicht sicher, ob der index von myArray in der procedure nun mit 3 anfängt oder mit 0. Ist ja z.B. mit deklariert. Deshalb habe ich jedem array einen eigenen index zugewiesen und jeweils geprüft, ob dieser sich im Wertebereich befindet.
Bis denne.
Forum: Sonstige Fragen zu Delphi
Delphi
by bernau,
15. Okt 2008
Kannst folgende procedure verwenden.
procedure AssignStringArrayValues(var aStringArrayTarget: array of string;aStringArraySource: array of string);
var
lTargetIndex:Integer;
lSourceIndex:Integer;
begin
lTargetIndex:=Low(aStringArrayTarget);
lSourceIndex:=Low(aStringArraySource);