mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-31 08:42:33 +02:00
rtl: add WideBytesOf(UnicodeString): TBytes for delphi compatibility
git-svn-id: trunk@19391 -
This commit is contained in:
parent
fa43a448b9
commit
14c2f248df
@ -179,3 +179,12 @@ begin
|
||||
Result:=TEncoding.Default.GetBytes(Val);
|
||||
end;
|
||||
{$ENDIF VER2_4}
|
||||
function WideBytesOf(const Value: UnicodeString): TBytes;
|
||||
var
|
||||
Len:Integer;
|
||||
begin
|
||||
Len:=Length(Value)*SizeOf(UnicodeChar);
|
||||
SetLength(Result,Len);
|
||||
if Len>0 then
|
||||
Move(Value[1],Result[0],Len);
|
||||
end;
|
||||
|
@ -45,3 +45,4 @@ function StrPCopy(Dest: PWideChar; const Source: UnicodeString): PWideChar; over
|
||||
function BytesOf(const Val: UnicodeString): TBytes; overload;
|
||||
function BytesOf(const Val: WideChar): TBytes; overload;
|
||||
{$ENDIF VER2_4}
|
||||
function WideBytesOf(const Value: UnicodeString): TBytes;
|
||||
|
@ -17,6 +17,18 @@ begin
|
||||
Result := Result and (B[I] = Etalon[I]);
|
||||
end;
|
||||
|
||||
function CheckWideBytes(const B: TBytes): Boolean;
|
||||
const
|
||||
Etalon: array[0..7] of Byte = (84, 00, 101, 00, 115, 00, 116, 00);
|
||||
var
|
||||
I: Integer;
|
||||
begin
|
||||
Result := Length(B) <= Length(Etalon);
|
||||
if Result then
|
||||
for I := Low(B) to High(B) do
|
||||
Result := Result and (B[I] = Etalon[I]);
|
||||
end;
|
||||
|
||||
var
|
||||
S: AnsiString;
|
||||
U: UnicodeString;
|
||||
@ -36,4 +48,7 @@ begin
|
||||
B := BytesOf(U[1]);
|
||||
if not CheckBytes(B) then
|
||||
halt(4);
|
||||
B := WideBytesOf(U);
|
||||
if not CheckWideBytes(B) then
|
||||
halt(5);
|
||||
end.
|
||||
|
Loading…
Reference in New Issue
Block a user