You've already forked lazarus-ccr
Fixed floating point calculation for RKValue.
Fixed write label > 255 chars (not possible, truncate string). git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@828 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@@ -687,6 +687,10 @@ begin
|
|||||||
Exit;
|
Exit;
|
||||||
end;
|
end;
|
||||||
L := Length(AnsiValue);
|
L := Length(AnsiValue);
|
||||||
|
if L>255 then begin
|
||||||
|
//BIFF 5 does not support labels/text bigger than 255 chars.
|
||||||
|
L:=255;
|
||||||
|
end;
|
||||||
|
|
||||||
{ BIFF Record header }
|
{ BIFF Record header }
|
||||||
AStream.WriteWord(WordToLE(INT_EXCEL_ID_LABEL));
|
AStream.WriteWord(WordToLE(INT_EXCEL_ID_LABEL));
|
||||||
@@ -697,10 +701,10 @@ begin
|
|||||||
AStream.WriteWord(WordToLE(ACol));
|
AStream.WriteWord(WordToLE(ACol));
|
||||||
|
|
||||||
{ Index to XF record }
|
{ Index to XF record }
|
||||||
AStream.WriteWord(15);
|
AStream.WriteWord(WordToLE(15));
|
||||||
|
|
||||||
{ Byte String with 16-bit size }
|
{ Byte String with 16-bit size }
|
||||||
AStream.WriteWord(L);
|
AStream.WriteWord(WordToLE(L));
|
||||||
AStream.WriteBuffer(AnsiValue[1], L);
|
AStream.WriteBuffer(AnsiValue[1], L);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -1003,9 +1007,6 @@ begin
|
|||||||
$0208: ; //(ROW) This record contains the properties of a single row in a sheet. Rows and cells in a sheet are divided into blocks of 32 rows.
|
$0208: ; //(ROW) This record contains the properties of a single row in a sheet. Rows and cells in a sheet are divided into blocks of 32 rows.
|
||||||
$0225: ; //(DEFAULTROWHEIGHT) This record specifies the default height and default flags for rows that do not have a corresponding ROW record.
|
$0225: ; //(DEFAULTROWHEIGHT) This record specifies the default height and default flags for rows that do not have a corresponding ROW record.
|
||||||
$023E: ; //(WINDOW2) This record contains the range address of the used area in the current sheet.
|
$023E: ; //(WINDOW2) This record contains the range address of the used area in the current sheet.
|
||||||
//--------------------------------------------
|
|
||||||
{ TODO 5 -cEXCELTAGS : MULRK support }
|
|
||||||
$00BD: ; //(MULRK) This record represents a cell range containing RK value cells. All cells are located in the same row.
|
|
||||||
else
|
else
|
||||||
WriteLn(format('Record type: %.4X Record Size: %.4X',[RecordType,RecordSize]));
|
WriteLn(format('Record type: %.4X Record Size: %.4X',[RecordType,RecordSize]));
|
||||||
end;
|
end;
|
||||||
@@ -1129,9 +1130,9 @@ begin
|
|||||||
end;
|
end;
|
||||||
end else begin
|
end else begin
|
||||||
// Floating point value
|
// Floating point value
|
||||||
// NOTE: This is endian dependent and IEEE dependent (Not checked)
|
// NOTE: This is endian dependent and IEEE dependent (Not checked, working win-i386)
|
||||||
PDWORD(@Number)^:=ARK and $FFFFFFFC;
|
PDWORD(@Number)^:= $00000000;
|
||||||
(PDWORD(@Number)+1)^:= $00000000;
|
(PDWORD(@Number)+1)^:=ARK and $FFFFFFFC;
|
||||||
end;
|
end;
|
||||||
if ARK and 1 = 1 then begin
|
if ARK and 1 = 1 then begin
|
||||||
// Encoded value is multiplied by 100
|
// Encoded value is multiplied by 100
|
||||||
|
Reference in New Issue
Block a user