646 |
|
end; |
647 |
|
|
648 |
|
function TAccess_OniArchive.AppendRawFile(LocSep: Boolean; Src: TStream): Integer; |
649 |
+ |
const |
650 |
+ |
EmptyBytes: Array[0..31] of Byte = ( |
651 |
+ |
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ); |
652 |
|
begin |
653 |
|
if not LocSep then |
654 |
|
begin |
655 |
|
if not FRawOpened then |
656 |
|
Fraw_file := TFileStream.Create(AnsiReplaceStr(FFileName, '.dat', '.raw'), |
657 |
|
fmOpenReadWrite); |
658 |
+ |
if (Fraw_file.Size mod 32) > 0 then |
659 |
+ |
Fraw_file.Write(EmptyBytes[0], 32 - (Fraw_file.Size mod 32)); |
660 |
|
Result := Fraw_file.Size; |
661 |
|
Fraw_file.Seek(0, soFromEnd); |
662 |
|
Fraw_file.CopyFrom(Src, Src.Size); |
663 |
+ |
if (Fraw_file.Size mod 32) > 0 then |
664 |
+ |
Fraw_file.Write(EmptyBytes[0], 32 - (Fraw_file.Size mod 32)); |
665 |
|
if UnloadWhenUnused then |
666 |
|
begin |
667 |
|
FRawOpened := False; |
675 |
|
if not FSepOpened then |
676 |
|
Fsep_file := TFileStream.Create(AnsiReplaceStr(FFileName, '.dat', '.sep'), |
677 |
|
fmOpenReadWrite); |
678 |
+ |
if (Fsep_file.Size mod 32) > 0 then |
679 |
+ |
Fsep_file.Write(EmptyBytes[0], 32 - (Fsep_file.Size mod 32)); |
680 |
|
Result := Fsep_file.Size; |
681 |
|
Fsep_file.Seek(0, soFromEnd); |
682 |
|
Fsep_file.CopyFrom(Src, Src.Size); |
683 |
+ |
if (Fsep_file.Size mod 32) > 0 then |
684 |
+ |
Fsep_file.Write(EmptyBytes[0], 32 - (Fsep_file.Size mod 32)); |
685 |
|
if UnloadWhenUnused then |
686 |
|
begin |
687 |
|
FSepOpened := False; |