Forum: Cross-Platform-Entwicklung
FreePascal
by mjustin,
9. Nov 2013
Genau, und deshalb kann man ihn völlig problemlos für binäre Daten verwenden, um noch zu älteren Delphi Versionen kompatibel zu bleiben definiere ich dann nur RawByteString = AnsiString.
Lediglich bei Free Pascal < 2.7.1 und Linux bin ich nicht sicher, welche Risiken die Verwendung von AnsiString für binäre Daten hat.
Aber in Kürze erhalte ich wahrscheinlich einen reproduzierbaren Testfall...
Forum: Cross-Platform-Entwicklung
FreePascal
by mjustin,
9. Nov 2013
In Delphi 2009 ist
type RawByteString = type AnsiString(65535);
In Free Pascal 2.7.1 ist
type RawByteString = type AnsiString($FFFF);
Vgl. z.B. Wie funktioniert RawByteString? (ab FPC 3.x)
Forum: Cross-Platform-Entwicklung
FreePascal
by mjustin,
9. Nov 2013
Ich nehme an, dass es Probleme gibt wenn die aktuelle Codepage manche Zeichen nicht enthält. Für Delphi 2009 und höher habe ich gerade dieses Beispiel gefunden:
https://forums.embarcadero.com/thread.jspa?threadID=70842
Um es unter Free Pascal 2.6 zu testen, könnte ich einem AnsiString einfach der Reihe nach alle Zeichen von $0 bis $ff hinzufügen und dann kontrollieren ob es angekommen ist....
Forum: Cross-Platform-Entwicklung
FreePascal
by mjustin,
9. Nov 2013
Ist in Free Pascal 2.6 der Type AnsiString zum Speichern von Binärdaten verwendbar?
In Delphi habe ich RawByteString verwendet, das aber erst in FPC 2.7.1 enthalten ist.
Ich verwende RecvBufferStr aus Synapse zum Empfangen von Binärdaten, und habe aufgrund der Dokumentation angenommen, es sei möglich binäre Daten in einen AnsiString zu speichern:
{Similar to RecvBufferEx, but...