Selbst gesehen hab' ich noch (BoolTrue/FalseString kann auch JA/NEIN, EIN/AUS sein)
Delphi-Quellcode:
if UpperCase(PChar(aPtr)) = UpperCase(BoolTrueString) then Result := True else Result := False;
// wird zu
Result := UpperCase(PChar(aPtr)) = UpperCase(BoolTrueString);
Was (in D5?) nicht geht ist
Str[i] in ['+-0123456789']
aber den Weg über downto und Delete übernehme ich.
Die Zeilen mit except habe ich durch ..To..Def Functionen (Eigenbau) ersetzt.
Das ganze wirkt schon wesentlich übersichtlicher.
***
Cast:
PByte(aPtr)^ wird gleich angemeckert, muss erst suchen, wo das in D5 definiert ist (
Unit Types gibt es noch nicht). Notfalls halt auch selber anlegen.
Dabei hab' ich mich allerdings gefragt, ob es nötig ist. Wenn ich ein typisierten Pointer übergebe, meckert D5 ja nur, wenn der Platz nicht reicht... das wäre ja im Prinzip auch OK so. Komplett alles müssen die Funktionen nicht abfangen, das macht ja kaum eine Funktion. Etwas Sorgfalt muss ja auch im aufrufenden Code sein (wie z.B. genug Platz im Speicherbereich)