|
@@ -54,7 +54,7 @@ type
|
|
function ReadStringFileInfo(toread : integer) : integer;
|
|
function ReadStringFileInfo(toread : integer) : integer;
|
|
function ReadVarFileInfo(toread : integer) : integer;
|
|
function ReadVarFileInfo(toread : integer) : integer;
|
|
function ReadStringTable(toread : integer;aName : string) : integer;
|
|
function ReadStringTable(toread : integer;aName : string) : integer;
|
|
- function ReadWideString: string;
|
|
|
|
|
|
+ function ReadWideString(toread: integer = -1): string;
|
|
procedure WriteFixedBlockLength(const position : int64);
|
|
procedure WriteFixedBlockLength(const position : int64);
|
|
procedure WriteData;
|
|
procedure WriteData;
|
|
procedure WriteFixedInfos;
|
|
procedure WriteFixedInfos;
|
|
@@ -300,7 +300,7 @@ begin
|
|
begin
|
|
begin
|
|
before:=RawData.Position;
|
|
before:=RawData.Position;
|
|
ReadBlockHeader(block);
|
|
ReadBlockHeader(block);
|
|
- value:=ReadWideString;
|
|
|
|
|
|
+ value:=ReadWideString(block.vallength);
|
|
AlignDWordReading;
|
|
AlignDWordReading;
|
|
tmp:=RawData.Position-before;
|
|
tmp:=RawData.Position-before;
|
|
dec(toread,tmp); inc(Result,tmp);
|
|
dec(toread,tmp); inc(Result,tmp);
|
|
@@ -308,20 +308,24 @@ begin
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|
|
-function TVersionResource.ReadWideString: string;
|
|
|
|
|
|
+function TVersionResource.ReadWideString(toread: integer): string;
|
|
var w : word;
|
|
var w : word;
|
|
ws : widestring;
|
|
ws : widestring;
|
|
|
|
+ i: integer = 0;
|
|
begin
|
|
begin
|
|
ws:='';
|
|
ws:='';
|
|
|
|
+ if toread=0 then
|
|
|
|
+ exit('');
|
|
w:=0;
|
|
w:=0;
|
|
repeat
|
|
repeat
|
|
RawData.ReadBuffer(w,2);
|
|
RawData.ReadBuffer(w,2);
|
|
- if w = 0 then break;
|
|
|
|
|
|
+ if (toread=-1) and (w = 0) then break;
|
|
{$IFDEF ENDIAN_BIG}
|
|
{$IFDEF ENDIAN_BIG}
|
|
w:=SwapEndian(w);
|
|
w:=SwapEndian(w);
|
|
{$ENDIF}
|
|
{$ENDIF}
|
|
ws:=ws+widechar(w);
|
|
ws:=ws+widechar(w);
|
|
- until false;
|
|
|
|
|
|
+ inc(i);
|
|
|
|
+ until i = toread;
|
|
Result:=ws;
|
|
Result:=ws;
|
|
end;
|
|
end;
|
|
|
|
|