erstmal ein Fehler in der Demo von
Beitrag #4:
Code:
Procedure RetrieveString(Const ACharArray: Array Of Char; Out AString: String);
...
For i := Low(ACharArray) To [color=red]Pred([/color]High(ACharArray)[color=red])[/color] Do
Das letzte Zeichen wird nicht kopiert und ist daher undefiniert.
Und dann sind dynamische Arrays in Delphi immer 0-basierend, also kann man das ganze LOW-Zeugs auch weglassen ^^
Delphi-Quellcode:
Procedure RetrieveString(Const ACharArray: Array Of Char; Out AString: String);
Var
i : Integer;
Begin
SetLength(AString, Length(ACharArray));
For i := 0 To High(ACharArray) Do
Begin
If i mod 2 = 0 Then
AString[1 + i] := ACharArray[i + 1]
Else
AString[1 + i] := ACharArray[i - 1];
End;
AString := TrimRight(AString); // selbst MS kürtzt den Rest weg ;)
End;
Ich weiß grad nicht, ob's schon behoben wurde, aber da fehlen ein paar -1.
For i := 0 To MAX_IDE_DRIVES Do