| 34 |  | function GetDatLink(FileID, DatOffset: Integer): TDatLink; override; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 35 |  | function GetRawList(FileID: Integer): TRawDataList; override; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 36 |  | function GetRawInfo(FileID, DatOffset: Integer): TRawDataInfo; override; | 
 
 
 
 
 
 
 
 | 37 | + | function GetRawsForType(RawType: String): TRawDataList; override; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 38 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 39 |  | procedure LoadRawFile(FileID, DatOffset: Integer; var Target: TStream); overload; override; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 40 |  | procedure UpdateRawFile(FileID, DatOffset: Integer; Src: TStream); overload; override; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 268 |  | list.Sorted := False | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 269 |  | else | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 270 |  | list.Sorted := True; | 
 
 
 
 
 
 
 
 | 271 | + | if ext = '*' then | 
 
 
 
 
 
 
 
 | 272 | + | ext := ''; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 273 |  | for i := 0 to GetFileCount - 1 do | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 274 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 275 |  | if ((Length(ext) = 0) or (Pos(Fdat_files[i].Extension, ext) > 0)) and | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 492 |  | i: Integer; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 493 |  | begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 494 |  | SetLength(Result, 0); | 
 
 
 
 
 
 
 
 
 
 
 | 495 | < | FQuery.SQL.Text := 'SELECT [src_link_offset],[size],[sep] FROM rawmap WHERE [src_id]=' + | 
 
 
 
 
 
 
 
 
 | 495 | > | FQuery.SQL.Text := 'SELECT [src_link_offset],[name],[size],[sep],[type] FROM rawmap WHERE [src_id]=' + | 
 
 
 
 
 
 
 
 
 
 
 | 496 |  | IntToStr(fileid) + ' ORDER BY src_link_offset ASC;'; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 497 |  | FQuery.Open; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 498 |  | if FQuery.RecordCount > 0 then | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 501 |  | SetLength(Result, FQuery.RecordCount); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 502 |  | i := 0; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 503 |  | repeat | 
 
 
 
 
 
 
 
 | 504 | + | Result[i].Name      := FQuery.FieldByName('name').AsString; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 505 |  | Result[i].SrcID     := fileid; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 506 |  | Result[i].SrcOffset := FQuery.FieldByName('src_link_offset').AsInteger; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 507 |  | Result[i].RawAddr   := 0; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 508 |  | Result[i].RawSize   := FQuery.FieldByName('size').AsInteger; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 509 |  | Result[i].LocSep    := FQuery.FieldByName('sep').AsBoolean; | 
 
 
 
 
 
 
 
 | 510 | + | Result[i].RawType   := FQuery.FieldByName('type').AsString; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 511 |  | Inc(i); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 512 |  | FQuery.Next; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 513 |  | until FQuery.EOF; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 530 |  | if i < Length(rawlist) then | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 531 |  | Result := rawlist[i] | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 532 |  | else begin | 
 
 
 
 
 
 
 
 | 533 | + | Result.Name      := ''; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 534 |  | Result.SrcID     := -1; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 535 |  | Result.SrcOffset := -1; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 536 |  | Result.RawAddr   := -1; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 537 |  | Result.RawSize   := -1; | 
 
 
 
 
 
 
 
 | 538 | + | Result.RawType   := ''; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 539 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 540 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 541 |  | end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 542 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 543 |  |  | 
 
 
 
 
 
 
 
 | 544 | + | function TAccess_OUP_ADB.GetRawsForType(RawType: String): TRawDataList; | 
 
 
 
 
 
 
 
 | 545 | + | var | 
 
 
 
 
 
 
 
 | 546 | + | i: Integer; | 
 
 
 
 
 
 
 
 | 547 | + | rawlist: TRawDataList; | 
 
 
 
 
 
 
 
 | 548 | + | begin | 
 
 
 
 
 
 
 
 | 549 | + | SetLength(Result, 0); | 
 
 
 
 
 
 
 
 | 550 | + | FQuery.SQL.Text := 'SELECT [src_id],[src_link_offset],[name],[size],[sep] FROM rawmap ' + | 
 
 
 
 
 
 
 
 | 551 | + | 'WHERE [type]="' + RawType + '" ORDER BY src_id ASC, src_link_offset ASC;'; | 
 
 
 
 
 
 
 
 | 552 | + | FQuery.Open; | 
 
 
 
 
 
 
 
 | 553 | + | if FQuery.RecordCount > 0 then | 
 
 
 
 
 
 
 
 | 554 | + | begin | 
 
 
 
 
 
 
 
 | 555 | + | FQuery.First; | 
 
 
 
 
 
 
 
 | 556 | + | SetLength(Result, FQuery.RecordCount); | 
 
 
 
 
 
 
 
 | 557 | + | i := 0; | 
 
 
 
 
 
 
 
 | 558 | + | repeat | 
 
 
 
 
 
 
 
 | 559 | + | Result[i].Name      := FQuery.FieldByName('name').AsString; | 
 
 
 
 
 
 
 
 | 560 | + | Result[i].SrcID     := FQuery.FieldByName('src_id').AsInteger; | 
 
 
 
 
 
 
 
 | 561 | + | Result[i].SrcOffset := FQuery.FieldByName('src_link_offset').AsInteger; | 
 
 
 
 
 
 
 
 | 562 | + | Result[i].RawAddr   := 0; | 
 
 
 
 
 
 
 
 | 563 | + | Result[i].RawSize   := FQuery.FieldByName('size').AsInteger; | 
 
 
 
 
 
 
 
 | 564 | + | Result[i].LocSep    := FQuery.FieldByName('sep').AsBoolean; | 
 
 
 
 
 
 
 
 | 565 | + | Result[i].RawType   := RawType; | 
 
 
 
 
 
 
 
 | 566 | + | Inc(i); | 
 
 
 
 
 
 
 
 | 567 | + | FQuery.Next; | 
 
 
 
 
 
 
 
 | 568 | + | until FQuery.EOF; | 
 
 
 
 
 
 
 
 | 569 | + | end; | 
 
 
 
 
 
 
 
 | 570 | + | FQuery.Close; | 
 
 
 
 
 
 
 
 | 571 | + | end; | 
 
 
 
 
 
 
 
 | 572 | + |  | 
 
 
 
 
 
 
 
 | 573 | + |  | 
 
 
 
 
 
 
 
 | 574 | + |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 575 |  |  | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 576 |  | procedure TAccess_OUP_ADB.LoadRawFile(FileID, DatOffset: Integer; var Target: TStream); | 
 
 
 
 
 
 
 
 
 
 
 
 
 | 577 |  | var |