#181
|
||||
|
||||
Finally I will leave the original format, I just change the way to recovered the output path in order to be compatible with ArcGUI.
for those interested here are the changes: Code:
function IsRelativePath(const sPath: string): Boolean; begin Result:=True; if Length(sPath) >= 2 then Result:=sPath[2] <> ':'; end; function ClsMain(operation: Integer; Callback: CLS_CALLBACK; Instance: Pointer): Integer; cdecl; const BuffSize = 64 * 1024; var CLS: TCLSStream; SS: TSplitStream; Bytes: TBytes; X: Integer; X8: Byte; X64: Int64; s: String; FirstVolume, OtherVolume: Int64; i: integer; begin Result := CLS_ERROR_GENERAL; case (operation) of CLS_COMPRESS: begin for i := 1 to ParamCount do begin if (ExtractFileExt(ParamStr(i)) = '.001') then begin Archive := ParamStr(i); Break; end; end; if IsRelativePath(Archive) then Archive := ExtractFilePath(GetModuleName) + Archive; Archive := ChangeFileExt(Archive, ''); SetLength(Bytes, 256); FillChar(Bytes[0], Length(Bytes), #0); X := Callback(Instance, CLS_GET_PARAMSTR, @Bytes[0], Length(Bytes)); s := StringOf(Bytes); s := ReplaceStr(s, #0, ''); FirstVolume := ConvertToBytes(LeftStr(s, Pos(':', s) - 1)); OtherVolume := ConvertToBytes(ReplaceStr(s, LeftStr(s, Pos(':', s)), '')); CLS := TCLSStream.Create(Callback, Instance); CLS.WriteBuffer(FirstVolume, sizeof(FirstVolume)); Bytes := BytesOf(ExtractFileName(Archive)); X := Length(Bytes); CLS.WriteBuffer(X, sizeof(X)); CLS.WriteBuffer(Bytes, Length(Bytes)); X64 := StreamToStream(CLS, CLS, BuffSize, FirstVolume); if X64 = FirstVolume then begin X := CLS.Read(Bytes, Length(Bytes)); if X > 0 then begin X8 := 1; CLS.WriteBuffer(X8, sizeof(X8)); SS := TSplitStream.Create(Archive, False, OtherVolume, OtherVolume); SS.WriteBuffer(Bytes, X); StreamToStream(CLS, SS, BuffSize); SS.Free; end else begin X8 := 0; CLS.WriteBuffer(X8, sizeof(X8)); end; end; CLS.Free; SetLength(Bytes, 0); Result := CLS_OK; end; CLS_DECOMPRESS: begin try if SrcPath = '' then SrcPath := GetCurrentDir; CLS := TCLSStream.Create(Callback, Instance); CLS.ReadBuffer(FirstVolume, sizeof(FirstVolume)); CLS.ReadBuffer(X, sizeof(X)); SetLength(Bytes, X); CLS.ReadBuffer(Bytes, Length(Bytes)); Archive := IncludeTrailingBackSlash(SrcPath) + StringOf(Bytes); X64 := StreamToStream(CLS, CLS, BuffSize, FirstVolume); if FirstVolume = X64 then begin CLS.ReadBuffer(X8, sizeof(X8)); if X8 = 1 then begin SS := TSplitStream.Create(Archive, True, OtherVolume, OtherVolume, MyDiskRequest); StreamToStream(SS, CLS, BuffSize); SS.Free; end; end; CLS.Free; SetLength(Bytes, 0); Result := CLS_OK; except Result := CLS_ERROR_GENERAL; end; end; else Result := CLS_ERROR_NOT_IMPLEMENTED; end; end; ![]()
__________________
Practice makes perfect. |
Sponsored Links |
#182
|
||||
|
||||
On this short video I add a folder to compressed which contains 2 files, one with the extension *.esm, the other with the extension *.mp4, the method used contains an extension group that is bound with a method,
the extension *.mp4 is located in the group "$void" this implies that the mp4 file will receive the srep64 compression method, so no have two files with 2 different compression methods and it works. I remove Precomp from the Max method in order to shorten the video... If someone has a remark he does not hesitate to share it with me. I need to update the language files, I will share a version in the day with the folder "masked Data Compressor 2.5" from Panker, the directory contains the categories files as you can see below: ![]() ![]() The CLS-Diskspan is not integrated with Arcgui at the moment, but the options present in the program implies its presence for it to work, it will have to use the version I have a little bit change. I'll post the DLL below the program. Thanks to Razor for his work! ![]() Sorry for the old-fashioned layout, when the version will be 100% functional, I'll make a great presentation page with big characters and colors like we do more since the invention of HTML ![]()
__________________
Practice makes perfect. |
#183
|
||||
|
||||
i applied full masked method: "/$text=ppmd/$jpeg=paq8pxd/$exe=exe2"
The result: Code:
G:\Delphi\Projets\Arc GUI\Arc GUI 0.9.8.7\Win32\Release\working_dir>arc a --logfile=C:\Temp\freearc.log -ma9 -ds -lc1024 -ld1024 -di -i1 -ep1 -ed -r -s -wE:\ArcGUI\Temp E:\ArcGUI\Output\Data.bin.001 -mdiskspan:10mb:10mb/$text=ppmd/$jpeg=paq8pxd/$exe=exe2 C:\Users\Arnaud\Desktop\Data FreeArc 0.67 (March 15 2014) Creating archive: E:\ArcGUI\Output\Data.bin.001 using diskspan:10mb:10mb, $text => ppmd:10:48mb, $jpeg => paq8pxd, $exe => dispack070 Memory for compression 450mb, decompression 450mb, cache 16mb Compressed 3 files, 39,415,777 => 10,485,792 bytes. Ratio 26.60% Compression time: cpu 0.03 sec/real 0.24 sec = 13%. Speed 164.91 mB/s All OK Code:
function SetDiskspanValuePosition(const sMethodValue, sDiskspanValue: string): string; var i: integer; begin if Length(sDiskspanValue) > 0 then begin i:=Pos('/$', sMethodValue); if i > 0 then begin Result:=sMethodValue; Insert(Copy(sDiskspanValue, 2, Length(sDiskspanValue)), Result, i); end else Result:=sMethodValue+sDiskspanValue; end else Result:=sMethodValue; end; Code:
ShowMessage('-m'+SetDiskspanValuePosition('/$text=ppmd/$jpeg=paq8pxd/$exe=exe2', '+diskspan:4460mb:4470mb'));
__________________
Practice makes perfect. Last edited by JRD!; 04-01-2018 at 23:55. |
#184
|
||||
|
||||
Updated. Included Masked Data compressor 2.5 by panker1992 as well as modified CLS-Diskpan.
I create the categories of compression methods and external compressors. I will do a series of videos to make a brief tour of the Features. I quickly released this version, there are definitely bugs, if you noticed, make me know about the thread, thanks to all.
__________________
Practice makes perfect. Last edited by JRD!; 04-01-2018 at 23:52. |
#185
|
||||
|
||||
Quote:
![]()
__________________
Practice makes perfect. |
The Following User Says Thank You to JRD! For This Useful Post: | ||
Simorq (05-01-2018) |
#186
|
||||
|
||||
Here is the list of changes to the next version:
Quote:
Quote:
I currently have no tester, so I am forced to test myself what slowed the development. At the level of translation only KaktoR has brought help. If someone could make me some return it would be great.
__________________
Practice makes perfect. |
The Following User Says Thank You to JRD! For This Useful Post: | ||
KaktoR (16-01-2018) |
#187
|
||||
|
||||
Unfortunatelly i don't have much time for deep testing atm, but if you like make a public beta... some kind of.
__________________
Haters gonna hate
|
The Following User Says Thank You to KaktoR For This Useful Post: | ||
JRD! (16-01-2018) |
#188
|
||||
|
||||
Yes, that's what I tried to do with the previous version but without much success.
__________________
Practice makes perfect. |
#189
|
||||
|
||||
An analysis of the output stream is used to determine whether file decompression will require more free space or not.
Code:
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 2018/01/17 00:01:25 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | | Step 1/1 | | Creating archive Data-1.bin | | Method name camel5 | Method value pzlib_x64+static1+7z_xz | Expanded method value pzlib_x64+srep_x64+exe+delta+7z_xz | | Compressor 1: pzlib_x64 | Compressor 2: srep_x64 | Compressor 3: exe | Compressor 4: delta | Compressor 5: 7z_xz | | NeedSize: 618,31 MB | | Status: Operation success | Compression time: 00:01:19 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
__________________
Practice makes perfect. |
The Following User Says Thank You to JRD! For This Useful Post: | ||
Simorq (18-01-2018) |
#191
|
||||
|
||||
The update of the program will be done on this thread.
__________________
Practice makes perfect. |
The Following 3 Users Say Thank You to JRD! For This Useful Post: | ||
#192
|
||||
|
||||
If you have a better translation or if you have translated to other language, do not hesitate to posted the file in the thread, I will integrate it in the following versions. Thank you.
__________________
Practice makes perfect. |
The Following User Says Thank You to JRD! For This Useful Post: | ||
punsher2011 (23-04-2019) |
#193
|
||||
|
||||
1.14 preview
![]()
__________________
Practice makes perfect. Last edited by JRD!; 15-01-2019 at 13:08. |
The Following 4 Users Say Thank You to JRD! For This Useful Post: | ||
#194
|
||||
|
||||
Quote:
Has this project been canceled? |
#195
|
||||
|
||||
Hi Simorq,
This is an example for those who want to implement cls-diskspan.dll in their program. This places the diskspan value before the part of the method that contains the groups. About cls-diskspan: The implementation in ArcGUI allows division into multiple DVDs or a custom size. The first volume size of the next archive is calculated by the size of the last previous volume, which greatly simplifies its use. If an error occurs during compression, it will retrieve information from the previous archive. About ArcGUI: I'm going to post version 1.15.1, it includes an automated compression method function that is based on the default values assigned to extension groups. With a simple click, you designate a default compression method for files whose extension is not part of the groups, it allows to apply the masks when it is necessary.
__________________
Practice makes perfect. Last edited by JRD!; 11-02-2019 at 13:53. |
![]() |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Vista beta 2 blocking Starforce | ronandex | CD/DVD Copy Protections & Utilities | 4 | 31-05-2006 02:37 |
Neverwinter Nights v1.66.8071 (Beta) | doomerdgr8 | PC Games | 1 | 28-05-2005 10:18 |
Copying Socom2 Beta Is It Possible | dblue | PS2 Games | 6 | 14-10-2003 19:14 |
OT: Opinion and BETA testers neded for my upcomming products! | krondike | PC Games | 3 | 06-10-2003 08:29 |
PAL Patcher 0.93 Beta | Megalexxx | DC Games | 18 | 03-01-2003 09:23 |