--- oup/current/Helper/LevelDB.pas 2007/04/01 15:14:09 145 +++ oup/current/Helper/LevelDB.pas 2007/04/03 02:58:53 166 @@ -24,7 +24,8 @@ var implementation {$R *.dfm} uses ABSMain, ABSDecUtil, Main, - ConnectionManager, TypeDefs, DataAccess, OniImgClass, Data, RawList; + ConnectionManager, TypeDefs, DataAccess, OniImgClass, Data, RawList, + Access_OniArchive; var Converting: Boolean = False; @@ -202,8 +203,13 @@ begin Stream_Names := TMemoryStream.Create; Stream_Dat := TFileStream.Create(Target, fmCreate); Stream_Raw := TFileStream.Create(AnsiReplaceStr(Target, '.dat', '.raw'), fmCreate); + Stream_Raw.Write(EmptyBytes[0], 32); if Connection.DataOS in [DOS_WINDEMO, DOS_MAC, DOS_MACBETA] then + begin Stream_Sep := TFileStream.Create(AnsiReplaceStr(Target, '.dat', '.sep'), fmCreate); + Stream_Sep.Write(EmptyBytes[0], 32); + end; + DoStep('Creating header'); progress.Position := 0; @@ -355,7 +361,13 @@ begin DatFileStream.Seek(0, soFromBeginning); Stream_Body.CopyFrom(DatFileStream, DatFileStream.Size); if (Stream_Body.Size mod 32) > 0 then + begin + ShowMessage( + IntToStr(FileID) + '-' + FileInfo.Name + '.' + FileInfo.Extension + #13#10 + + IntToStr(FileInfo.Size) + ' - 0x' + IntToHex(FileInfo.Size, 6) + ' - real: ' + IntToStr(DatFileStream.Size) + ' - 0x' + IntToHex(DatFileStream.Size, 6) + #13#10 + + IntToStr(Stream_Body.Size) + ' - 0x' + IntToHex(Stream_Body.Size, 6) ); Stream_Body.Write(EmptyBytes[0], 32 - (Stream_Body.Size mod 32)); + end; end else FilesHeader[FileID].DataAddr := 0; @@ -620,6 +632,8 @@ begin DoStep('Writing .dat-fileslist'); Application.ProcessMessages; + TAccess_OniArchive(Connection).UnloadWhenUnused := False; + FileTime := Time; Database.StartTransaction; for FileID := 0 to Connection.GetFileCount - 1 do @@ -664,11 +678,6 @@ begin BoolToStr(RawLinks[i].LocSep) + ', 0);'; Query.ExecSQL; end; - if ((i mod 100) = 0) and (FileID > 0) then - begin - Database.Commit(False); - Database.StartTransaction; - end; end; end;