Ich habe eine einfache Frage hier. Wie konvertiert man WideChar
zu 2x Byte
in Delphi - 7? Ich suchte das Internet und die StackOverflow aber ohne Ergebnisse ...WideChar zu Bytes?
6
A
Antwort
12
David gibt Ihnen die bevorzugte Art und Weise, nämlich
var
b1, b2: Byte;
wc: WideChar;
...
b1 := WordRec(wc).Lo;
b2 := WordRec(wc).Hi;
Ein paar andere Optionen (nur zum Spaß):
b1 := Lo(Word(wc));
b2 := Hi(Word(wc));
und
b1 := Byte(wc);
b2 := Byte(Word(wc) shr 8);
a nd
b1 := PByte(@wc)^;
b2 := PByte(NativeUInt(@wc) + 1)^;
und
var
wc: WideChar;
bytes: WordRec absolute wc;
begin
// Magic! The bytes are already found in bytes.Lo and bytes.Hi!
7
Viele Möglichkeiten, dies zu tun. Zum Beispiel würde meine persönliche Wahl sein:
var
b1, b2: Byte;
wc: WideChar;
....
b1 := WordRec(wc).Lo;
b2 := WordRec(wc).Hi;
+1
Ich werde nicht alle anderen Möglichkeiten aufzuzählen, es zu tun. Wäre gespannt, wie viele wirklich unterschiedliche Versionen es gibt. –
Verwandte Themen
- 1. Satz von WideChar: Sets können höchstens 256 Elemente
- 2. 6 Bytes Zeitstempel zu DateTime
- 3. Powershell Bytes zu Bit Array
- 4. numpy Bytes zu einfachen String
- 5. Powershell Base64 String zu Bytes
- 6. 2 Bytes zu kurz Java
- 7. Füllen eines Bytes [] mit mehreren Bytes [] s
- 8. Golang: von [] Bytes hexadezimal zu bekommen
- 9. Convert 3 aufeinanderfolgende Bytes zu zwei int
- 10. eine Reihe von Bytes zu cv :: Matte
- 11. Bytes (1024) zu String-Konvertierung (1 KB)?
- 12. Web - Video: Bytes Bereich zu Zeit
- 13. Java String, einzelne Zeichen zu hex Bytes
- 14. Wie zwei Arrays von Bytes zu vergleichen
- 15. konvertieren NSData Länge von Bytes zu megs
- 16. Konvertierung von Bytes zu int in Java
- 17. zu lange konvertieren Bytes in Python
- 18. Wie kann man diese einfachen 5 Bytes wieder in 4 Bytes umwandeln? (Algorithmus 4 Bytes in 5 Bytes zu konvertieren bekannt ist)
- 19. Splitting eine Kette von Bytes zu Vektor von BYTES in C++
- 20. Instruments ObjectAlloc: Erklärung von Live-Bytes und Gesamt-Bytes
- 21. Write Bytes in eine Datei, ohne vorhandenes Bytes Löschen
- 22. Erlaubte Speichergröße von 262144 Bytes erschöpft (versucht, 24576 Bytes zuzuordnen)
- 23. Java: Konvertieren Liste von Bytes in Array von Bytes
- 24. Get Bytes Objekt von Bytes in String-Objekt zitiert
- 25. Import rohe Bytes als rohe Bytes in R
- 26. Python 3.4 dekodieren Bytes
- 27. Java-Bytes verstehen
- 28. Enum Größe in Bytes
- 29. Assembly to Bytes
- 30. ifstream, Bytes gelesen?
+1, wir sind jetzt bis zu 5 verschiedene Möglichkeiten ..... –
Ich würde es vorziehen, char an den nativen Datentyp der 'Lo' und' Hi' Funktionsparameter zu übergeben, also würde ich 'Lo (Integer (wc)); 'und das gleiche für' Hallo'. Die absolute Direktive * magic * ist meiner Meinung nach die einfachste, aber ich würde 'bytes: array [0..1] von Byte absolute wc;' verwenden, da diese Frage nach Bytes fragt, nicht nach dem 'WordRec'. [+ 1ed] – TLama
@TLama Welchen Typ sind die Felder von WordRec? Auch Lo und Hi sind ein bisschen komisch. Sie akzeptieren 32-Bit-Ganzzahlen, ignorieren aber die höchstwertigen 16 Bits. Sie sind ein Hang over 16 Bit. –