| 24 |
|
implementation |
| 25 |
|
{$R *.dfm} |
| 26 |
|
uses ABSMain, ABSDecUtil, Main, |
| 27 |
< |
ConnectionManager, TypeDefs, DataAccess, OniImgClass, Data, RawList; |
| 27 |
> |
ConnectionManager, TypeDefs, DataAccess, OniImgClass, Data, RawList, |
| 28 |
> |
Access_OniArchive; |
| 29 |
|
|
| 30 |
|
var |
| 31 |
|
Converting: Boolean = False; |
| 238 |
|
for i := 0 to High(DatHeader.OSIdent) do |
| 239 |
|
case Connection.DataOS of |
| 240 |
|
DOS_WIN: DatHeader.OSIdent[i] := HeaderOSIdentWin[i]; |
| 241 |
< |
DOS_MAC: DatHeader.OSIdent[i] := HeaderOSIdentMac[i]; |
| 241 |
> |
DOS_MAC, DOS_WINDEMO: DatHeader.OSIdent[i] := HeaderOSIdentMac[i]; |
| 242 |
|
DOS_MACBETA: DatHeader.OSIdent[i] := HeaderOSIdentMacBeta[i]; |
| 243 |
|
end; |
| 244 |
|
for i := 0 to High(DatHeader.GlobalIdent) do |
| 279 |
|
begin |
| 280 |
|
case Connection.DataOS of |
| 281 |
|
DOS_WIN: ExtensionsHeader[i].Ident := FileTypes[j].IdentWin; |
| 282 |
< |
DOS_WINDEMO: ExtensionsHeader[i].Ident := FileTypes[j].IdentMac; |
| 282 |
> |
DOS_WINDEMO: |
| 283 |
> |
if FileTypes[j].Extension = 'SNDD' then |
| 284 |
> |
ExtensionsHeader[i].Ident := FileTypes[j].IdentWin |
| 285 |
> |
else |
| 286 |
> |
ExtensionsHeader[i].Ident := FileTypes[j].IdentMac; |
| 287 |
|
DOS_MAC: ExtensionsHeader[i].Ident := FileTypes[j].IdentMac; |
| 288 |
|
DOS_MACBETA: ExtensionsHeader[i].Ident := FileTypes[j].IdentMac; |
| 289 |
|
end; |
| 495 |
|
begin |
| 496 |
|
DeleteFile(target); |
| 497 |
|
end; |
| 498 |
< |
end; |
| 498 |
> |
end; |
| 499 |
|
|
| 500 |
|
|
| 501 |
|
|
| 593 |
|
Query.SQL.Text := 'CREATE INDEX idtargetid ON linkmap (target_id);'; |
| 594 |
|
Query.ExecSQL; |
| 595 |
|
Query.SQL.Text := |
| 596 |
< |
'CREATE TABLE rawmap ( id AUTOINC PRIMARY KEY, src_id INTEGER, ' + |
| 597 |
< |
'src_link_offset INTEGER, sep BOOLEAN, size INTEGER, ' + |
| 596 |
> |
'CREATE TABLE rawmap ( id AUTOINC PRIMARY KEY, name STRING(32), src_id INTEGER, ' + |
| 597 |
> |
'src_link_offset INTEGER, sep BOOLEAN, type STRING(8), size INTEGER, ' + |
| 598 |
|
'data BLOB BlobCompressionMode 9 BlobBlockSize 1024 BlobCompressionAlgorithm ZLib);'; |
| 599 |
|
// Query.SQL.Text:='CREATE TABLE rawmap ( id AUTOINC PRIMARY KEY, src_id INTEGER, src_link_offset INTEGER, size INTEGER, data BLOB BlobCompressionAlgorithm None );'; |
| 600 |
|
Query.ExecSQL; |
| 601 |
|
Query.SQL.Text := 'CREATE INDEX idsrcid ON rawmap (src_id);'; |
| 602 |
|
Query.ExecSQL; |
| 603 |
+ |
Query.SQL.Text := 'CREATE INDEX idtype ON rawmap (type);'; |
| 604 |
+ |
Query.ExecSQL; |
| 605 |
|
Query.SQL.Text := |
| 606 |
|
'CREATE TABLE datfiles ( id INTEGER PRIMARY KEY, extension CHAR(4), ' + |
| 607 |
|
'name STRING(128), contenttype INTEGER, size INTEGER, ' + |
| 666 |
|
Connection.LoadRawFile(FileID, RawLinks[i].SrcOffset, tempdata); |
| 667 |
|
mimecoder := TStringFormat_MIME64.Create; |
| 668 |
|
Query.SQL.Text := |
| 669 |
< |
'INSERT INTO rawmap (src_id,src_link_offset,sep,size,data) VALUES (' + |
| 669 |
> |
'INSERT INTO rawmap (name,src_id,src_link_offset,sep,type,size,data) VALUES (' + |
| 670 |
> |
'"' + RawLinks[i].Name + '", ' + |
| 671 |
|
IntToStr(FileID) + ', ' + IntToStr(RawLinks[i].SrcOffset) + ',' + |
| 672 |
|
BoolToStr(RawLinks[i].LocSep) + ', ' + |
| 673 |
+ |
'"' + RawLinks[i].RawType + '", ' + |
| 674 |
|
IntToStr(RawLinks[i].RawSize) + ', ' + |
| 675 |
|
'MimeToBin("' + MimeCoder.StrTo(@tempdata[0], RawLinks[i].RawSize) + '") );'; |
| 676 |
|
Query.ExecSQL; |
| 679 |
|
else |
| 680 |
|
begin |
| 681 |
|
Query.SQL.Text := |
| 682 |
< |
'INSERT INTO rawmap (src_id,src_link_offset,sep,size) VALUES (' + |
| 682 |
> |
'INSERT INTO rawmap (name,src_id,src_link_offset,sep,type,size) VALUES (' + |
| 683 |
> |
'"' + RawLinks[i].Name + '", ' + |
| 684 |
|
IntToStr(FileID) + ', ' + IntToStr(RawLinks[i].SrcOffset) + ', ' + |
| 685 |
< |
BoolToStr(RawLinks[i].LocSep) + ', 0);'; |
| 685 |
> |
BoolToStr(RawLinks[i].LocSep) + ', ' + |
| 686 |
> |
'"' + RawLinks[i].RawType + '", ' + |
| 687 |
> |
'0);'; |
| 688 |
|
Query.ExecSQL; |
| 689 |
|
end; |
| 690 |
|
end; |