Hallo,
ich bekomme die Fehlermeldung "Ungültige Zeigeroperation" beim Aufruf der folgenden Funktion:
Delphi-Quellcode:
function TSort.sortStrings(strings:TStrArray;order:String):TStrArray;
var i, i2, i3: Integer;
var sortedArray:TStrArray;
var tempArray:TTwoDimIntArray;
var c, merke:String;
begin
for i:=0 to length(strings)-1 do begin
setLength(tempArray, length(tempArray)+1);
i3 := 1;
setLength(tempArray[i], 1);
for i2:=1 to length(strings[i]) do begin
c := strings[i][i2];
if ((length(IntToStr(tempArray[i][i3]))) + (length(IntToStr(self.charToAlphabetInteger(c)))) > 9) then begin
i3 := i3 + 1;
setLength(tempArray[i], length(tempArray[i])+1);
end;
tempArray[i][i3] := self.charToAlphabetInteger(c);
end;
end;
setLength(sortedArray, length(strings));
for i:=0 to length(strings)-1 do begin
for i2:=0 to i+1 do begin
if ((tempArray[i+1][1] < tempArray[i2][1]) AND (order = 'ASC')) OR
((tempArray[i+1][1] > tempArray[i2][1]) AND (order = 'DESC')) then begin
merke := strings[i2];
strings[i2] := strings[i+1];
strings[i+1] := merke;
end;
end;
end;
for i:=0 to length(strings)-1 do begin
sortedArray[i] := strings[i];
end;
Result := sortedArray;
end;
Der Fehler kann nicht in der Funktion "self.charToAlphabetInteger()" liegen, das habe ich geprüft!
Kann mir jemand helfen? Ich habe nämlich meines Erachtens nach alle Array-Längen richtig gesetzt usw.
Danke schonmal!
Johannes