Difference between revisions of "Widestrings/fr"

From Lazarus wiki
Jump to navigationJump to search
m (Fixed syntax highlighting; deleted category included in page template)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
{{Widestrings}}
 +
 
== Widestring ==
 
== 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.  
 
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.  
Line 10: Line 12:
 
Voir [[LCL_Unicode_Support/fr|Support de l'Unicode par la LCL]]
 
Voir [[LCL_Unicode_Support/fr|Support de l'Unicode par la LCL]]
  
== Old content ==
+
== Ancien contenu ==
''Is this still relevant?''
+
''Est-ce encore pertient?''
 
--[[User:BigChimp|BigChimp]] 07:59, 23 June 2012 (UTC)
 
--[[User:BigChimp|BigChimp]] 07:59, 23 June 2012 (UTC)
the following code from rtl/inc/wstrings.inc is used for assignments between ansistrings and widestrings.
+
Le code suivant de rtl/inc/wstrings.inc est utilisé pour les affectations entre ansistrings et widestrings.
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
procedure Wide2AnsiMove(source:pwidechar;dest:pchar;len:SizeInt);
 
procedure Wide2AnsiMove(source:pwidechar;dest:pchar;len:SizeInt);
 
var
 
var
Line 50: Line 52:
 
   Ansi2WideMoveProc:TAnsi2WideMove=@Ansi2WideMove;
 
   Ansi2WideMoveProc:TAnsi2WideMove=@Ansi2WideMove;
 
</syntaxhighlight>
 
</syntaxhighlight>
the procvars are supposed to allow you to replace theese with a converter more suited to the local charset. Unfortunately they do not allow for the "ansi" charset to be multibyte as they assume the number of ansichars in the ansistring will equal the number of widechars in the widestring.
+
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 ==
 
== See also ==
* [[Character and string types]]
+
* [[Character and string types/fr|Types caractère et chaîne]]
 
 
[[Category:Unicode]]
 
[[Category:FPC]]
 

Latest revision as of 11:35, 4 March 2020

English (en) français (fr)

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