Bonjour,

J'ai un petit problème de conversion de chaine de caractère.
J'ai une chaine de caractère qui est contenue dans un shortString qui contient des caractères non imprimables et j'aimerai les récupérer dans un string.

exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
Var
  S     : ShortString;
  St    : String;
  a1,a2,b1,b2 : integer;
Begin
  S := #151#0;
  a1 := ord(S[1]); // = 151
  a2 := ord(S[2]); // = 0
  // conversion
  St := S;
  b1 := ord(St[1]); // = 8212  !!!!!!!
  b2 := ord(St[2]); // = 0
end;
Dans cet exemple, en executant en pas à pas, on observe dans la fenetre watch que b1 = 8212 au lieu de 151

En revanche si je passe par "char" comme ceci, ça marche:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
St := char(S[1])+char(S[2])
Mais je cherche quelque chose de plus simple plutot que de faire une boucle pour chaque caractère.