![]() |
AnsiString in Android App
Hallo zusammen,
Ansistring gibt es ja in Android Apps nicht. Wenn ich dies aber zwingend benötige (da ich mit nicht Unicode Strings -> also 1 Byte für 1 Char) arbeite, brauche ich das natürlich. Ich habe dies hier gefunden: ![]() Soll ich das einfach einbinden und dann kann ich meine Variablen als Ansistring deklarieren? Nachwirkungen oder irgendwelche anderen Probleme habe ich dadurch nicht oder? Grüße |
AW: AnsiString in Android App
Zitat:
Zitat:
Oder du verwendest einfach ein Byte-Array, wenn du eine Reihe von "1" Bytes benötigst. :stupid: |
AW: AnsiString in Android App
Zitat:
|
AW: AnsiString in Android App
Ah ok. Wieso versteckt man das?
Habe es übrigens getestet, geht ;-) |
AW: AnsiString in Android App
Zitat:
Brauchst du wirklich AnsiString? Oder willst du das nur als Bytebuffer mißbrauchen? |
AW: AnsiString in Android App
Ja ich brauche wirklich ein AnsiString.
Wie kommt man denn darauf diese System.ByteStrings im Hexeditor zu ändern? Also woher kommt die Ursprungsdatei denn? Im XE7 ist die ja nicht enthalten. Wie kommt man auf solche Sachen? ;-) |
AW: AnsiString in Android App
Zitat:
|
AW: AnsiString in Android App
TEncoding kann den AnsiString von Bytes in Unicode umwandeln und beim Speichern kann man es wieder zu ANSI machen.
TStringList, TFile.ReadXXX, TStringStream, TFileStream+TBinaryReader uvm. können auch Ansi einlesen und dann in Unicode umwandeln. Und wenn es wirklich ANSI bleiben muß, dann liest man es eben als TBytes ein und wandelt es nicht um. |
AW: AnsiString in Android App
Ich gucke mir das mit den TBytes mal an, vielleicht kann ich ja wirklich darauf umsteigen.
Trotzdem nochmal so gefragt: Wie kommt man denn darauf diese System.ByteStrings im Hexeditor zu ändern? Also woher kommt die Ursprungsdatei denn? Im XE7 ist die ja nicht enthalten. Wie kommt man auf solche Sachen? Grüße |
AW: AnsiString in Android App
Zitat:
Delphi-Quellcode:
Diese lässt sich aber so nicht kompilieren, da die Symbole in der System.dcu nicht mit Unterstrich anfangen, sondern mit "@" (der Compiler ändert alle führenden Unterstriche in System.pas zu "@" ab). Der Patch besteht nun darin, die System.dcu Datei etwas zu recht zu biegen, System.ByteStrings zu kompilieren und danach die System.ByteStrings Unit auf "@" zu patchen.
unit System.ByteStrings;
interface {$IFDEF NEXTGEN} type ShortString = _ShortString; AnsiString = _AnsiString; AnsiChar = _AnsiChar; PAnsiChar = _PAnsiChar; PPAnsiChar = _PPAnsiChar; UTF8String = _UTF8String; PUTF8String = _PUTF8String; RawByteString = _RawByteString; PRawByteString = _PRawByteString; {$ENDIF NEXTGEN} implementation end. Es ginge natürlich auch noch einfacher, in dem man die System.pas ändert und neu kompiliert. Aber dann hat man mit Packages und Unit-Abhängigkeiten so seine Probleme. Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz