369 |
|
begin |
370 |
|
if fileid < GetFileCount then |
371 |
|
begin |
372 |
< |
if not Assigned(Target) then |
373 |
< |
Target := TMemoryStream.Create; |
374 |
< |
if not FDatOpened then |
375 |
< |
Fdat_file := TFileStream.Create(FFileName, fmOpenReadWrite); |
376 |
< |
Fdat_file.Seek(Fdat_files[fileid].DatAddr, soFromBeginning); |
377 |
< |
streampos := Target.Position; |
378 |
< |
Target.CopyFrom(Fdat_file, Fdat_files[fileid].Size); |
379 |
< |
Target.Seek(streampos, soFromBeginning); |
380 |
< |
if UnloadWhenUnused then |
372 |
> |
if GetFileInfo(FileID).Size > 0 then |
373 |
|
begin |
374 |
< |
Fdat_file.Free; |
375 |
< |
FDatOpened := False; |
376 |
< |
end |
377 |
< |
else |
378 |
< |
FDatOpened := True; |
374 |
> |
if not Assigned(Target) then |
375 |
> |
Target := TMemoryStream.Create; |
376 |
> |
if not FDatOpened then |
377 |
> |
Fdat_file := TFileStream.Create(FFileName, fmOpenReadWrite); |
378 |
> |
Fdat_file.Seek(Fdat_files[fileid].DatAddr, soFromBeginning); |
379 |
> |
streampos := Target.Position; |
380 |
> |
Target.CopyFrom(Fdat_file, Fdat_files[fileid].Size); |
381 |
> |
Target.Seek(streampos, soFromBeginning); |
382 |
> |
if UnloadWhenUnused then |
383 |
> |
begin |
384 |
> |
Fdat_file.Free; |
385 |
> |
FDatOpened := False; |
386 |
> |
end |
387 |
> |
else |
388 |
> |
FDatOpened := True; |
389 |
> |
end; |
390 |
|
end; |
391 |
|
end; |
392 |
|
|