Обычно, я использую файл с заголовком, который я затем загружаю в память, и использую его для поиска необходимой мне записи.
Type TSaveHeader = Record scene : Integer; hotspots : LongInt; talk : LongInt; hype : LongInt; End; Var SaveHeader : TSaveHeader; Procedure OpenSaveFile(fname : String); Var f : File; i : Integer; Begin AssignFile(f, fname); Reset(f, 1); BlockRead(f, SaveHeader, Sizeof(TSaveHeader)); { получаем один набор записи } Seek(f, SaveHeader.hotspots); For i := 1 To 50 Do BlockRead(f, somevar, sizeof_hotspotrec); { и так далее } CloseFile(f); End; { предположим, что файл открыт } Procedure GetHotspotRec(index : LongInt; Var hotspotrec : THotspot); Var offset : LongInt; Begin offset := SaveHeader.hotspots + index * Sizeof(THotSpot); Seek(f, offset); BlockRead(f, hotspotrec, Sizeof(THotspot)); End; |
[001674]