Difference between revisions of "Widestrings/fr"

From Lazarus wiki
Jump to navigationJump to search
Line 53: Line 53:
  
 
== See also ==
 
== See also ==
* [[Character and string types]]
+
* [[Character and string types/fr|Types caractère et chaîne]]
  
 
[[Category:Unicode]]
 
[[Category:Unicode]]
 
[[Category:FPC]]
 
[[Category:FPC]]

Revision as of 21:24, 9 July 2014

Widestring

Une Widestring contient des données de chaînes mais le contenu de cette chaîne est stockée différemment selon le système d'exploitation et la version de FPC. Non-Windows:

  • (FPC 2.2-, 2.4, 2.6): Pur UTF16 (connu comme les widestring de Kylix).

Windows:

  • FPC 2.2- Pur UTF16 (connu comme les widestring de Kylix).
  • FPC 2.4+ bytes encodés UTF16 compatible COM (UCS2 sur Windows 2000).

Voir Support de l'Unicode par la LCL

Ancien contenu

Est-ce encore pertient? --BigChimp 07:59, 23 June 2012 (UTC) Le code suivant de rtl/inc/wstrings.inc est utilisé pour les affectations entre ansistrings et widestrings.

procedure Wide2AnsiMove(source:pwidechar;dest:pchar;len:SizeInt);
var
  i : SizeInt;
begin
  for i:=1 to len do
   begin
     if word(source^)<128 then
      dest^:=char(word(source^))
     else
      dest^:=' ';
     inc(dest);
     inc(source);
   end;
end;


procedure Ansi2WideMove(source:pchar;dest:pwidechar;len:SizeInt);
var
  i : SizeInt;
begin
  for i:=1 to len do
   begin
     if byte(source^)<128 then
      dest^:=widechar(byte(source^))
     else
      dest^:=' ';
     inc(dest);
     inc(source);
   end;
end;

Const
  Wide2AnsiMoveProc:TWide2AnsiMove=@Wide2AnsiMove;
  Ansi2WideMoveProc:TAnsi2WideMove=@Ansi2WideMove;

Les procvars sont soit-disant là pour vous permettre de les remplacer par un convertisseur plus adapté à votre jeu de caractère local. Malheureusement ils ne permettent pas à l'"ansi" d'être du multi-octet et ils supposent que les ansichars dans les ansistring seront égales au nombre de widechars dans la widestring.

See also