ايمن سالم
12-02-2011, 04:21 PM
عمل برنامج لضغط الملفات وتشفيرها شبيه ببرنامج Winzip
http://ahmedreda89.googlepages.com/Salam2.png
درس عمل برنامج ضغط الملفات
**********
سوف نشرح اليوم درس جميل وهو عمل برنامج لضغط الملفات وتشفيرها شبيه ببرنامج Winzip وغيره من برامج ضغط الملفات فالطريقة سهله وممتعه وتريد قليل من التركز فقط .
**********
نبدأ باسم الله
أولاً نفتح مشروع جديد ونختار خلفية أولون علي اختيارك :
http://img525.imageshack.us/img525/7658/001hbh.jpg
ثانياً نقوم بإدراج 4 أزرار ونسميها كالتالي:
1- إضافة ملف
2- إضافة مجلد
3- حــــــــــذف
4- حــذف الكل
http://img825.imageshack.us/img825/1818/75795355.jpg
1- ( إضافة ملف)
دبل كلك علي زر إضافة ملف ثم ندرج الطود التالي:
-- Display file browse dialog
fAdd = Dialog.FileBrowse(true, "Add File...", _DesktopFolder, "All Files (*.*)|*.*|", "", "", false, true);
if fAdd[1] ~= "CANCEL" then
-- Split file path
sFile = String.SplitPath(fAdd[1]);
-- Add file to listbox
ListBox.AddItem("ListBox1", sFile.Filename..sFile.Extension, fAdd[1]);
end
http://img156.imageshack.us/img156/7544/14283305.jpg
2- (إضافة مجلد)
دبل كلك علي زر إضافة مجلد ثم ندرج الكود التالي:
-- Display folder browse dialog
folAdd = Dialog.FolderBrowse("Add File(s) From Folder", _DesktopFolder);
if folAdd ~= "CANCEL" then
-- Set file type(s)
tbSearchFiles = {"*.*"};
for index,type in tbSearchFiles do
-- Collect file(s) in folder
file = File.Find(folAdd, type, false, false, nil);
if file ~= nil and file ~="CANCEL" then
for j,file_path in file do
-- Split file path
sFile = String.SplitPath(file_path);
-- Add file to listbox
ListBox.AddItem("ListBox1", sFile.Filename..sFile.Extension, file_path);
end
end
end
end
http://img703.imageshack.us/img703/645/23000257.jpg
3- ( حــــذف)
دبل كلك علي زر حذف ثم ندرج الكود التالي:
lSelected = ListBox.GetSelected("ListBox1");
if (lSelected) then
-- Remove selected from listbox
ListBox.DeleteItem("ListBox1", lSelected[1]);
end
http://img821.imageshack.us/img821/3330/49331896.jpg
4- ( حذف الكل)
دبل كلك زر حذف الكل ثم ندرج الكود التالي:
-- Delete all items from listbox
ListBox.DeleteItem("ListBox1", -1);
http://img203.imageshack.us/img203/9706/47825600.jpg
ثم نقوم بإضافة عنصرين :
: ListBox وهو لعرض أسماء الملفات بداخله
Input: لتشفير الملف المضغوط بباسوورد كالتالي :
http://img13.imageshack.us/img13/2848/89896573.jpg
ثم نختار من Project ثم Global Functions كما في الصور التالية:
http://img828.imageshack.us/img828/2333/14407994.jpg
ونقوم بإدراج الكود التالي:
function QueryAllowProjectClose() --this function will be called when the program is exiting
confirmation = Dialog.Message("رسالة تأكيد?", "هل تود بالفعل الخروج من البرنامج?", MB_YESNO, MB_ICONEXCLAMATION, MB_DEFBUTTON1);
if confirmation == 6 then
-- The yes button was pressed, allow program to close (return true)
return true;
else
-- The yes button was NOT pressed, do NOT allow the program to close (Return false)
return false;
end
end
http://img148.imageshack.us/img148/111/31175699.jpg
وأخيراً وليس أخراً نقوم بإدراج زر ونسميه (إبدا الضغط) وشرحة هو لضغط الملف بالإضافة لخروج نافذة تحديد مكان حفظ الملف بعد الضغط
دبل كلك الزر ثم ندرج الكود التالي:
-- Count listbox items (file(s) to add to zip)
tFiles = ListBox.GetCount("ListBox1");
if tFiles == 0 then
-- Display error message
Dialog.Message("خطأ", "لا يوجد ملف في مريع القائمة الرجاء الضغط على اضافة ملف .", MB_OK, MB_ICONINFORMATION);
else
-- Display save zip file as... dialog
sDia = Dialog.FileBrowse(false, "Save Zip File As...", _DesktopFolder, "Zip File (*.zip)|*.zip|", "", "zip", false, false);
if sDia[1] ~= "" and sDia[1] ~= "CANCEL" then
-- Create a table containing files to add to zip
tb_Files = {}
for i=1, tFiles do
tFile = ListBox.GetItemData("ListBox1", i);
Table.Insert(tb_Files, i, tFile);
end
-- Show status dialog
StatusDlg.Show(MB_ICONNONE, false);
-- Add files to zip
Zip.Add(sDia[1], tb_Files, true, Input.GetText("Input1"), ComboBox.GetItemData("ComboBox1", ComboBox.GetSelected("ComboBox1")), nil, false);
-- Hide status dialog
StatusDlg.Hide();
end
end
http://img823.imageshack.us/img823/8853/35854115.jpg
وهكذا يصبح الشكل النهائي
http://img717.imageshack.us/img717/4927/19153065.jpg
وفي النهاية نضغط F5 للمعاينة والتجربة
وللإفادة الأكثر تم رفع الملف المشروح عليه مفتوح المصدر
للتحميل
http://img31.imageshack.us/img31/2525/6463dba45d.gif (http://www.mediafire.com/?lxeed0o9dcw3ne8)
وفي النهاية ارجوا ان اكون قد وفت في الشرح
فإن صح فمن الله وإن خطأ فمن نفسي والشيطان
ولا تنسونا من صالح دعائكم
مرفق الشرح في كتاب الكترونى
http://ahmedreda89.googlepages.com/Salam2.png
درس عمل برنامج ضغط الملفات
**********
سوف نشرح اليوم درس جميل وهو عمل برنامج لضغط الملفات وتشفيرها شبيه ببرنامج Winzip وغيره من برامج ضغط الملفات فالطريقة سهله وممتعه وتريد قليل من التركز فقط .
**********
نبدأ باسم الله
أولاً نفتح مشروع جديد ونختار خلفية أولون علي اختيارك :
http://img525.imageshack.us/img525/7658/001hbh.jpg
ثانياً نقوم بإدراج 4 أزرار ونسميها كالتالي:
1- إضافة ملف
2- إضافة مجلد
3- حــــــــــذف
4- حــذف الكل
http://img825.imageshack.us/img825/1818/75795355.jpg
1- ( إضافة ملف)
دبل كلك علي زر إضافة ملف ثم ندرج الطود التالي:
-- Display file browse dialog
fAdd = Dialog.FileBrowse(true, "Add File...", _DesktopFolder, "All Files (*.*)|*.*|", "", "", false, true);
if fAdd[1] ~= "CANCEL" then
-- Split file path
sFile = String.SplitPath(fAdd[1]);
-- Add file to listbox
ListBox.AddItem("ListBox1", sFile.Filename..sFile.Extension, fAdd[1]);
end
http://img156.imageshack.us/img156/7544/14283305.jpg
2- (إضافة مجلد)
دبل كلك علي زر إضافة مجلد ثم ندرج الكود التالي:
-- Display folder browse dialog
folAdd = Dialog.FolderBrowse("Add File(s) From Folder", _DesktopFolder);
if folAdd ~= "CANCEL" then
-- Set file type(s)
tbSearchFiles = {"*.*"};
for index,type in tbSearchFiles do
-- Collect file(s) in folder
file = File.Find(folAdd, type, false, false, nil);
if file ~= nil and file ~="CANCEL" then
for j,file_path in file do
-- Split file path
sFile = String.SplitPath(file_path);
-- Add file to listbox
ListBox.AddItem("ListBox1", sFile.Filename..sFile.Extension, file_path);
end
end
end
end
http://img703.imageshack.us/img703/645/23000257.jpg
3- ( حــــذف)
دبل كلك علي زر حذف ثم ندرج الكود التالي:
lSelected = ListBox.GetSelected("ListBox1");
if (lSelected) then
-- Remove selected from listbox
ListBox.DeleteItem("ListBox1", lSelected[1]);
end
http://img821.imageshack.us/img821/3330/49331896.jpg
4- ( حذف الكل)
دبل كلك زر حذف الكل ثم ندرج الكود التالي:
-- Delete all items from listbox
ListBox.DeleteItem("ListBox1", -1);
http://img203.imageshack.us/img203/9706/47825600.jpg
ثم نقوم بإضافة عنصرين :
: ListBox وهو لعرض أسماء الملفات بداخله
Input: لتشفير الملف المضغوط بباسوورد كالتالي :
http://img13.imageshack.us/img13/2848/89896573.jpg
ثم نختار من Project ثم Global Functions كما في الصور التالية:
http://img828.imageshack.us/img828/2333/14407994.jpg
ونقوم بإدراج الكود التالي:
function QueryAllowProjectClose() --this function will be called when the program is exiting
confirmation = Dialog.Message("رسالة تأكيد?", "هل تود بالفعل الخروج من البرنامج?", MB_YESNO, MB_ICONEXCLAMATION, MB_DEFBUTTON1);
if confirmation == 6 then
-- The yes button was pressed, allow program to close (return true)
return true;
else
-- The yes button was NOT pressed, do NOT allow the program to close (Return false)
return false;
end
end
http://img148.imageshack.us/img148/111/31175699.jpg
وأخيراً وليس أخراً نقوم بإدراج زر ونسميه (إبدا الضغط) وشرحة هو لضغط الملف بالإضافة لخروج نافذة تحديد مكان حفظ الملف بعد الضغط
دبل كلك الزر ثم ندرج الكود التالي:
-- Count listbox items (file(s) to add to zip)
tFiles = ListBox.GetCount("ListBox1");
if tFiles == 0 then
-- Display error message
Dialog.Message("خطأ", "لا يوجد ملف في مريع القائمة الرجاء الضغط على اضافة ملف .", MB_OK, MB_ICONINFORMATION);
else
-- Display save zip file as... dialog
sDia = Dialog.FileBrowse(false, "Save Zip File As...", _DesktopFolder, "Zip File (*.zip)|*.zip|", "", "zip", false, false);
if sDia[1] ~= "" and sDia[1] ~= "CANCEL" then
-- Create a table containing files to add to zip
tb_Files = {}
for i=1, tFiles do
tFile = ListBox.GetItemData("ListBox1", i);
Table.Insert(tb_Files, i, tFile);
end
-- Show status dialog
StatusDlg.Show(MB_ICONNONE, false);
-- Add files to zip
Zip.Add(sDia[1], tb_Files, true, Input.GetText("Input1"), ComboBox.GetItemData("ComboBox1", ComboBox.GetSelected("ComboBox1")), nil, false);
-- Hide status dialog
StatusDlg.Hide();
end
end
http://img823.imageshack.us/img823/8853/35854115.jpg
وهكذا يصبح الشكل النهائي
http://img717.imageshack.us/img717/4927/19153065.jpg
وفي النهاية نضغط F5 للمعاينة والتجربة
وللإفادة الأكثر تم رفع الملف المشروح عليه مفتوح المصدر
للتحميل
http://img31.imageshack.us/img31/2525/6463dba45d.gif (http://www.mediafire.com/?lxeed0o9dcw3ne8)
وفي النهاية ارجوا ان اكون قد وفت في الشرح
فإن صح فمن الله وإن خطأ فمن نفسي والشيطان
ولا تنسونا من صالح دعائكم
مرفق الشرح في كتاب الكترونى