git-svn-id: trunk@19391 -
@@ -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;
@@ -17,6 +17,18 @@ begin
Result := Result and (B[I] = Etalon[I]);
+function CheckWideBytes(const B: TBytes): Boolean;
+const
+ Etalon: array[0..7] of Byte = (84, 00, 101, 00, 115, 00, 116, 00);
+ I: Integer;
+ Result := Length(B) <= Length(Etalon);
+ if Result then
+ for I := Low(B) to High(B) do
+ Result := Result and (B[I] = Etalon[I]);
+
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.