+ some WideString<->AnsiString conversion functions added

This commit is contained in:
florian 2002-09-26 21:50:37 +00:00
parent 44e4a4c936
commit 0e22fc491b
2 changed files with 47 additions and 5 deletions

View File

@ -47,7 +47,7 @@ Type
Longint = +(-2147483647-1)..$7fffffff;
Byte = 0..255;
Word = 0..65535;
{$ifndef ver1_0}
{$ifndef ver1_0}
DWord = LongWord;
Cardinal = LongWord;
{$else}
@ -419,6 +419,12 @@ Function Pos (c : Char; Const s : WideString) : Longint;
Function Pos (c : WideChar; Const s : WideString) : Longint;
Procedure Insert (Const Source : WideString; Var S : WideString; Index : Longint);
Procedure Delete (Var S : WideString; Index,Size: Longint);
function WideCharToString(S : PWideChar) : AnsiString;
function StringToWideChar(const Src : AnsiString;Dest : PWideChar;DestSize : LongInt) : PWideChar;
function WideCharLenToString(S : PWideChar;Len : LongInt) : AnsiString;
procedure WideCharLenToStrVar(Src : PWideChar;Len : LongInt;var Dest : AnsiString);
procedure WideCharToStrVar(S : PWideChar;var Dest : AnsiString);
{$endif HASWIDESTRING}
@ -587,7 +593,10 @@ const
{
$Log$
Revision 1.54 2002-09-07 21:20:50 carl
Revision 1.55 2002-09-26 21:50:37 florian
+ some WideString<->AnsiString conversion functions added
Revision 1.54 2002/09/07 21:20:50 carl
* cardinal -> longword
- remove FPUInt64 variable

View File

@ -57,7 +57,7 @@ procedure Wide2AnsiMove(source:pwidechar;dest:pchar;len:longint);
var
i : longint;
begin
for i:=1to len do
for i:=1 to len do
begin
if word(source^)<128 then
dest^:=char(word(source^))
@ -73,7 +73,7 @@ procedure Ansi2WideMove(source:pchar;dest:pwidechar;len:longint);
var
i : longint;
begin
for i:=1to len do
for i:=1 to len do
begin
if byte(source^)<128 then
dest^:=widechar(byte(source^))
@ -549,6 +549,36 @@ end;
Public functions, In interface.
*****************************************************************************}
function WideCharToString(S : PWideChar) : AnsiString;
begin
result:=WideCharLenToString(s,Length(WideString(s)));
end;
function StringToWideChar(const Src : AnsiString;Dest : PWideChar;DestSize : LongInt) : PWideChar;
begin
if Length(Src)<DestSize then
Ansi2WideMoveProc(PChar(Src),Dest,Length(Src))
else
Ansi2WideMoveProc(PChar(Src),Dest,DestSize);
end;
function WideCharLenToString(S : PWideChar;Len : LongInt) : AnsiString;
begin
SetLength(result,Len);
Wide2AnsiMove(S,PChar(result),Len);
end;
procedure WideCharLenToStrVar(Src : PWideChar;Len : LongInt;var Dest : AnsiString);
begin
Dest:=WideCharLenToString(Src,Len);
end;
procedure WideCharToStrVar(S : PWideChar;var Dest : AnsiString);
begin
Dest:=WideCharToString(S);
end;
{$ifndef INTERNLENGTH}
Function Length (Const S : WideString) : Longint;
{
@ -850,7 +880,10 @@ end;
{
$Log$
Revision 1.21 2002-09-14 11:20:50 carl
Revision 1.22 2002-09-26 21:50:38 florian
+ some WideString<->AnsiString conversion functions added
Revision 1.21 2002/09/14 11:20:50 carl
* Delphi compatibility fix (with string routines)
Revision 1.20 2002/09/07 21:16:45 carl