ثامر أبو بلقيس
18-07-2015, 12:57 AM
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
بافتراض أن في مجلد الــ audio مثلا يوجد 286 ملفا صوتيا بصيغة
Mp3 تمثل آيات سورة البقرة كمثال من الآية 1 إلى غاية 286 بهذه التسميات
أردنا دمجها مع بعض لتصبح ملفا واحد لسورة البقرة أو دمج جزء منها يتحقق ذلك بتحديد قيمة البداية و النهاية
في دالة التكرار و التي يمكن استغلالها فيما بعد لتكرار الآيات بكل سهولة ما دام تم الحصول على الملف مجمعا
من ... الى.....
-------------------------------------------------------
سنعتمد على التعليمة os لكن سيعترضنا مشكل و هو الترتيب العددي فالملفات اذ كانت أقل من تسعة لن يحدث مشكل
لكن إذ تجاوز الـ 9 سيحدث دمج خاطئ
حيث سيدمج الملف 1 ثم 10 ...... الخ
--------------------------------------------
لذلك و قبل إجراء عملية الدمج نجري نقل و إعادة تسميات للملفات لتحقق دمجا مرتبا وذلك باستعمال الأرقام و الحروف وبعد إنهاء العملية
نحذف هذه الملفات الجديدة .
---------------------------------------------------------------
و بحكم أن التعليمة os سنوظفها للتعامل مع موجة أوامر وجب في مثل هكذا
مشاريع جعل البرنامج مسؤولا عدا الـ xp
الآن ضع ملفات صوتية في مجلد الـ audio ضف زرا في التجميعية
أكتب فيه :
---- مسح كل الملفات الصوتية وفق هذا المسار عند بدء عملية جديدة
File.Delete(_SourceFolder.."\\*.mp3", false, false, false, nil);
-------- البحث عن الملفات الصوتية في المجلد المشار اليه في المار
ter = File.Find(_SourceFolder.."\\AutoPlay\\Audio\\", "*.mp3", false, false, nil, nil);
---- دالة تكرارية تبدأ من 1 إلى غاية عدد الملفات الصوتية الموجودة في المجلد أعلاه
for b = 1,#ter do
-------- القيام بعملية نسخ الملفات الصوتية الى المسار الموجود في أول الأكواد
File.Copy(_SourceFolder.."\\AutoPlay\\Audio\\"..b..".mp3",_SourceFolder, true, true, false, true, nil);
------ يتم توزرع اعادة تسمية الملفات الصوتية بطريقة تخدم عملية الدمج المنتظم وفق الملفات الأصلية
if b<=9 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\1a"..b..".mp3");
elseif b>=10 and b<=19 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\2a"..b..".mp3");
elseif b>=20 and b<=29 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\3a"..b..".mp3");
elseif b>=30 and b<=39 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\4a"..b..".mp3");
elseif b>=40 and b<=49 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\5a"..b..".mp3");
elseif b>=50 and b<=59 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\6a"..b..".mp3");
elseif b>=60 and b<=69 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\7a"..b..".mp3");
elseif b>=70 and b<=79 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\8a"..b..".mp3");
elseif b>=80 and b<=89 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\9a"..b..".mp3");
elseif b>=90 and b<=99 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\a"..b..".mp3");
elseif b>=100 and b<=109 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\b"..b..".mp3");
elseif b>=110 and b<=119 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\c"..b..".mp3");
elseif b>=120 and b<=129 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\d"..b..".mp3");
elseif b>=130 and b<=139 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\e"..b..".mp3");
elseif b>=140 and b<=149 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\f"..b..".mp3");
elseif b>=150 and b<=159 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\g"..b..".mp3");
elseif b>=160 and b<=169 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\h"..b..".mp3");
elseif b>=170 and b<=179 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\i"..b..".mp3");
elseif b>=180 and b<=189 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\j"..b..".mp3");
elseif b>=190 and b<=199 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\k"..b..".mp3");
elseif b>=200 and b<=209 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\l"..b..".mp3");
elseif b>=210 and b<=219 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\m"..b..".mp3");
elseif b>=220 and b<=229 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\n"..b..".mp3");
elseif b>=230 and b<=239 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\o"..b..".mp3");
elseif b>=240 and b<=249 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\p"..b..".mp3");
elseif b>=250 and b<=259 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\q"..b..".mp3");
elseif b>=260 and b<=269 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\r"..b..".mp3");
elseif b>=270 and b<=279 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\s"..b..".mp3");
elseif b>=280 and b<=289 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\t"..b..".mp3");
end
end
----- محتوى موجة أوامر دورها دمج الملفات كملف واحد ويمكن التحكم في اللاحقة
n = [[
copy /b *.mp3 belkiss.mp3
]]
--- استغلال التغليمة os
os.execute (n)
----- الملف المدمج الناتج يتم نسخه الى سطح المكتب
File.Copy(_SourceFolder.."\\belkiss.mp3", _DesktopFolder.."\\belkiss.mp3", true, true, false, true, nil);
----- ثم مسح للملفات الجديدة لاننا انهينا الدمج و ضار الملف جاهزا
File.Delete(_SourceFolder.."\\*.mp3", false, false, false, nil);
--------------------------------------------------------------------------------
على أساس أننا نريد الدمج بدء من الملف 1 إلى غاية عدد الملفات الموجود في المجلد , و كلما كان العدد أقل كانت النتائج أسرع
-----------------------------------------------------------------------
باستغلال المقترح يمكن تحقيق التكرار بكل بساطة لأنه صار بإمكانك التعامل مع ملف واحد فقط لتكرره بعدد المرات التي تريد .. فقط .
السلام عليكم ورحمة الله وبركاته
بافتراض أن في مجلد الــ audio مثلا يوجد 286 ملفا صوتيا بصيغة
Mp3 تمثل آيات سورة البقرة كمثال من الآية 1 إلى غاية 286 بهذه التسميات
أردنا دمجها مع بعض لتصبح ملفا واحد لسورة البقرة أو دمج جزء منها يتحقق ذلك بتحديد قيمة البداية و النهاية
في دالة التكرار و التي يمكن استغلالها فيما بعد لتكرار الآيات بكل سهولة ما دام تم الحصول على الملف مجمعا
من ... الى.....
-------------------------------------------------------
سنعتمد على التعليمة os لكن سيعترضنا مشكل و هو الترتيب العددي فالملفات اذ كانت أقل من تسعة لن يحدث مشكل
لكن إذ تجاوز الـ 9 سيحدث دمج خاطئ
حيث سيدمج الملف 1 ثم 10 ...... الخ
--------------------------------------------
لذلك و قبل إجراء عملية الدمج نجري نقل و إعادة تسميات للملفات لتحقق دمجا مرتبا وذلك باستعمال الأرقام و الحروف وبعد إنهاء العملية
نحذف هذه الملفات الجديدة .
---------------------------------------------------------------
و بحكم أن التعليمة os سنوظفها للتعامل مع موجة أوامر وجب في مثل هكذا
مشاريع جعل البرنامج مسؤولا عدا الـ xp
الآن ضع ملفات صوتية في مجلد الـ audio ضف زرا في التجميعية
أكتب فيه :
---- مسح كل الملفات الصوتية وفق هذا المسار عند بدء عملية جديدة
File.Delete(_SourceFolder.."\\*.mp3", false, false, false, nil);
-------- البحث عن الملفات الصوتية في المجلد المشار اليه في المار
ter = File.Find(_SourceFolder.."\\AutoPlay\\Audio\\", "*.mp3", false, false, nil, nil);
---- دالة تكرارية تبدأ من 1 إلى غاية عدد الملفات الصوتية الموجودة في المجلد أعلاه
for b = 1,#ter do
-------- القيام بعملية نسخ الملفات الصوتية الى المسار الموجود في أول الأكواد
File.Copy(_SourceFolder.."\\AutoPlay\\Audio\\"..b..".mp3",_SourceFolder, true, true, false, true, nil);
------ يتم توزرع اعادة تسمية الملفات الصوتية بطريقة تخدم عملية الدمج المنتظم وفق الملفات الأصلية
if b<=9 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\1a"..b..".mp3");
elseif b>=10 and b<=19 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\2a"..b..".mp3");
elseif b>=20 and b<=29 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\3a"..b..".mp3");
elseif b>=30 and b<=39 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\4a"..b..".mp3");
elseif b>=40 and b<=49 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\5a"..b..".mp3");
elseif b>=50 and b<=59 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\6a"..b..".mp3");
elseif b>=60 and b<=69 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\7a"..b..".mp3");
elseif b>=70 and b<=79 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\8a"..b..".mp3");
elseif b>=80 and b<=89 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\9a"..b..".mp3");
elseif b>=90 and b<=99 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\a"..b..".mp3");
elseif b>=100 and b<=109 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\b"..b..".mp3");
elseif b>=110 and b<=119 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\c"..b..".mp3");
elseif b>=120 and b<=129 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\d"..b..".mp3");
elseif b>=130 and b<=139 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\e"..b..".mp3");
elseif b>=140 and b<=149 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\f"..b..".mp3");
elseif b>=150 and b<=159 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\g"..b..".mp3");
elseif b>=160 and b<=169 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\h"..b..".mp3");
elseif b>=170 and b<=179 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\i"..b..".mp3");
elseif b>=180 and b<=189 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\j"..b..".mp3");
elseif b>=190 and b<=199 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\k"..b..".mp3");
elseif b>=200 and b<=209 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\l"..b..".mp3");
elseif b>=210 and b<=219 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\m"..b..".mp3");
elseif b>=220 and b<=229 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\n"..b..".mp3");
elseif b>=230 and b<=239 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\o"..b..".mp3");
elseif b>=240 and b<=249 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\p"..b..".mp3");
elseif b>=250 and b<=259 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\q"..b..".mp3");
elseif b>=260 and b<=269 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\r"..b..".mp3");
elseif b>=270 and b<=279 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\s"..b..".mp3");
elseif b>=280 and b<=289 then
File.Rename(_SourceFolder.."\\"..b..".mp3", _SourceFolder.."\\t"..b..".mp3");
end
end
----- محتوى موجة أوامر دورها دمج الملفات كملف واحد ويمكن التحكم في اللاحقة
n = [[
copy /b *.mp3 belkiss.mp3
]]
--- استغلال التغليمة os
os.execute (n)
----- الملف المدمج الناتج يتم نسخه الى سطح المكتب
File.Copy(_SourceFolder.."\\belkiss.mp3", _DesktopFolder.."\\belkiss.mp3", true, true, false, true, nil);
----- ثم مسح للملفات الجديدة لاننا انهينا الدمج و ضار الملف جاهزا
File.Delete(_SourceFolder.."\\*.mp3", false, false, false, nil);
--------------------------------------------------------------------------------
على أساس أننا نريد الدمج بدء من الملف 1 إلى غاية عدد الملفات الموجود في المجلد , و كلما كان العدد أقل كانت النتائج أسرع
-----------------------------------------------------------------------
باستغلال المقترح يمكن تحقيق التكرار بكل بساطة لأنه صار بإمكانك التعامل مع ملف واحد فقط لتكرره بعدد المرات التي تريد .. فقط .