المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : كيف تضغط الملفات في البيسك



أبو هاجر الحلوة
09-01-2007, 10:58 PM
أبو هاجر الحلوة
الجزائر
2007

بسم الله الرحمن الرحيم و الصلاة و السلام على سيدنا محمد و على آله وصحبه و التابعين

الـzlib.dllمكتبة مجانية ومفتوحة المصدر تسمح بإنشاء ملفات مضغوطة نمطية بامتداد zip طورها Jean-loup Gailly و Mark Adlerتستطيع تحميلها من هذا الرابط http://www.gzip.org/zlib/ (http://www.gzip.org/zlib/)
و لتسهيل استغلالها في الفجوال بيسك ستحتاج لوحدتي أصناف للسيد Andrew McMillan تستطيع تحميلهما من :
http://www.paradoxes.info/code/downloads/zipclass.zip (http://www.paradoxes.info/code/downloads/zipclass.zip)
http://www.paradoxes.info/code/downloads/zipExtractionclass.zip (http://www.paradoxes.info/code/downloads/zipExtractionclass.zip)


و بطريقة مبسطة هذا الكود يسمح بانشاء الـ zip




Dim z As ZipClass
Set z = New ZipClass
z.AddFile "c:\test.doc"
z.AddFile "c:\test.jpg"
z.WriteZip "c:\test.zip", TrueSet z = Nothing


و هذا الكود يسمح بتفكيكه



Dim zip As ZipExtractionClass
Set zip = New ZipExtractionClass
If zip.OpenZip("C:\Test\Test.zip") Then
If zip.Extract("C:Test\Extract", True, True) Then
MsgBox "Extraction terminée.", vbInformation
End If
zip.CloseZip
End If
Set zip = Nothing

المصدرhttp://www.developpez.com/ (http://www.developpez.com/)
المشروع المرفق مع هذه المذكرة سوف يعطيك نظرة جيدة على على طريقة استعمالهما في الفجوال بيسك و هو من إنشائي و بواجهة عربية قريبة من واجهة الوينرار ويمكنك التعديل عليه كما تشاء فربما مع إضافات الإخوة يتحول إلى تطبيق احترافي
ملاحظة هامة:
المشروع مرفق مع
المكتبةzlib.dllقم بنسخها في مجلدWINDOWS\system32
الملفZipExtractionClass.cls
الملفZipFile.cls
أي كل ما تحتاج إليه فلا داعي لتتعب نفسك في التحميل و لكن زيادة للفائدة ذكرت الروابط المذكورة أعلاه
شكرا

Argonaut
10-01-2007, 01:18 PM
السلآم عليكم والرحمة
رررررروعة هذه الطريقة اسهل بكثير من طريقتي
طريقتي موجودة في
Gardenia 0.1.210
و هنالك المزيد في المشروع
! نسيت المشروع في هذا القسم ( المصادر المفتوحة )
جزاك الله كل الخير زميلي ( ابو هاجر )

(:،،

وشكرا"

أبو هاجر الحلوة
10-01-2007, 05:17 PM
و عليكم السلام و رحمة الله و بركاته

أجل قد قمت بتحميل نسختين من مشروعك Gardenia و لكني قرأت في إحدى مشاراكتك أنك تنوي إصدار نسخة أخرى من البرنامج فلهذا أجلت مناقشتك حولها حتى صدورها
أرجو أنك انتهيت منها لأني متشوق لرؤيتها و النظر إلى كودها المصدري

فيما يخص الـ zlib.dll فهي حقا رائعة و أقترح عليك أن تستغلها في مشروعك إلى أقصى حد ممكن

سامي.خ
10-01-2007, 10:07 PM
عندي آداة جديدة لقيتها مع برنامج الـwinrar أسهل من الطريقة الأولى
تصلح للفجوال بيسك ولأي برنامج أو لغة برمجة أخرى
وهو يعتمد على الدوس
في المرفق يحتوي على ملفين
واحد للضغط والثاني للفك
هذا كود لضغط ملف بصيغة رار


shell "rar a file.xxx"


وهذي الأوامر كلها


Usage: rar <command> -<switch 1> -<switch N> <archive> <files...>
<@listfiles...> <path_to_extract\>
<Commands>
a Add files to archive
c Add archive comment
cf Add files comment
cw Write archive comment to file
d Delete files from archive
e Extract files to current directory
f Freshen files in archive
i[par]=<str> Find string in archives
k Lock archive
l[t] List archive [technical]
m[f] Move to archive [files only]
p Print file to stdout
r Repair archive
rc Reconstruct missing volumes
rr[N] Add data recovery record
rv[N] Create recovery volumes
s[name|-] Convert archive to or from SFX
t Test archive files
u Update files in archive
v[t] Verbosely list archive [technical]
x Extract files with full path
<Switches>
- Stop switches scanning
ac Clear Archive attribute after compression or extraction
ad Append archive name to destination path
ag[format] Generate archive name using the current date
ao Add files with Archive attribute set
ap<path> Set path inside archive
as Synchronize archive contents
av Put authenticity verification (registered versions only)
av- Disable authenticity verification check
c- Disable comments show
cfg- Disable read configuration
cl Convert names to lower case
cu Convert names to upper case
df Delete files after archiving
dh Open shared files
ds Disable name sort for solid archive
e<attr> Set file exclude attributes
ed Do not add empty directories
en Do not put 'end of archive' block
ep Exclude paths from names
ep1 Exclude base directory from names
ep2 Expand paths to full
f Freshen files
hp[password] Encrypt both file data and headers
idp Disable percentage display
ieml[addr] Send archive by email
ierr Send all messages to stderr
ilog[name] Log errors to file (registered versions only)
inul Disable all messages
ioff Turn PC off after completing an operation
isnd Enable sound
k Lock archive
kb Keep broken extracted files
m<0..5> Set compression level (0-store...3-default...5-maximal)
mc<par> Set advanced compression parameters
md<size> Dictionary size in KB (64,128,256,512,1024,2048,4096 or A-G)
ms[ext;ext] Specify file types to store
o+ Overwrite existing files
o- Do not overwrite existing files
os Save NTFS streams
ow Save or restore file owner and group
p[password] Set password
p- Do not query password
r Recurse subdirectories
r0 Recurse subdirectories for wildcard names only
ri<P>[:<S>] Set priority (0-default,1-min..15-max) and sleep time in ms
rr[N] Add data recovery record
rv[N] Create recovery volumes
s[<N>,v[-],e] Create solid archive
s- Disable solid archiving
sfx[name] Create SFX archive
t Test files after archiving
ta<date> Process files modified after <date> in YYYYMMDDHHMMSS format
tb<date> Process files modified before <date> in YYYYMMDDHHMMSS format
tk Keep original archive time
tl Set archive time to latest file
tn<time> Process files newer than <time>
to<time> Process files older than <time>
u Update files
v Create volumes with size autodetection or list all volumes
v<size>[k,b] Create volumes with size=<size>*1000 [*1024, *1]
vd Erase disk contents before creating volume
ver[n] File version control
vn Use the old style volume naming scheme
vp Pause before each volume
w<path> Assign work directory
x<file> Exclude specified file
x@ Read file names to exclude from stdin
x@<list> Exclude files in specified list file
y Assume Yes on all queries
z<file> Read archive comment from file

مهاب مكارم
23-03-2007, 03:29 PM
ياأخي ماهذا التميز ياأخي أبو هاجر الحلوة إنت قنبلة خطيرة

أبو هاجر الحلوة
23-03-2007, 10:29 PM
بارك الله فيك أخي مهاب هذا من كرمك و حسن أخلاقك
و الله يوفق كل واحد فينا إلى تقديم أحسن ما عنده لتعم الفائدة فرب حامل علم إلى من هو أعلم منه
و إنشاء الله يبلغ كل فرد من هذا المنتدى الرائع التميز و ما هو أعلى من التميز
بالتوفيق إنشاء الله.

مهاب مكارم
23-03-2007, 11:56 PM
شكرا لك وأريد أن أسألك إذا كانت هذه الطريقة تضغط للاحقات أخرى
وإذا مابتضغط ياريت إذا بتعرف تعرفني على طرق أخرى وأكون ممتنا لك

مهاب مكارم
23-03-2007, 11:57 PM
عفوا أقصد باللاحقات الأخرى rar,tar

أبو هاجر الحلوة
24-03-2007, 12:49 AM
شكرا لك وأريد أن أسألك إذا كانت هذه الطريقة تضغط للاحقات أخرى
وإذا مابتضغط ياريت إذا بتعرف تعرفني على طرق أخرى وأكون ممتنا لك


لا هذه المكتبة خاصة بالـ zip فقط
فيما يخص الطرق الأخرى يجب أن نميز بين ما هو عام يمكن لأي كان إستعماله كالـ zip و بين ما ها خاص أي محمي بقوانين الملكية الفكرية كالـ Rar
فيما يخص الصنف الأول هناك خوارزميات معروفة كخوارزم الـ Lzw و خوارزم Huffman و هي موجودة ومتداولة بين المبرمجين في كل اللغات لكن شرحها يتطلب جهدا كبيرا و تفرغا شبه تام و أعتقد أن عندي مراجع لكنها للأسف بالفرنسية إذا كنت محتاج لها يمكن أن أضعها هنا أما شرحها بالعربية فأخشى أني لن أتمكن من ذلك في القريب ربما في وقت لاحق إن يسر الله ذلك .
أما فيما يخص الصنف الثاني فرغم أن المكتبات التي تقوم بالضغط غير مسموح بإستعمالها إلا أن المكتبات التي تقوم بعملية الفك مجانية و لا توجد قيود على إستعمالها و كمثال على ذلك مكتبة الـ Unrar لتفكيك أرشيف الـ WinRar و هي مشهورة و يمكن أن تبحث عنها بواسطة الجوجل و الأمثلة على إستعمالها في البيسك أيضا متوفرة
كما أن هناك أمر Dos إن صح التعبير Expand يسمح بتفكيك ملفات الـ Cab دون اللجوء إلى أي مكتبة يمكنك إستعماله مباشرة من برنامجك عن طرق الـ Shell
لإختصار الطريق عليك كان هنا في المنتدى برنامج Gardina مفتوح المصدر لأخينا حسام فيه الكثير من مكتبات الضغط و طرق إستعمالها إذا تمكنت من الحصول عليه فأعتقد أنه سوف يغنيك عن غيره.
و حبذا لو كان هناك قسم بالمنتدى خاص بالخوارزمات نناقش فيه مثل هذه الأمور و يجمع بين كل المبرمجين و بكل اللغات بحيث يستطيع الجميع فهم بعضهم دون اللجوء إلى خصوصيات كل لغة .