| 11 |  | Fsep_file:           TFileStream; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 12 |  | Fdat_files:          TFiles; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 13 |  | Fdat_extensionsmap:  TExtensionsMap; | 
 
 
 
 
 
 
 
 
 | 14 | – | FUnloadWhenUnused:   Boolean; | 
 
 
 
 
 
 
 
 
 | 15 | – | FDatOpened:          Boolean; | 
 
 
 
 
 
 
 
 
 | 16 | – | FRawOpened:          Boolean; | 
 
 
 
 
 
 
 
 
 | 17 | – | FSepOpened:          Boolean; | 
 
 
 
 
 
 
 
 
 | 18 | – | procedure SetUnloadWhenUnused(doit: Boolean); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 14 |  | protected | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 15 |  | public | 
 
 
 
 
 
 
 
 
 | 21 | – | property UnloadWhenUnused: Boolean Read FUnloadWhenUnused Write SetUnloadWhenUnused; | 
 
 
 
 
 
 
 
 
 | 22 | – |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 16 |  | constructor Create(DatFilename: String; ConnectionID: Integer; var Msg: TStatusMessages); override; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 17 |  | procedure Close; override; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 18 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 64 |  | Fdat_filesmap: TFilesMap; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 65 |  | Fdat_namedfilesmap: TNamedFilesMap; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 66 |  | begin | 
 
 
 
 
 
 
 
 
 | 74 | – | FUnloadWhenUnused := True; | 
 
 
 
 
 
 
 
 
 | 75 | – | FDatOpened := False; | 
 
 
 
 
 
 
 
 
 | 76 | – | FRawOpened := False; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 67 |  | Msg := SM_UnknownError; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 68 |  | if not FileExists(DatFilename) then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 69 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 145 |  | Fdat_file.Read(FLevelNumber, 1); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 146 |  | FLevelNumber := FLevelNumber div 2; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 147 |  |  | 
 
 
 
 
 
 
 
 
 
 
 | 148 | < | Fdat_file.Free; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 148 | > | Fraw_file := TFileStream.Create(AnsiReplaceStr(FFileName, '.dat', '.raw'), | 
 
 
 
 
 | 149 | > | fmOpenReadWrite); | 
 
 
 
 
 | 150 | > | if not (FDataOS = DOS_WIN) then | 
 
 
 
 
 | 151 | > | Fsep_file := TFileStream.Create(AnsiReplaceStr(FFileName, '.dat', '.sep'), | 
 
 
 
 
 | 152 | > | fmOpenReadWrite); | 
 
 
 
 
 
 
 
 
 
 
 | 153 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 154 |  | Msg := SM_OK; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 155 |  | FBackend := DB_ONI; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 162 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 163 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 164 |  |  | 
 
 
 
 
 
 
 
 
 | 171 | – | procedure TAccess_OniArchive.SetUnloadWhenUnused(doit: Boolean); | 
 
 
 
 
 
 
 
 
 | 172 | – | begin | 
 
 
 
 
 
 
 
 
 | 173 | – | FUnloadWhenUnused := doit; | 
 
 
 
 
 
 
 
 
 | 174 | – | if FUnloadWhenUnused then | 
 
 
 
 
 
 
 
 
 | 175 | – | begin | 
 
 
 
 
 
 
 
 
 | 176 | – | if FDatOpened then | 
 
 
 
 
 
 
 
 
 | 177 | – | begin | 
 
 
 
 
 
 
 
 
 | 178 | – | FDatOpened := False; | 
 
 
 
 
 
 
 
 
 | 179 | – | Fdat_file.Free; | 
 
 
 
 
 
 
 
 
 | 180 | – | end; | 
 
 
 
 
 
 
 
 
 | 181 | – | if FRawOpened then | 
 
 
 
 
 
 
 
 
 | 182 | – | begin | 
 
 
 
 
 
 
 
 
 | 183 | – | FRawOpened := False; | 
 
 
 
 
 
 
 
 
 | 184 | – | Fraw_file.Free; | 
 
 
 
 
 
 
 
 
 | 185 | – | end; | 
 
 
 
 
 
 
 
 
 | 186 | – | if FSepOpened then | 
 
 
 
 
 
 
 
 
 | 187 | – | begin | 
 
 
 
 
 
 
 
 
 | 188 | – | FSepOpened := False; | 
 
 
 
 
 
 
 
 
 | 189 | – | Fsep_file.Free; | 
 
 
 
 
 
 
 
 
 | 190 | – | end; | 
 
 
 
 
 
 
 
 
 | 191 | – | end | 
 
 
 
 
 
 
 
 
 | 192 | – | else | 
 
 
 
 
 
 
 
 
 | 193 | – | begin | 
 
 
 
 
 
 
 
 
 | 194 | – | if not FDatOpened then | 
 
 
 
 
 
 
 
 
 | 195 | – | begin | 
 
 
 
 
 
 
 
 
 | 196 | – | Fdat_file := TFileStream.Create(FFileName, fmOpenReadWrite); | 
 
 
 
 
 
 
 
 
 | 197 | – | FDatOpened := True; | 
 
 
 
 
 
 
 
 
 | 198 | – | end; | 
 
 
 
 
 
 
 
 
 | 199 | – | if not FRawOpened then | 
 
 
 
 
 
 
 
 
 | 200 | – | begin | 
 
 
 
 
 
 
 
 
 | 201 | – | Fraw_file := TFileStream.Create(AnsiReplaceStr(FFileName, '.dat', '.raw'), | 
 
 
 
 
 
 
 
 
 | 202 | – | fmOpenReadWrite); | 
 
 
 
 
 
 
 
 
 | 203 | – | FRawOpened := True; | 
 
 
 
 
 
 
 
 
 | 204 | – | end; | 
 
 
 
 
 
 
 
 
 | 205 | – | if (not FSepOpened) and (FDataOS <> DOS_WIN) then | 
 
 
 
 
 
 
 
 
 | 206 | – | begin | 
 
 
 
 
 
 
 
 
 | 207 | – | Fsep_file := TFileStream.Create(AnsiReplaceStr(FFileName, '.dat', '.sep'), | 
 
 
 
 
 
 
 
 
 | 208 | – | fmOpenReadWrite); | 
 
 
 
 
 
 
 
 
 | 209 | – | FSepOpened := True; | 
 
 
 
 
 
 
 
 
 | 210 | – | end; | 
 
 
 
 
 
 
 
 
 | 211 | – | end; | 
 
 
 
 
 
 
 
 
 | 212 | – | end; | 
 
 
 
 
 
 
 
 
 | 213 | – |  | 
 
 
 
 
 
 
 
 
 | 214 | – |  | 
 
 
 
 
 
 
 
 
 | 215 | – |  | 
 
 
 
 
 
 
 
 
 | 216 | – |  | 
 
 
 
 
 
 
 
 
 | 217 | – |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 165 |  | procedure TAccess_OniArchive.Close; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 166 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 | 167 | < | if FDatOpened then | 
 
 
 
 
 
 
 
 
 | 167 | > | if Assigned(Fdat_file) then | 
 
 
 
 
 
 
 
 
 
 
 | 168 |  | Fdat_file.Free; | 
 
 
 
 
 
 
 
 
 
 
 | 169 | < | if FRawOpened then | 
 
 
 
 
 
 
 
 
 | 169 | > | if Assigned(Fraw_file) then | 
 
 
 
 
 
 
 
 
 
 
 | 170 |  | Fraw_file.Free; | 
 
 
 
 
 
 
 
 
 
 
 | 171 | < | if FSepOpened then | 
 
 
 
 
 
 
 
 
 | 171 | > | if Assigned(Fsep_file) then | 
 
 
 
 
 
 
 
 
 
 
 | 172 |  | Fsep_file.Free; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 173 |  | Self.Free; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 174 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 319 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 320 |  | if fileid < GetFileCount then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 321 |  | begin | 
 
 
 
 
 
 
 
 | 322 | + | if not Assigned(Target) then | 
 
 
 
 
 
 
 
 | 323 | + | Target := TMemoryStream.Create; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 324 |  | if GetFileInfo(FileID).Size > 0 then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 325 |  | begin | 
 
 
 
 
 
 
 
 
 | 377 | – | if not Assigned(Target) then | 
 
 
 
 
 
 
 
 
 | 378 | – | Target := TMemoryStream.Create; | 
 
 
 
 
 
 
 
 
 | 379 | – | if not FDatOpened then | 
 
 
 
 
 
 
 
 
 | 380 | – | Fdat_file := TFileStream.Create(FFileName, fmOpenReadWrite); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 326 |  | Fdat_file.Seek(Fdat_files[fileid].DatAddr, soFromBeginning); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 327 |  | streampos := Target.Position; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 328 |  | Target.CopyFrom(Fdat_file, Fdat_files[fileid].Size); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 329 |  | Target.Seek(streampos, soFromBeginning); | 
 
 
 
 
 
 
 
 
 | 385 | – | if UnloadWhenUnused then | 
 
 
 
 
 
 
 
 
 | 386 | – | begin | 
 
 
 
 
 
 
 
 
 | 387 | – | Fdat_file.Free; | 
 
 
 
 
 
 
 
 
 | 388 | – | FDatOpened := False; | 
 
 
 
 
 
 
 
 
 | 389 | – | end | 
 
 
 
 
 
 
 
 
 | 390 | – | else | 
 
 
 
 
 
 
 
 
 | 391 | – | FDatOpened := True; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 330 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 331 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 332 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 335 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 336 |  | if fileid < GetFileCount then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 337 |  | begin | 
 
 
 
 
 
 
 
 
 | 400 | – | if not FDatOpened then | 
 
 
 
 
 
 
 
 
 | 401 | – | Fdat_file := TFileStream.Create(FFileName, fmOpenReadWrite); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 338 |  | Fdat_file.Seek(Fdat_files[fileid].DatAddr, soFromBeginning); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 339 |  | Fdat_file.CopyFrom(Src, Fdat_files[fileid].Size); | 
 
 
 
 
 
 
 
 
 | 404 | – | if UnloadWhenUnused then | 
 
 
 
 
 
 
 
 
 | 405 | – | begin | 
 
 
 
 
 
 
 
 
 | 406 | – | Fdat_file.Free; | 
 
 
 
 
 
 
 
 
 | 407 | – | FDatOpened := False; | 
 
 
 
 
 
 
 
 
 | 408 | – | end | 
 
 
 
 
 
 
 
 
 | 409 | – | else | 
 
 
 
 
 
 
 
 
 | 410 | – | FDatOpened := True; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 340 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 341 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 342 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 348 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 349 |  | if not Assigned(Target) then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 350 |  | Target := TMemoryStream.Create; | 
 
 
 
 
 
 
 
 
 | 422 | – | if not FDatOpened then | 
 
 
 
 
 
 
 
 
 | 423 | – | Fdat_file := TFileStream.Create(FFileName, fmOpenReadWrite); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 351 |  | Fdat_file.Seek(Fdat_files[fileid].DatAddr + offset, soFromBeginning); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 352 |  | streampos := Target.Position; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 353 |  | Target.CopyFrom(Fdat_file, size); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 354 |  | Target.Seek(streampos, soFromBeginning); | 
 
 
 
 
 
 
 
 
 | 428 | – | if UnloadWhenUnused then | 
 
 
 
 
 
 
 
 
 | 429 | – | begin | 
 
 
 
 
 
 
 
 
 | 430 | – | FDatOpened := False; | 
 
 
 
 
 
 
 
 
 | 431 | – | Fdat_file.Free; | 
 
 
 
 
 
 
 
 
 | 432 | – | end | 
 
 
 
 
 
 
 
 
 | 433 | – | else | 
 
 
 
 
 
 
 
 
 | 434 | – | FDatOpened := True; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 355 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 356 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 357 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 359 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 360 |  | if fileid < GetFileCount then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 361 |  | begin | 
 
 
 
 
 
 
 
 
 | 442 | – | if not FDatOpened then | 
 
 
 
 
 
 
 
 
 | 443 | – | Fdat_file := TFileStream.Create(FFileName, fmOpenReadWrite); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 362 |  | Fdat_file.Seek(Fdat_files[fileid].DatAddr + offset, soFromBeginning); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 363 |  | Fdat_file.CopyFrom(Src, Size); | 
 
 
 
 
 
 
 
 
 | 446 | – | if UnloadWhenUnused then | 
 
 
 
 
 
 
 
 
 | 447 | – | begin | 
 
 
 
 
 
 
 
 
 | 448 | – | Fdat_file.Free; | 
 
 
 
 
 
 
 
 
 | 449 | – | FDatOpened := False; | 
 
 
 
 
 
 
 
 
 | 450 | – | end | 
 
 
 
 
 
 
 
 
 | 451 | – | else | 
 
 
 
 
 
 
 
 
 | 452 | – | FDatOpened := True; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 364 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 365 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 366 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 441 |  | Target := TMemoryStream.Create; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 442 |  | if not LocSep then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 443 |  | begin | 
 
 
 
 
 
 
 
 
 | 533 | – | if not FRawOpened then | 
 
 
 
 
 
 
 
 
 | 534 | – | Fraw_file := TFileStream.Create(AnsiReplaceStr(FFileName, '.dat', '.raw'), | 
 
 
 
 
 
 
 
 
 | 535 | – | fmOpenReadWrite); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 444 |  | if RawAddr <= Fraw_file.Size then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 445 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 446 |  | Fraw_file.Seek(RawAddr, soFromBeginning); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 447 |  | Target.CopyFrom(Fraw_file, size); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 448 |  | Target.Seek(0, soFromBeginning); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 449 |  | end; | 
 
 
 
 
 
 
 
 
 | 542 | – | if UnloadWhenUnused then | 
 
 
 
 
 
 
 
 
 | 543 | – | begin | 
 
 
 
 
 
 
 
 
 | 544 | – | FRawOpened := False; | 
 
 
 
 
 
 
 
 
 | 545 | – | Fraw_file.Free; | 
 
 
 
 
 
 
 
 
 | 546 | – | end | 
 
 
 
 
 
 
 
 
 | 547 | – | else | 
 
 
 
 
 
 
 
 
 | 548 | – | FRawOpened := True; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 450 |  | end | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 451 |  | else | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 452 |  | begin | 
 
 
 
 
 
 
 
 
 | 552 | – | if not FSepOpened then | 
 
 
 
 
 
 
 
 
 | 553 | – | Fsep_file := TFileStream.Create(AnsiReplaceStr(FFileName, '.dat', '.sep'), | 
 
 
 
 
 
 
 
 
 | 554 | – | fmOpenReadWrite); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 453 |  | if RawAddr <= Fsep_file.Size then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 454 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 455 |  | Fsep_file.Seek(RawAddr, soFromBeginning); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 456 |  | Target.CopyFrom(Fsep_file, size); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 457 |  | Target.Seek(0, soFromBeginning); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 458 |  | end; | 
 
 
 
 
 
 
 
 
 | 561 | – | if UnloadWhenUnused then | 
 
 
 
 
 
 
 
 
 | 562 | – | begin | 
 
 
 
 
 
 
 
 
 | 563 | – | FSepOpened := False; | 
 
 
 
 
 
 
 
 
 | 564 | – | Fsep_file.Free; | 
 
 
 
 
 
 
 
 
 | 565 | – | end | 
 
 
 
 
 
 
 
 
 | 566 | – | else | 
 
 
 
 
 
 
 
 
 | 567 | – | FSepOpened := True; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 459 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 460 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 461 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 481 |  | raw_info := Self.GetRawInfo(FileID, DatOffset); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 482 |  | if not raw_info.LocSep then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 483 |  | begin | 
 
 
 
 
 
 
 
 
 | 593 | – | if not FRawOpened then | 
 
 
 
 
 
 
 
 
 | 594 | – | Fraw_file := TFileStream.Create(AnsiReplaceStr(FFileName, '.dat', '.raw'), | 
 
 
 
 
 
 
 
 
 | 595 | – | fmOpenReadWrite); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 484 |  | Fraw_file.Seek(raw_info.RawAddr, soFromBeginning); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 485 |  | streampos := Target.Position; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 486 |  | Target.CopyFrom(Fraw_file, raw_info.RawSize); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 487 |  | Target.Seek(streampos, soFromBeginning); | 
 
 
 
 
 
 
 
 
 | 600 | – | if UnloadWhenUnused then | 
 
 
 
 
 
 
 
 
 | 601 | – | begin | 
 
 
 
 
 
 
 
 
 | 602 | – | FRawOpened := False; | 
 
 
 
 
 
 
 
 
 | 603 | – | Fraw_file.Free; | 
 
 
 
 
 
 
 
 
 | 604 | – | end | 
 
 
 
 
 
 
 
 
 | 605 | – | else | 
 
 
 
 
 
 
 
 
 | 606 | – | FRawOpened := True; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 488 |  | end | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 489 |  | else | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 490 |  | begin | 
 
 
 
 
 
 
 
 
 | 610 | – | if FUnloadWhenUnused or not FSepOpened then | 
 
 
 
 
 
 
 
 
 | 611 | – | Fsep_file := TFileStream.Create(AnsiReplaceStr(FFileName, '.dat', '.sep'), | 
 
 
 
 
 
 
 
 
 | 612 | – | fmOpenReadWrite); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 491 |  | Fsep_file.Seek(raw_info.RawAddr, soFromBeginning); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 492 |  | streampos := Target.Position; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 493 |  | Target.CopyFrom(Fsep_file, raw_info.RawSize); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 494 |  | Target.Seek(streampos, soFromBeginning); | 
 
 
 
 
 
 
 
 
 | 617 | – | if UnloadWhenUnused then | 
 
 
 
 
 
 
 
 
 | 618 | – | begin | 
 
 
 
 
 
 
 
 
 | 619 | – | FSepOpened := False; | 
 
 
 
 
 
 
 
 
 | 620 | – | Fsep_file.Free; | 
 
 
 
 
 
 
 
 
 | 621 | – | end | 
 
 
 
 
 
 
 
 
 | 622 | – | else | 
 
 
 
 
 
 
 
 
 | 623 | – | FSepOpened := True; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 495 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 496 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 497 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 505 |  | raw_info := GetRawInfo(FileID, DatOffset); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 506 |  | if not raw_info.LocSep then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 507 |  | begin | 
 
 
 
 
 
 
 
 
 | 637 | – | if not FRawOpened then | 
 
 
 
 
 
 
 
 
 | 638 | – | Fraw_file := TFileStream.Create(AnsiReplaceStr(FFileName, '.dat', '.raw'), | 
 
 
 
 
 
 
 
 
 | 639 | – | fmOpenReadWrite); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 508 |  | Fraw_file.Seek(raw_info.RawAddr, soFromBeginning); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 509 |  | Fraw_file.CopyFrom(Src, Min(raw_info.RawSize, Src.Size)); | 
 
 
 
 
 
 
 
 
 | 642 | – | if UnloadWhenUnused then | 
 
 
 
 
 
 
 
 
 | 643 | – | begin | 
 
 
 
 
 
 
 
 
 | 644 | – | FRawOpened := False; | 
 
 
 
 
 
 
 
 
 | 645 | – | Fraw_file.Free; | 
 
 
 
 
 
 
 
 
 | 646 | – | end | 
 
 
 
 
 
 
 
 
 | 647 | – | else | 
 
 
 
 
 
 
 
 
 | 648 | – | FRawOpened := True; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 510 |  | end | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 511 |  | else | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 512 |  | begin | 
 
 
 
 
 
 
 
 
 | 652 | – | if not FSepOpened then | 
 
 
 
 
 
 
 
 
 | 653 | – | Fsep_file := TFileStream.Create(AnsiReplaceStr(FFileName, '.dat', '.sep'), | 
 
 
 
 
 
 
 
 
 | 654 | – | fmOpenReadWrite); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 513 |  | Fsep_file.Seek(raw_info.RawAddr, soFromBeginning); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 514 |  | Fsep_file.CopyFrom(Src, raw_info.RawSize); | 
 
 
 
 
 
 
 
 
 | 657 | – | if UnloadWhenUnused then | 
 
 
 
 
 
 
 
 
 | 658 | – | begin | 
 
 
 
 
 
 
 
 
 | 659 | – | FSepOpened := False; | 
 
 
 
 
 
 
 
 
 | 660 | – | Fsep_file.Free; | 
 
 
 
 
 
 
 
 
 | 661 | – | end | 
 
 
 
 
 
 
 
 
 | 662 | – | else | 
 
 
 
 
 
 
 
 
 | 663 | – | FSepOpened := True; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 515 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 516 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 517 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 544 |  | raw_info := GetRawInfo(FileID, DatOffset); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 545 |  | if not raw_info.LocSep then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 546 |  | begin | 
 
 
 
 
 
 
 
 
 | 696 | – | if not FRawOpened then | 
 
 
 
 
 
 
 
 
 | 697 | – | Fraw_file := TFileStream.Create(AnsiReplaceStr(FFileName, '.dat', '.raw'), | 
 
 
 
 
 
 
 
 
 | 698 | – | fmOpenReadWrite); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 547 |  | Fraw_file.Seek(raw_info.RawAddr + Offset, soFromBeginning); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 548 |  | Fraw_file.CopyFrom(Src, Size); | 
 
 
 
 
 
 
 
 
 | 701 | – | if UnloadWhenUnused then | 
 
 
 
 
 
 
 
 
 | 702 | – | begin | 
 
 
 
 
 
 
 
 
 | 703 | – | FRawOpened := False; | 
 
 
 
 
 
 
 
 
 | 704 | – | Fraw_file.Free; | 
 
 
 
 
 
 
 
 
 | 705 | – | end | 
 
 
 
 
 
 
 
 
 | 706 | – | else | 
 
 
 
 
 
 
 
 
 | 707 | – | FRawOpened := True; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 549 |  | end | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 550 |  | else | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 551 |  | begin | 
 
 
 
 
 
 
 
 
 | 711 | – | if not FSepOpened then | 
 
 
 
 
 
 
 
 
 | 712 | – | Fsep_file := TFileStream.Create(AnsiReplaceStr(FFileName, '.dat', '.sep'), | 
 
 
 
 
 
 
 
 
 | 713 | – | fmOpenReadWrite); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 552 |  | Fsep_file.Seek(raw_info.RawAddr + Offset, soFromBeginning); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 553 |  | Fsep_file.CopyFrom(Src, Size); | 
 
 
 
 
 
 
 
 
 | 716 | – | if UnloadWhenUnused then | 
 
 
 
 
 
 
 
 
 | 717 | – | begin | 
 
 
 
 
 
 
 
 
 | 718 | – | FSepOpened := False; | 
 
 
 
 
 
 
 
 
 | 719 | – | Fsep_file.Free; | 
 
 
 
 
 
 
 
 
 | 720 | – | end | 
 
 
 
 
 
 
 
 
 | 721 | – | else | 
 
 
 
 
 
 
 
 
 | 722 | – | FSepOpened := True; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 554 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 555 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 556 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 562 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 563 |  | if not LocSep then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 564 |  | begin | 
 
 
 
 
 
 
 
 
 | 734 | – | if not FRawOpened then | 
 
 
 
 
 
 
 
 
 | 735 | – | Fraw_file := TFileStream.Create(AnsiReplaceStr(FFileName, '.dat', '.raw'), | 
 
 
 
 
 
 
 
 
 | 736 | – | fmOpenReadWrite); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 565 |  | if (Fraw_file.Size mod 32) > 0 then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 566 |  | Fraw_file.Write(EmptyBytes[0], 32 - (Fraw_file.Size mod 32)); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 567 |  | Result := Fraw_file.Size; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 569 |  | Fraw_file.CopyFrom(Src, Src.Size); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 570 |  | if (Fraw_file.Size mod 32) > 0 then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 571 |  | Fraw_file.Write(EmptyBytes[0], 32 - (Fraw_file.Size mod 32)); | 
 
 
 
 
 
 
 
 
 | 744 | – | if UnloadWhenUnused then | 
 
 
 
 
 
 
 
 
 | 745 | – | begin | 
 
 
 
 
 
 
 
 
 | 746 | – | FRawOpened := False; | 
 
 
 
 
 
 
 
 
 | 747 | – | Fraw_file.Free; | 
 
 
 
 
 
 
 
 
 | 748 | – | end | 
 
 
 
 
 
 
 
 
 | 749 | – | else | 
 
 
 
 
 
 
 
 
 | 750 | – | FRawOpened := True; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 572 |  | end | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 573 |  | else | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 574 |  | begin | 
 
 
 
 
 
 
 
 
 | 754 | – | if not FSepOpened then | 
 
 
 
 
 
 
 
 
 | 755 | – | Fsep_file := TFileStream.Create(AnsiReplaceStr(FFileName, '.dat', '.sep'), | 
 
 
 
 
 
 
 
 
 | 756 | – | fmOpenReadWrite); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 575 |  | if (Fsep_file.Size mod 32) > 0 then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 576 |  | Fsep_file.Write(EmptyBytes[0], 32 - (Fsep_file.Size mod 32)); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 577 |  | Result := Fsep_file.Size; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 579 |  | Fsep_file.CopyFrom(Src, Src.Size); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 580 |  | if (Fsep_file.Size mod 32) > 0 then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 581 |  | Fsep_file.Write(EmptyBytes[0], 32 - (Fsep_file.Size mod 32)); | 
 
 
 
 
 
 
 
 
 | 764 | – | if UnloadWhenUnused then | 
 
 
 
 
 
 
 
 
 | 765 | – | begin | 
 
 
 
 
 
 
 
 
 | 766 | – | FSepOpened := False; | 
 
 
 
 
 
 
 
 
 | 767 | – | Fsep_file.Free; | 
 
 
 
 
 
 
 
 
 | 768 | – | end | 
 
 
 
 
 
 
 
 
 | 769 | – | else | 
 
 
 
 
 
 
 
 
 | 770 | – | FSepOpened := True; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 582 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 583 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 584 |  |  |