UnicodeString Fix

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1482 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa
2011-02-02 15:34:13 +00:00
parent 1ba130c8c4
commit 2e55ad976d
5 changed files with 111 additions and 59 deletions

View File

@ -46,9 +46,9 @@ type
dtAnsiChar = 10, dtWideChar = 11, dtEnum = 12, dtAnsiChar = 10, dtWideChar = 11, dtEnum = 12,
dtSingle = 13, dtDouble = 14, dtExtended = 15, dtCurrency = 16, dtSingle = 13, dtDouble = 14, dtExtended = 15, dtCurrency = 16,
dtAnsiString = 17, dtWideString = 18, dtAnsiString = 17, dtWideString = 18,
{$IFDEF WST_UNICODESTRING} { $IFDEF WST_UNICODESTRING}
dtUnicodeString = 19, dtUnicodeString = 19,
{$ENDIF WST_UNICODESTRING} { $ENDIF WST_UNICODESTRING}
dtObject = 30, dtArray = 31 dtObject = 30, dtArray = 31
); );
const const
@ -69,9 +69,9 @@ type
PAnsiStringBuffer = ^TAnsiStringBuffer; PAnsiStringBuffer = ^TAnsiStringBuffer;
PWideStringBuffer = ^TWideStringBuffer; PWideStringBuffer = ^TWideStringBuffer;
{$IFDEF WST_UNICODESTRING} { $IFDEF WST_UNICODESTRING}
PUnicodeStringBuffer = ^TUnicodeStringBuffer; PUnicodeStringBuffer = ^TUnicodeStringBuffer;
{$ENDIF WST_UNICODESTRING} { $ENDIF WST_UNICODESTRING}
PObjectBuffer = ^TObjectBuffer; PObjectBuffer = ^TObjectBuffer;
PArrayBuffer = ^TArrayBuffer; PArrayBuffer = ^TArrayBuffer;
PDataBuffer = ^TDataBuffer; PDataBuffer = ^TDataBuffer;
@ -98,9 +98,9 @@ type
dtAnsiString : ( AnsiStrData : PAnsiStringBuffer ); dtAnsiString : ( AnsiStrData : PAnsiStringBuffer );
dtWideString : ( WideStrData : PWideStringBuffer ); dtWideString : ( WideStrData : PWideStringBuffer );
{$IFDEF WST_UNICODESTRING} { $IFDEF WST_UNICODESTRING}
dtUnicodeString : ( UnicodeStrData : PUnicodeStringBuffer ); dtUnicodeString : ( UnicodeStrData : PUnicodeStringBuffer );
{$ENDIF WST_UNICODESTRING} { $ENDIF WST_UNICODESTRING}
dtObject : ( ObjectData : PObjectBuffer ); dtObject : ( ObjectData : PObjectBuffer );
dtArray : ( ArrayData : PArrayBuffer ); dtArray : ( ArrayData : PArrayBuffer );
End; End;
@ -113,11 +113,11 @@ type
Data : TWideStringData; Data : TWideStringData;
end; end;
{$IFDEF WST_UNICODESTRING} { $IFDEF WST_UNICODESTRING}
TUnicodeStringBuffer = record TUnicodeStringBuffer = record
Data : TUnicodeStringData; Data : TUnicodeStringData;
end; end;
{$ENDIF WST_UNICODESTRING} { $ENDIF WST_UNICODESTRING}
@ -254,13 +254,13 @@ type
Const ATypeInfo : PTypeInfo; Const ATypeInfo : PTypeInfo;
Const AData : WideString Const AData : WideString
);{$IFDEF USE_INLINE}inline;{$ENDIF} );{$IFDEF USE_INLINE}inline;{$ENDIF}
{$IFDEF WST_UNICODESTRING} { $IFDEF WST_UNICODESTRING}
procedure PutUnicodeStr( procedure PutUnicodeStr(
Const AName : String; Const AName : String;
Const ATypeInfo : PTypeInfo; Const ATypeInfo : PTypeInfo;
Const AData : UnicodeString Const AData : UnicodeString
);{$IFDEF USE_INLINE}inline;{$ENDIF} );{$IFDEF USE_INLINE}inline;{$ENDIF}
{$ENDIF WST_UNICODESTRING} { $ENDIF WST_UNICODESTRING}
procedure PutEnum( procedure PutEnum(
Const AName : String; Const AName : String;
Const ATypeInfo : PTypeInfo; Const ATypeInfo : PTypeInfo;
@ -360,13 +360,13 @@ type
var AName : String; var AName : String;
var AData : WideString var AData : WideString
) : Boolean;{$IFDEF USE_INLINE}inline;{$ENDIF} ) : Boolean;{$IFDEF USE_INLINE}inline;{$ENDIF}
{$IFDEF WST_UNICODESTRING} { $IFDEF WST_UNICODESTRING}
function GetUnicodeStr( function GetUnicodeStr(
const ATypeInfo : PTypeInfo; const ATypeInfo : PTypeInfo;
var AName : String; var AName : String;
var AData : UnicodeString var AData : UnicodeString
) : Boolean;{$IFDEF USE_INLINE}inline;{$ENDIF} ) : Boolean;{$IFDEF USE_INLINE}inline;{$ENDIF}
{$ENDIF WST_UNICODESTRING} { $ENDIF WST_UNICODESTRING}
function GetObj( function GetObj(
Const ATypeInfo : PTypeInfo; Const ATypeInfo : PTypeInfo;
Var AName : String; Var AName : String;
@ -507,9 +507,9 @@ Begin
dtAnsiString : APrinterProc( s + ARoot^.Name + ' = ' + ARoot^.AnsiStrData^.Data ); dtAnsiString : APrinterProc( s + ARoot^.Name + ' = ' + ARoot^.AnsiStrData^.Data );
dtWideString : APrinterProc( s + ARoot^.Name + ' = ' + ARoot^.WideStrData^.Data ); dtWideString : APrinterProc( s + ARoot^.Name + ' = ' + ARoot^.WideStrData^.Data );
{$IFDEF WST_UNICODESTRING} { $IFDEF WST_UNICODESTRING}
dtUnicodeString : APrinterProc( s + ARoot^.Name + ' = ' + ARoot^.UnicodeStrData^.Data ); dtUnicodeString : APrinterProc( s + ARoot^.Name + ' = ' + ARoot^.UnicodeStrData^.Data );
{$ENDIF WST_UNICODESTRING} { $ENDIF WST_UNICODESTRING}
dtObject : dtObject :
Begin Begin
APrinterProc( s + ARoot^.Name + ' = '); APrinterProc( s + ARoot^.Name + ' = ');
@ -615,7 +615,7 @@ begin
FillChar(Result^.WideStrData^,i,#0); FillChar(Result^.WideStrData^,i,#0);
Result^.WideStrData^.Data := ''; Result^.WideStrData^.Data := '';
end; end;
{$IFDEF WST_UNICODESTRING} { $IFDEF WST_UNICODESTRING}
dtUnicodeString : dtUnicodeString :
begin begin
i := SizeOf(TUnicodeStringBuffer); i := SizeOf(TUnicodeStringBuffer);
@ -623,7 +623,7 @@ begin
FillChar(Result^.UnicodeStrData^,i,#0); FillChar(Result^.UnicodeStrData^,i,#0);
Result^.UnicodeStrData^.Data := ''; Result^.UnicodeStrData^.Data := '';
end; end;
{$ENDIF WST_UNICODESTRING} { $ENDIF WST_UNICODESTRING}
dtObject : dtObject :
Begin Begin
Result^.ObjectData := wst_GetMem(SizeOf(TObjectBuffer)); Result^.ObjectData := wst_GetMem(SizeOf(TObjectBuffer));
@ -698,9 +698,9 @@ Begin
dtAnsiString : ADest.WriteAnsiStr(ARoot^.AnsiStrData^.Data); dtAnsiString : ADest.WriteAnsiStr(ARoot^.AnsiStrData^.Data);
dtWideString : ADest.WriteWideStr(ARoot^.WideStrData^.Data); dtWideString : ADest.WriteWideStr(ARoot^.WideStrData^.Data);
{$IFDEF WST_UNICODESTRING} { $IFDEF WST_UNICODESTRING}
dtUnicodeString : ADest.WriteUnicodeStr(ARoot^.UnicodeStrData^.Data); dtUnicodeString : ADest.WriteUnicodeStr(ARoot^.UnicodeStrData^.Data);
{$ENDIF WST_UNICODESTRING} { $ENDIF WST_UNICODESTRING}
dtBool : ADest.WriteBool(ARoot^.BoolData); dtBool : ADest.WriteBool(ARoot^.BoolData);
dtAnsiChar : ADest.WriteAnsiChar(ARoot^.AnsiCharData); dtAnsiChar : ADest.WriteAnsiChar(ARoot^.AnsiCharData);
dtWideChar : ADest.WriteWideChar(ARoot^.WideCharData); dtWideChar : ADest.WriteWideChar(ARoot^.WideCharData);
@ -767,9 +767,9 @@ Begin
dtAnsiString : Result^.AnsiStrData^.Data := AStoreRdr.ReadAnsiStr(); dtAnsiString : Result^.AnsiStrData^.Data := AStoreRdr.ReadAnsiStr();
dtWideString : Result^.WideStrData^.Data := AStoreRdr.ReadWideStr(); dtWideString : Result^.WideStrData^.Data := AStoreRdr.ReadWideStr();
{$IFDEF WST_UNICODESTRING} { $IFDEF WST_UNICODESTRING}
dtUnicodeString : Result^.UnicodeStrData^.Data := AStoreRdr.ReadUnicodeStr(); dtUnicodeString : Result^.UnicodeStrData^.Data := AStoreRdr.ReadUnicodeStr();
{$ENDIF WST_UNICODESTRING} { $ENDIF WST_UNICODESTRING}
dtBool : Result^.BoolData := AStoreRdr.ReadBool(); dtBool : Result^.BoolData := AStoreRdr.ReadBool();
dtAnsiChar : Result^.AnsiCharData := AStoreRdr.ReadAnsiChar(); dtAnsiChar : Result^.AnsiCharData := AStoreRdr.ReadAnsiChar();
dtWideChar : Result^.WideCharData := AStoreRdr.ReadWideChar(); dtWideChar : Result^.WideCharData := AStoreRdr.ReadWideChar();
@ -856,14 +856,14 @@ Begin
Freemem(AOwner^.WideStrData); Freemem(AOwner^.WideStrData);
AOwner^.WideStrData := Nil; AOwner^.WideStrData := Nil;
end; end;
{$IFDEF WST_UNICODESTRING} { $IFDEF WST_UNICODESTRING}
dtUnicodeString : dtUnicodeString :
begin begin
AOwner^.UnicodeStrData^.Data := ''; AOwner^.UnicodeStrData^.Data := '';
Freemem(AOwner^.UnicodeStrData); Freemem(AOwner^.UnicodeStrData);
AOwner^.UnicodeStrData := Nil; AOwner^.UnicodeStrData := Nil;
end; end;
{$ENDIF WST_UNICODESTRING} { $ENDIF WST_UNICODESTRING}
dtObject : dtObject :
Begin Begin
FreeObjectBuffer(AOwner^.ObjectData); FreeObjectBuffer(AOwner^.ObjectData);
@ -1093,7 +1093,7 @@ begin
StackTop().CreateBuffer(AName,dtWideString)^.WideStrData^.Data := AData; StackTop().CreateBuffer(AName,dtWideString)^.WideStrData^.Data := AData;
end; end;
{$IFDEF WST_UNICODESTRING} { $IFDEF WST_UNICODESTRING}
procedure TBaseBinaryFormatter.PutUnicodeStr( procedure TBaseBinaryFormatter.PutUnicodeStr(
const AName: String; const AName: String;
const ATypeInfo: PTypeInfo; const ATypeInfo: PTypeInfo;
@ -1102,7 +1102,7 @@ procedure TBaseBinaryFormatter.PutUnicodeStr(
begin begin
StackTop().CreateBuffer(AName,dtUnicodeString)^.UnicodeStrData^.Data := AData; StackTop().CreateBuffer(AName,dtUnicodeString)^.UnicodeStrData^.Data := AData;
end; end;
{$ENDIF WST_UNICODESTRING} { $ENDIF WST_UNICODESTRING}
procedure TBaseBinaryFormatter.PutEnum( procedure TBaseBinaryFormatter.PutEnum(
const AName: String; const AName: String;
@ -1320,8 +1320,14 @@ var
locBuffer : PDataBuffer; locBuffer : PDataBuffer;
begin begin
Result := GetDataBuffer(AName,locBuffer); Result := GetDataBuffer(AName,locBuffer);
if Result then if Result then begin
AData := locBuffer^.AnsiStrData^.Data; case locBuffer^.DataType of
dtUnicodeString : AData := locBuffer^.UnicodeStrData^.Data;
dtWideString : AData := locBuffer^.WideStrData^.Data;
else
AData := locBuffer^.AnsiStrData^.Data;
end;
end;
end; end;
function TBaseBinaryFormatter.GetWideStr( function TBaseBinaryFormatter.GetWideStr(
@ -1333,11 +1339,17 @@ var
locBuffer : PDataBuffer; locBuffer : PDataBuffer;
begin begin
Result := GetDataBuffer(AName,locBuffer); Result := GetDataBuffer(AName,locBuffer);
if Result then if Result then begin
AData := locBuffer^.WideStrData^.Data; case locBuffer^.DataType of
dtAnsiString : AData := locBuffer^.AnsiStrData^.Data;
dtUnicodeString : AData := locBuffer^.UnicodeStrData^.Data;
else
AData := locBuffer^.WideStrData^.Data;
end;
end;
end; end;
{$IFDEF WST_UNICODESTRING} { $IFDEF WST_UNICODESTRING}
function TBaseBinaryFormatter.GetUnicodeStr( function TBaseBinaryFormatter.GetUnicodeStr(
const ATypeInfo: PTypeInfo; const ATypeInfo: PTypeInfo;
var AName: String; var AName: String;
@ -1347,10 +1359,16 @@ var
locBuffer : PDataBuffer; locBuffer : PDataBuffer;
begin begin
Result := GetDataBuffer(AName,locBuffer); Result := GetDataBuffer(AName,locBuffer);
if Result then if Result then begin
AData := locBuffer^.UnicodeStrData^.Data; case locBuffer^.DataType of
dtAnsiString : AData := locBuffer^.AnsiStrData^.Data;
dtWideString : AData := locBuffer^.WideStrData^.Data;
else
AData := locBuffer^.UnicodeStrData^.Data;
end;
end;
end; end;
{$ENDIF WST_UNICODESTRING} { $ENDIF WST_UNICODESTRING}
function TBaseBinaryFormatter.GetObj( function TBaseBinaryFormatter.GetObj(
const ATypeInfo: PTypeInfo; const ATypeInfo: PTypeInfo;
@ -1530,7 +1548,7 @@ begin
end; end;
tkLString{$IFDEF FPC},tkAString{$ENDIF} : tkLString{$IFDEF FPC},tkAString{$ENDIF} :
Begin Begin
ansiStrData := String(AData); ansiStrData := AnsiString(AData);
PutAnsiStr(AName,ATypeInfo,ansiStrData); PutAnsiStr(AName,ATypeInfo,ansiStrData);
End; End;
tkWString : tkWString :
@ -1659,7 +1677,7 @@ begin
end; end;
tkLString{$IFDEF FPC},tkAString{$ENDIF} : tkLString{$IFDEF FPC},tkAString{$ENDIF} :
begin begin
strData := string(AData); strData := AnsiString(AData);
StackTop().CreateInnerBuffer(dtAnsiString)^.AnsiStrData^.Data := strData; StackTop().CreateInnerBuffer(dtAnsiString)^.AnsiStrData^.Data := strData;
end; end;
tkWString : tkWString :
@ -1838,7 +1856,7 @@ begin
strData := ''; strData := '';
Result := GetAnsiStr(ATypeInfo,AName,strData); Result := GetAnsiStr(ATypeInfo,AName,strData);
if Result then if Result then
String(AData) := strData; AnsiString(AData) := strData;
End; End;
tkWString : tkWString :
begin begin
@ -1973,10 +1991,34 @@ begin
tkLString tkLString
{$IFDEF FPC}, {$IFDEF FPC},
tkAString tkAString
{$ENDIF} : string(AData) := dataBuffer^.AnsiStrData^.Data; {$ENDIF} :
tkWString : WideString(AData) := dataBuffer^.WideStrData^.Data; begin
case dataBuffer^.DataType of
dtUnicodeString : AnsiString(AData) := dataBuffer^.UnicodeStrData^.Data;
dtWideString : AnsiString(AData) := dataBuffer^.WideStrData^.Data;
else
AnsiString(AData) := dataBuffer^.AnsiStrData^.Data;
end;
end;
tkWString :
begin
case dataBuffer^.DataType of
dtUnicodeString : WideString(AData) := dataBuffer^.UnicodeStrData^.Data;
dtAnsiString : WideString(AData) := dataBuffer^.AnsiStrData^.Data;
else
WideString(AData) := dataBuffer^.WideStrData^.Data;
end;
end;
{$IFDEF WST_UNICODESTRING} {$IFDEF WST_UNICODESTRING}
tkUString : UnicodeString(AData) := dataBuffer^.UnicodeStrData^.Data; tkUString :
begin
case dataBuffer^.DataType of
dtAnsiString : UnicodeString(AData) := dataBuffer^.AnsiStrData^.Data;
dtWideString : UnicodeString(AData) := dataBuffer^.WideStrData^.Data;
else
UnicodeString(AData) := dataBuffer^.UnicodeStrData^.Data;
end;
end;
{$ENDIF WST_UNICODESTRING} {$ENDIF WST_UNICODESTRING}
tkClass, tkRecord : raise EBinaryFormatterException.Create(SERR_InnerScopeMustBeSimpleType); tkClass, tkRecord : raise EBinaryFormatterException.Create(SERR_InnerScopeMustBeSimpleType);

View File

@ -5206,7 +5206,13 @@ begin
ok := ( GetInt64Prop(Self,p^.Name) = GetInt64Prop(ACompareTo,p^.Name) ); ok := ( GetInt64Prop(Self,p^.Name) = GetInt64Prop(ACompareTo,p^.Name) );
{$IFDEF HAS_TKBOOL}tkBool,{$ENDIF} tkEnumeration, tkInteger : {$IFDEF HAS_TKBOOL}tkBool,{$ENDIF} tkEnumeration, tkInteger :
ok := ( GetOrdProp(Self,p^.Name) = GetOrdProp(ACompareTo,p^.Name) ); ok := ( GetOrdProp(Self,p^.Name) = GetOrdProp(ACompareTo,p^.Name) );
tkLString{$IFDEF FPC}, tkAString{$ENDIF} : {$IFDEF FPC}
tkAString,
{$ENDIF FPC}
{$IFDEF WST_UNICODESTRING}
tkUString,
{$ENDIF WST_UNICODESTRING}
tkLString :
ok := ( GetStrProp(Self,p^.Name) = GetStrProp(ACompareTo,p^.Name) ); ok := ( GetStrProp(Self,p^.Name) = GetStrProp(ACompareTo,p^.Name) );
tkClass : tkClass :
begin begin

View File

@ -1820,7 +1820,7 @@ begin
{$ENDIF HAS_QWORD} {$ENDIF HAS_QWORD}
tkLString{$IFDEF FPC},tkAString{$ENDIF} : tkLString{$IFDEF FPC},tkAString{$ENDIF} :
Begin Begin
strData := String(AData); strData := AnsiString(AData);
PutStr(ANameSpace,AName,ATypeInfo,strData); PutStr(ANameSpace,AName,ATypeInfo,strData);
End; End;
{$IFDEF WST_UNICODESTRING} {$IFDEF WST_UNICODESTRING}
@ -1949,7 +1949,7 @@ begin
{$ENDIF HAS_QWORD} {$ENDIF HAS_QWORD}
tkLString{$IFDEF FPC},tkAString{$ENDIF} : tkLString{$IFDEF FPC},tkAString{$ENDIF} :
begin begin
strData := string(AData); strData := AnsiString(AData);
dataBuffer := strData; dataBuffer := strData;
end; end;
tkWString : tkWString :
@ -2087,7 +2087,7 @@ begin
strData := ''; strData := '';
Result := GetStr(ATypeInfo,ANameSpace,AName,strData); Result := GetStr(ATypeInfo,ANameSpace,AName,strData);
if Result then if Result then
String(AData) := strData; AnsiString(AData) := strData;
End; End;
{$IFDEF WST_UNICODESTRING} {$IFDEF WST_UNICODESTRING}
tkUString : tkUString :
@ -2222,7 +2222,7 @@ begin
{$IFDEF HAS_QWORD} {$IFDEF HAS_QWORD}
tkQWord : QWord(AData) := StrToQWordDef(Trim(dataBuffer),0); tkQWord : QWord(AData) := StrToQWordDef(Trim(dataBuffer),0);
{$ENDIF HAS_QWORD} {$ENDIF HAS_QWORD}
tkLString{$IFDEF FPC},tkAString{$ENDIF} : string(AData) := dataBuffer; tkLString{$IFDEF FPC},tkAString{$ENDIF} : AnsiString(AData) := dataBuffer;
tkWString : WideString(AData) := dataBuffer; tkWString : WideString(AData) := dataBuffer;
{$IFDEF WST_UNICODESTRING} {$IFDEF WST_UNICODESTRING}
tkUString : UnicodeString(AData) := dataBuffer; tkUString : UnicodeString(AData) := dataBuffer;

View File

@ -1433,7 +1433,7 @@ begin
{$ENDIF HAS_QWORD} {$ENDIF HAS_QWORD}
tkLString{$IFDEF FPC},tkAString{$ENDIF} : tkLString{$IFDEF FPC},tkAString{$ENDIF} :
Begin Begin
strData := String(AData); strData := AnsiString(AData);
PutStr(AName,ATypeInfo,strData); PutStr(AName,ATypeInfo,strData);
End; End;
tkWString : tkWString :
@ -1562,7 +1562,7 @@ begin
{$ENDIF HAS_QWORD} {$ENDIF HAS_QWORD}
tkLString{$IFDEF FPC},tkAString{$ENDIF} : tkLString{$IFDEF FPC},tkAString{$ENDIF} :
begin begin
strData := string(AData); strData := AnsiString(AData);
dataBuffer := strData; dataBuffer := strData;
end; end;
tkWString : tkWString :
@ -1706,7 +1706,7 @@ begin
strData := ''; strData := '';
Result := GetStr(ATypeInfo,AName,strData); Result := GetStr(ATypeInfo,AName,strData);
if Result then if Result then
String(AData) := strData; AnsiString(AData) := strData;
End; End;
{$IFDEF WST_UNICODESTRING} {$IFDEF WST_UNICODESTRING}
tkUString : tkUString :
@ -1842,7 +1842,7 @@ begin
{$IFDEF HAS_QWORD} {$IFDEF HAS_QWORD}
tkQWord : QWord(AData) := StrToQWordDef(Trim(dataBuffer),0); tkQWord : QWord(AData) := StrToQWordDef(Trim(dataBuffer),0);
{$ENDIF HAS_QWORD} {$ENDIF HAS_QWORD}
tkLString{$IFDEF FPC},tkAString{$ENDIF} : string(AData) := dataBuffer; tkLString{$IFDEF FPC},tkAString{$ENDIF} : AnsiString(AData) := dataBuffer;
tkWString : WideString(AData) := dataBuffer; tkWString : WideString(AData) := dataBuffer;
{$IFDEF WST_UNICODESTRING} {$IFDEF WST_UNICODESTRING}
tkUString : UnicodeString(AData) := dataBuffer; tkUString : UnicodeString(AData) := dataBuffer;

View File

@ -34,6 +34,10 @@ Type
TWideStringData = WideString; TWideStringData = WideString;
{$IFDEF WST_UNICODESTRING} {$IFDEF WST_UNICODESTRING}
TUnicodeStringData = UnicodeString; TUnicodeStringData = UnicodeString;
{$ELSE WST_UNICODESTRING}
UnicodeString = WideString;
TUnicodeStringData = UnicodeString;
UnicodeChar = WideChar;
{$ENDIF WST_UNICODESTRING} {$ENDIF WST_UNICODESTRING}
TAnsiCharacter = AnsiChar; TAnsiCharacter = AnsiChar;
TWideCharacter = WideChar; TWideCharacter = WideChar;
@ -64,9 +68,9 @@ Type
procedure WriteEnum(Const AData : TEnumData); procedure WriteEnum(Const AData : TEnumData);
procedure WriteAnsiStr(Const AData : TAnsiStringData); procedure WriteAnsiStr(Const AData : TAnsiStringData);
procedure WriteWideStr(Const AData : TWideStringData); procedure WriteWideStr(Const AData : TWideStringData);
{$IFDEF WST_UNICODESTRING} { $IFDEF WST_UNICODESTRING}
procedure WriteUnicodeStr(Const AData : TUnicodeStringData); procedure WriteUnicodeStr(Const AData : TUnicodeStringData);
{$ENDIF WST_UNICODESTRING} { $ENDIF WST_UNICODESTRING}
procedure WriteBinary(const AData : TByteDynArray); procedure WriteBinary(const AData : TByteDynArray);
procedure WriteSingle(Const AData : TFloat_Single_4); procedure WriteSingle(Const AData : TFloat_Single_4);
@ -96,9 +100,9 @@ Type
function ReadEnum():TEnumData; function ReadEnum():TEnumData;
function ReadAnsiStr():TAnsiStringData; function ReadAnsiStr():TAnsiStringData;
function ReadWideStr():TWideStringData; function ReadWideStr():TWideStringData;
{$IFDEF WST_UNICODESTRING} { $IFDEF WST_UNICODESTRING}
function ReadUnicodeStr():TUnicodeStringData; function ReadUnicodeStr():TUnicodeStringData;
{$ENDIF WST_UNICODESTRING} { $ENDIF WST_UNICODESTRING}
function ReadBinary() : TByteDynArray; function ReadBinary() : TByteDynArray;
function ReadSingle():TFloat_Single_4; function ReadSingle():TFloat_Single_4;
@ -231,9 +235,9 @@ Type
procedure WriteEnum(Const AData : TEnumData); procedure WriteEnum(Const AData : TEnumData);
procedure WriteAnsiStr(Const AData : TAnsiStringData); procedure WriteAnsiStr(Const AData : TAnsiStringData);
procedure WriteWideStr(Const AData : TWideStringData); procedure WriteWideStr(Const AData : TWideStringData);
{$IFDEF WST_UNICODESTRING} { $IFDEF WST_UNICODESTRING}
procedure WriteUnicodeStr(Const AData : TUnicodeStringData); procedure WriteUnicodeStr(Const AData : TUnicodeStringData);
{$ENDIF WST_UNICODESTRING} { $ENDIF WST_UNICODESTRING}
procedure WriteBinary(const AData : TByteDynArray); procedure WriteBinary(const AData : TByteDynArray);
procedure WriteSingle(Const AData : TFloat_Single_4); procedure WriteSingle(Const AData : TFloat_Single_4);
@ -269,9 +273,9 @@ Type
function ReadEnum():TEnumData; function ReadEnum():TEnumData;
function ReadAnsiStr():TAnsiStringData; function ReadAnsiStr():TAnsiStringData;
function ReadWideStr():TWideStringData; function ReadWideStr():TWideStringData;
{$IFDEF WST_UNICODESTRING} { $IFDEF WST_UNICODESTRING}
function ReadUnicodeStr():TUnicodeStringData; function ReadUnicodeStr():TUnicodeStringData;
{$ENDIF WST_UNICODESTRING} { $ENDIF WST_UNICODESTRING}
function ReadBinary() : TByteDynArray; function ReadBinary() : TByteDynArray;
function ReadSingle():TFloat_Single_4; function ReadSingle():TFloat_Single_4;
@ -452,7 +456,7 @@ begin
FStream.Write(AData[0],i); FStream.Write(AData[0],i);
end; end;
{$IFDEF WST_UNICODESTRING} { $IFDEF WST_UNICODESTRING}
procedure TDataStore.WriteUnicodeStr(const AData: TUnicodeStringData); procedure TDataStore.WriteUnicodeStr(const AData: TUnicodeStringData);
procedure LocalWrite(); procedure LocalWrite();
@ -474,7 +478,7 @@ begin
LocalWrite(); LocalWrite();
end; end;
end; end;
{$ENDIF WST_UNICODESTRING} { $ENDIF WST_UNICODESTRING}
{ {
procedure TDataStore.WriteSingle(const AData: TFloat_Single_4); procedure TDataStore.WriteSingle(const AData: TFloat_Single_4);
@ -642,7 +646,7 @@ begin
FStream.ReadBuffer(Result[0],i); FStream.ReadBuffer(Result[0],i);
end; end;
{$IFDEF WST_UNICODESTRING} { $IFDEF WST_UNICODESTRING}
function TDataStoreReader.ReadUnicodeStr(): TUnicodeStringData; function TDataStoreReader.ReadUnicodeStr(): TUnicodeStringData;
var var
i : TInt32S; i : TInt32S;
@ -654,7 +658,7 @@ begin
Reverse_Array(Pointer(Result)^,i,SizeOf(UnicodeChar)); Reverse_Array(Pointer(Result)^,i,SizeOf(UnicodeChar));
end; end;
end; end;
{$ENDIF WST_UNICODESTRING} { $ENDIF WST_UNICODESTRING}
{$HINTS OFF} {$HINTS OFF}
function TDataStoreReader.ReadSingle(): TFloat_Single_4; function TDataStoreReader.ReadSingle(): TFloat_Single_4;