| 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; |