Bonjour,
En regardant l'unité SuperObject (librairie pour faire du JSON avec Delphi 7) je suis tombé sur le type suivant :
Code Delphi : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 TByteChar = record case integer of 0: (a, b: Byte); 1: (c: WideChar); end;
C'est utilisé comme ceci :
Code Delphi : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 buf[0] := '\'; buf[1] := 'u'; buf[2] := super_hex_chars[TByteChar(c).b shr 4]; buf[3] := super_hex_chars[TByteChar(c).b and $f]; buf[4] := super_hex_chars[TByteChar(c).a shr 4]; buf[5] := super_hex_chars[TByteChar(c).a and $f];
buf et super_hex_chars sont défini comme ceci :
Code Delphi : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 buf: array[0..5] of WideChar; super_hex_chars: PWideChar = '0123456789abcdef';
Juste pour ma culture personnelle, j'aimerai comprendre ce que fait ce code.
Je sais qu'il est utilisé pour convertir une valeur Unicode en sa traduction \u + Hexa + Hexa + Hexa + Hexa pour que le JSON le comprenne mais techniquement comment ça marche ?
Partager