| 1 | < | unit Helper_LevelDB; | 
 
 
 
 
 
 
 
 
 | 1 | > | unit LevelDB; | 
 
 
 
 
 
 
 
 
 
 
 | 2 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 3 |  | interface | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 4 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 15 |  | lbl_estimation: TLabel; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 16 |  | procedure btn_abortokClick(Sender: TObject); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 17 |  | private | 
 
 
 
 
 
 
 
 
 
 
 | 18 | < | procedure HandleFile(ext: String; fileid: Integer; dir_dat2db: Boolean); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 19 | < | procedure stop_convert; | 
 
 
 
 
 
 
 
 
 | 18 | > | procedure HandleFile(Ext: String; FileID: Integer); | 
 
 
 
 
 | 19 | > | procedure StopConvert; | 
 
 
 
 
 
 
 
 
 
 
 | 20 |  | public | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 21 |  | procedure CreateDatabase(Source, Target: String); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 22 |  | procedure CreateLevel(Source, Target: String); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 30 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 31 |  | {$R *.dfm} | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 32 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 33 | < | uses ABSMain, ABSDecUtil, Main, Functions, Data, OniImgClass, DataStructures, ConnectionManager; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 33 | > | uses ABSMain, ABSDecUtil, Main, | 
 
 
 
 
 | 34 | > | ConnectionManager, TypeDefs, DataAccess, OniImgClass; | 
 
 
 
 
 
 
 
 
 
 
 | 35 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 36 |  | type | 
 
 
 
 
 
 
 
 
 
 
 | 37 | < | THandler = procedure(fileid: LongWord; dir_dat2db: Boolean); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 38 | < |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 38 | < | TConvertHandlers = record | 
 
 
 
 
 
 
 
 
 | 37 | > | THandler = procedure(FileID: Integer); | 
 
 
 
 
 | 38 | > | TConvertHandler = record | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 39 |  | Ext:     String[4]; | 
 
 
 
 
 
 
 
 
 | 40 | – | needed:  Boolean; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 40 |  | Handler: THandler; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 41 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 42 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 43 |  | var | 
 
 
 
 
 
 
 
 
 
 
 | 44 | < | ConvertHandlers: array of TConvertHandlers; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 45 | < | loaded_filename: String; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 46 | < | converting: Boolean = False; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 47 | < | abort:     Boolean = False; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 49 | < | DataBase:  TABSDatabase; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 50 | < | Query:     TABSQuery; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 51 | < | MimeCoder: TStringFormat_MIME64; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 52 | < |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 53 | < | var | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 54 | < | DatHeader:   THeader; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 55 | < | FilesHeader: TFilesMap; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 56 | < | NamedFilesHeader: TNamedFilesMap; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 57 | < | ExtensionsHeader: TExtensionsMap; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 58 | < | Stream_Body, Stream_Names: TMemoryStream; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 59 | < | Stream_Dat, Stream_Raw, Stream_Sep: TFileStream; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 60 | < | OniDataConnection: TOniData; | 
 
 
 
 
 
 
 
 
 | 44 | > | ConvertHandlers: array of TConvertHandler; | 
 
 
 
 
 | 45 | > | //  loaded_filename: String; | 
 
 
 
 
 | 46 | > | Converting:  Boolean = False; | 
 
 
 
 
 | 47 | > | Abort:       Boolean = False; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 48 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 49 |  |  | 
 
 
 
 
 
 
 
 | 50 | + | function GetOpenMsg(msg: TStatusMessages): String; | 
 
 
 
 
 
 
 
 | 51 | + | begin | 
 
 
 
 
 
 
 
 | 52 | + | case msg of | 
 
 
 
 
 
 
 
 | 53 | + | SM_AlreadyOpened:    Result := 'File already opened.'; | 
 
 
 
 
 
 
 
 | 54 | + | SM_FileNotFound:     Result := 'File not found.'; | 
 
 
 
 
 
 
 
 | 55 | + | SM_UnknownExtension: Result := 'Unknown extension.'; | 
 
 
 
 
 
 
 
 | 56 | + | SM_IncompatibleFile: Result := 'Incompatible file format.'; | 
 
 
 
 
 
 
 
 | 57 | + | SM_UnknownError:     Result := 'Unknown error.'; | 
 
 
 
 
 
 
 
 | 58 | + | end; | 
 
 
 
 
 
 
 
 | 59 | + | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 60 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 61 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 62 | < | procedure TForm_LevelDB.CreateLevel(Source, target: String); | 
 
 
 
 
 
 
 
 
 | 62 | > | procedure TForm_LevelDB.CreateLevel(Source, Target: String); | 
 
 
 
 
 
 
 
 
 
 
 | 63 |  | var | 
 
 
 
 
 
 
 
 
 
 
 | 64 | < | files: LongWord; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 65 | < |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 66 | < | i, j:     LongWord; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 67 | < | temps, temps2: String; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 71 | < | Data, rawdata: Tdata; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 72 | < | absolutebegintime, begintime: Double; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 73 | < | step:     Byte; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 74 | < | rawlist:  TRawList; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 75 | < | extlist:  TExtensionsMap; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 76 | < | fileinfo: TFileInfo; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 77 | < | datlinks: TDatLinks; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 78 | < | OniImage: TOniImage; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 79 | < | levelid:  LongWord; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 80 | < | timeformat: TFormatSettings; | 
 
 
 
 
 
 
 
 
 | 64 | > | DatHeader:        THeader; | 
 
 
 
 
 | 65 | > | FilesHeader:      TFilesMap; | 
 
 
 
 
 | 66 | > | NamedFilesHeader: TNamedFilesMap; | 
 
 
 
 
 | 67 | > | ExtensionsHeader: TExtensionsMap; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 68 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 69 | < | conIndex: Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 70 | < | connection: TOniData; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 84 | < | const | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 85 | < | steps: Byte = 3; | 
 
 
 
 
 
 
 
 
 | 69 | > | Stream_Body, Stream_Names:          TMemoryStream; | 
 
 
 
 
 | 70 | > | Stream_Dat, Stream_Raw, Stream_Sep: TFileStream; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 71 |  |  | 
 
 
 
 
 
 
 
 | 72 | + | //  FileCount: Integer; | 
 
 
 
 
 
 
 
 | 73 | + | //  temps, temps2: String; | 
 
 
 
 
 
 
 
 | 74 | + | //  Data, rawdata: Tdata; | 
 
 
 
 
 
 
 
 | 75 | + | BeginTime, FileTime: Double; | 
 
 
 
 
 
 
 
 | 76 | + | Step:     Integer; | 
 
 
 
 
 
 
 
 | 77 | + | //  rawlist:  TRawDataList; | 
 
 
 
 
 
 
 
 | 78 | + | //  extlist:  TExtensionsMap; | 
 
 
 
 
 
 
 
 | 79 | + | //  fileinfo: TFileInfo; | 
 
 
 
 
 
 
 
 | 80 | + | //  datlinks: TDatLinks; | 
 
 
 
 
 
 
 
 | 81 | + | OniImage:   TOniImage; | 
 
 
 
 
 
 
 
 | 82 | + | LevelID:    Integer; | 
 
 
 
 
 
 
 
 | 83 | + | TimeFormat: TFormatSettings; | 
 
 
 
 
 
 
 
 | 84 | + |  | 
 
 
 
 
 
 
 
 | 85 | + | ConID:      Integer; | 
 
 
 
 
 
 
 
 | 86 | + | Connection: TDataAccess; | 
 
 
 
 
 
 
 
 | 87 | + | ConRepMsg:  TStatusMessages; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 88 |  |  | 
 
 
 
 
 
 
 
 | 89 | + | Strings:    TStrings; | 
 
 
 
 
 
 
 
 | 90 | + | i, j:       Integer; | 
 
 
 
 
 
 
 
 | 91 | + | const | 
 
 
 
 
 
 
 
 | 92 | + | Steps: Byte = 3; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 93 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 94 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 95 | < | procedure DoStep(stepname: String); | 
 
 
 
 
 
 
 
 
 | 95 | > | procedure DoStep(StepName: String); | 
 
 
 
 
 
 
 
 
 
 
 | 96 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 | 97 | < | Inc(step); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 98 | < | if stepname <> 'FIN' then | 
 
 
 
 
 
 
 
 
 | 97 | > | Inc(Step); | 
 
 
 
 
 | 98 | > | if StepName <> 'FIN' then | 
 
 
 
 
 
 
 
 
 
 
 | 99 |  | group_progress.Caption := | 
 
 
 
 
 
 
 
 
 
 
 | 100 | < | 'Creating Dat (Step ' + IntToStr(step) + '/' + IntToStr(steps) + ': ' + stepname + ')' | 
 
 
 
 
 
 
 
 
 | 100 | > | 'Creating Dat (Step ' + IntToStr(Step) + '/' + IntToStr(Steps) + ': ' + StepName + ')' | 
 
 
 
 
 
 
 
 
 
 
 | 101 |  | else | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 102 |  | group_progress.Caption := 'Creating Dat (FINISHED)'; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 103 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 108 |  | // FILE EXISTS CHECK FÜR DAT/RAW/SEP!!! | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 109 |  | // | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 110 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 111 | < | timeformat.ShortTimeFormat := 'hh:nn:ss'; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 112 | < | timeformat.LongTimeFormat := 'hh:nn:ss'; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 113 | < | timeformat.TimeSeparator := ':'; | 
 
 
 
 
 
 
 
 
 | 111 | > | TimeFormat.ShortTimeFormat := 'hh:nn:ss'; | 
 
 
 
 
 | 112 | > | TimeFormat.LongTimeFormat  := 'hh:nn:ss'; | 
 
 
 
 
 | 113 | > | TimeFormat.TimeSeparator   := ':'; | 
 
 
 
 
 
 
 
 
 
 
 | 114 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 115 | < | connection := ConnectionExists(target); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 116 | < | if connection <> nil then | 
 
 
 
 
 
 
 
 
 | 115 | > | ConID := ConManager.OpenConnection(Source, ConRepMsg); | 
 
 
 
 
 | 116 | > | if not (ConRepMsg in [SM_OK, SM_AlreadyOpened]) then | 
 
 
 
 
 
 
 
 
 
 
 | 117 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 | 118 | < | ShowMessage('Destination-file is opened, close it in order to proceed conversion?'); | 
 
 
 
 
 
 
 
 
 | 118 | > | ShowMessage('Source-file couldn''t be opened! Aborting' + CrLf + GetOpenMsg(ConRepMsg)); | 
 
 
 
 
 
 
 
 
 
 
 | 119 |  | Exit; | 
 
 
 
 
 
 
 
 
 
 
 | 120 | < | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 120 | > | end else | 
 
 
 
 
 | 121 | > | Connection := ConManager.Connection[ConID]; | 
 
 
 
 
 
 
 
 
 
 
 | 122 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 123 | < | connection := ConnectionExists(source); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 124 | < | if connection <> nil then | 
 
 
 
 
 
 
 
 
 | 123 | > | ConID := ConManager.FileOpened(Target); | 
 
 
 
 
 | 124 | > | if ConID >= 0 then | 
 
 
 
 
 
 
 
 
 
 
 | 125 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 | 126 | < | ShowMessage('Source-file is opened, close it in order to proceed conversion?'); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 127 | < | Exit; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 126 | > | if MessageBox(Self.Handle, PChar('Destination-file is opened, close it in ' + | 
 
 
 
 
 | 127 | > | 'order to proceed conversion?'), PChar('Destination-file opened'), | 
 
 
 
 
 | 128 | > | MB_YESNO + MB_ICONQUESTION) = ID_YES then | 
 
 
 
 
 | 129 | > | begin | 
 
 
 
 
 | 130 | > | if Form_Main.CheckConnectionCloseable(ConID) then | 
 
 
 
 
 | 131 | > | if not ConManager.CloseConnection(ConID, ConRepMsg) then | 
 
 
 
 
 | 132 | > | begin | 
 
 
 
 
 | 133 | > | ShowMessage('Couldn''t close destination-file. Aborting'); | 
 
 
 
 
 | 134 | > | Exit; | 
 
 
 
 
 | 135 | > | end; | 
 
 
 
 
 | 136 | > | end else begin | 
 
 
 
 
 | 137 | > | ShowMessage('Aborting'); | 
 
 
 
 
 | 138 | > | Exit; | 
 
 
 
 
 | 139 | > | end; | 
 
 
 
 
 
 
 
 
 
 
 | 140 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 141 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 142 | < |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 125 | < | if CreateDataConnection(Source, ODB_ADB) = nil then | 
 
 
 
 
 
 
 
 
 | 142 | > | if FileExists(Target) then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 143 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 | 144 | < | ShowMessage('Could not connect to .oldb-file'); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 145 | < | Exit; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 144 | > | if MessageBox(Self.Handle, PChar('Destination-file exists. ' + | 
 
 
 
 
 | 145 | > | 'Overwrite it?'), PChar('Destination-file exists'), | 
 
 
 
 
 | 146 | > | MB_YESNO + MB_ICONWARNING) = ID_YES then | 
 
 
 
 
 | 147 | > | begin | 
 
 
 
 
 | 148 | > | if not DeleteFile(Target) then | 
 
 
 
 
 | 149 | > | begin | 
 
 
 
 
 | 150 | > | ShowMessage('Couldn''t delete file. Aborting'); | 
 
 
 
 
 | 151 | > | Exit; | 
 
 
 
 
 | 152 | > | end else if not DeleteFile(AnsiReplaceStr(Target, '.dat', '.raw')) then | 
 
 
 
 
 | 153 | > | begin | 
 
 
 
 
 | 154 | > | ShowMessage('Couldn''t delete file. Aborting'); | 
 
 
 
 
 | 155 | > | Exit; | 
 
 
 
 
 | 156 | > | end else if not DeleteFile(AnsiReplaceStr(Target, '.dat', '.sep')) then | 
 
 
 
 
 | 157 | > | begin | 
 
 
 
 
 | 158 | > | ShowMessage('Couldn''t delete file. Aborting'); | 
 
 
 
 
 | 159 | > | Exit; | 
 
 
 
 
 | 160 | > | end; | 
 
 
 
 
 | 161 | > | end else begin | 
 
 
 
 
 | 162 | > | ShowMessage('Aborting'); | 
 
 
 
 
 | 163 | > | Exit; | 
 
 
 
 
 | 164 | > | end; | 
 
 
 
 
 
 
 
 
 
 
 | 165 |  | end; | 
 
 
 
 
 
 
 
 
 | 130 | – | levelid  := OniDataConnection.LevelInfo.LevelNumber; | 
 
 
 
 
 
 
 
 
 | 131 | – | levelid  := (levelid * 2) * 256 * 256 * 256 + $01; | 
 
 
 
 
 
 
 
 
 | 132 | – | OniImage := TOniImage.Create; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 166 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 167 | < | absolutebegintime := Time; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 167 | > | LevelID  := Connection.LevelNumber; | 
 
 
 
 
 | 168 | > | LevelID  := (LevelID * 2) * 256 * 256 * 256 + $01; | 
 
 
 
 
 | 169 | > | OniImage := TOniImage.Create; | 
 
 
 
 
 
 
 
 
 
 
 | 170 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 171 |  | Self.Visible := True; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 172 |  | Form_Main.Visible := False; | 
 
 
 
 
 
 
 
 
 
 
 | 173 | < | step  := 0; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 174 | < | converting := True; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 175 | < | abort := False; | 
 
 
 
 
 
 
 
 
 | 173 | > | Step := 0; | 
 
 
 
 
 | 174 | > | Converting := True; | 
 
 
 
 
 | 175 | > | Abort := False; | 
 
 
 
 
 
 
 
 
 
 
 | 176 |  | btn_abortok.Caption := '&Abort...'; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 177 |  | btn_abortok.Default := False; | 
 
 
 
 
 
 
 
 
 
 
 | 178 | < | absolutebegintime := Time; | 
 
 
 
 
 
 
 
 
 | 178 | > | BeginTime := Time; | 
 
 
 
 
 
 
 
 
 
 
 | 179 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 180 |  | Stream_Body  := TMemoryStream.Create; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 181 |  | Stream_Names := TMemoryStream.Create; | 
 
 
 
 
 
 
 
 
 
 
 | 182 | < | Stream_Dat   := TFileStream.Create(target, fmCreate); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 183 | < | Stream_Raw   := TFileStream.Create(AnsiReplaceStr(target, '.dat', '.raw'), fmCreate); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 184 | < | if OniDataConnection.OSisMac then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 185 | < | Stream_Sep := TFileStream.Create(AnsiReplaceStr(target, '.dat', '.sep'), fmCreate); | 
 
 
 
 
 
 
 
 
 | 182 | > | Stream_Dat   := TFileStream.Create(Target, fmCreate); | 
 
 
 
 
 | 183 | > | Stream_Raw   := TFileStream.Create(AnsiReplaceStr(Target, '.dat', '.raw'), fmCreate); | 
 
 
 
 
 | 184 | > | if Connection.DataOS in [DOS_WINDEMO, DOS_MAC, DOS_MACBETA] then | 
 
 
 
 
 | 185 | > | Stream_Sep := TFileStream.Create(AnsiReplaceStr(Target, '.dat', '.sep'), fmCreate); | 
 
 
 
 
 
 
 
 
 
 
 | 186 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 187 |  | DoStep('Creating header'); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 188 |  | progress.Position      := 0; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 190 |  | lbl_estimation.Caption := 'Estimated finishing time: unknown'; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 191 |  | Application.ProcessMessages; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 192 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 193 | < | NamedFilesHeader := TOniDataADB(OniDataConnection).GetNamedFilesMap; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 193 | > | SetLength(NamedFilesHeader, 0); | 
 
 
 
 
 | 194 | > | Strings := TStringList.Create; | 
 
 
 
 
 | 195 | > | Strings := Connection.GetFilesList('', '', False, ST_ExtNameAsc); | 
 
 
 
 
 | 196 | > | for i := 0 to Strings.Count - 1 do | 
 
 
 
 
 | 197 | > | begin | 
 
 
 
 
 | 198 | > | if MidStr(Strings.Strings[i], | 
 
 
 
 
 | 199 | > | Pos('-', Strings.Strings[i]) + 1, | 
 
 
 
 
 | 200 | > | Length(Strings.Strings[i]) - | 
 
 
 
 
 | 201 | > | Pos('.', ReverseString(Strings.Strings[i])) - | 
 
 
 
 
 | 202 | > | Pos('-', Strings.Strings[i]) | 
 
 
 
 
 | 203 | > | ) <> '' then | 
 
 
 
 
 | 204 | > | begin | 
 
 
 
 
 | 205 | > | SetLength(NamedFilesHeader, Length(NamedFilesHeader) + 1); | 
 
 
 
 
 | 206 | > | NamedFilesHeader[High(NamedFilesHeader)].FileNumber := StrToInt(MidStr(Strings.Strings[i], 1, 5)); | 
 
 
 
 
 | 207 | > | NamedFilesHeader[High(NamedFilesHeader)].blubb := 0; | 
 
 
 
 
 | 208 | > | end; | 
 
 
 
 
 | 209 | > | end; | 
 
 
 
 
 | 210 | > |  | 
 
 
 
 
 | 211 | > |  | 
 
 
 
 
 
 
 
 
 
 
 | 212 |  | extlist := OniDataConnection.GetExtendedExtensionsList; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 213 |  | for i := 0 to High(DatHeader.Ident) do | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 214 |  | DatHeader.Ident[i] := OniDataConnection.LevelInfo.Ident[i]; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 224 |  | SetLength(FilesHeader, DatHeader.Files); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 225 |  | SetLength(ExtensionsHeader, DatHeader.Extensions); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 226 |  |  | 
 
 
 
 
 
 
 
 | 227 | + |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 228 |  | DoStep('Writing extensions-header'); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 229 |  | progress.Max := Length(OniDataConnection.GetExtensionsList); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 230 |  | Application.ProcessMessages; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 244 |  | Application.ProcessMessages; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 245 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 246 |  |  | 
 
 
 
 
 
 
 
 | 247 | + |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 248 |  | DoStep('Storing files-data'); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 249 |  | progress.Position := 0; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 250 |  | progress.Max      := DatHeader.Files; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 408 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 409 |  | procedure TForm_LevelDB.CreateDatabase(Source, target: String); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 410 |  | var | 
 
 
 
 
 
 
 
 | 411 | + | DataBase:    TABSDatabase; | 
 
 
 
 
 
 
 
 | 412 | + | Query:       TABSQuery; | 
 
 
 
 
 
 
 
 | 413 | + | MimeCoder:   TStringFormat_MIME64; | 
 
 
 
 
 
 
 
 | 414 | + |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 415 |  | i, j:     LongWord; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 416 |  | temps, temps2: String; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 417 |  | Data:     Tdata; |