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

مشاهدة النسخة كاملة : كيف يتم استداعاء ملفات mp3 الى ليست بوكس


محمد بن أحمد أبو حذيفة
21-02-2015, 09:42 PM
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته

اريد ان ابقي خانة اليست بوكس فارغة بدلا من الكتابه فيها
لكن عند تشغيل الاسطوانة يتم استدعاء الملفات من الملف المو جود في الاوديو رقم 1 باسمه

المف مرفق

http://www.4shared.com/rar/I2bkLA1yba/12_online.html

ياسرهتهت
22-02-2015, 02:14 AM
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
اخي الكريم
طلبك علي حسب فهمي بسيط
ضع ملفات MP3 في مجلد Audio او أي مجلد وانتبه لاسم المجلد

في حدث On Show في الصفحة ضع الكود التالي

tbl_MP3 = File.Find("AutoPlay\\Audio", "*.mp3", false, false, nil, nil);
num_MP3 = Table.Count(tbl_MP3);
for count=1,num_MP3 do
result = ListBox.AddItem("ListBox1", "Song "..count, tbl_MP3[count]);
end

------------------------------
طبع Song اسم الملف يمكنك تغيره
وتكون اسامي الملفات عبارة عن اسم الملف والرقم
-----------------------------------------

وفي ListBox1 في حدث On Select ضع الكود التالي


num = ListBox.GetSelected("ListBox1");
SONG = ListBox.GetItemData("ListBox1", num[1]);
MediaPlayer.Load("Plugin1", SONG);

--------------------------------------------------------------

ستظهر لك ملفات MP3 في ListBox1 وعند التحديد ستشتغل في MediaPlayer

وهذا ملف مفتوح


http://www.gulfup.com/?NOGqYg



--------------------------------
موفق بإذن الله ... لك مني أجمل تحية .

محمد بن أحمد أبو حذيفة
22-02-2015, 07:15 AM
الفكرة جيدة بارك الله فيك
لكن الاسم الذي يظهر في اليست بوكس ليس هو نفسه في المجلد في الاوديو
المطلوب هو ان يستدعي الملف باسمه كما هو
بار كالله فيك

ياسرهتهت
22-02-2015, 11:35 AM
بسم الله الرحمن الرحيم
احذف الكود السابق في في حدث On Show واستبدله

tbSearchFiles = {"*.mp3"};
for index,type in pairs (tbSearchFiles) do
file = File.Find("AutoPlay\\Audio", "*.mp3", false, false, nil, nil);
for j,file_path in pairs (file) do
tbFilePath = String.SplitPath(file_path);
sFile = tbFilePath.Filename..tbFilePath.Extension;

result = ListBox.AddItem("ListBox1", sFile, file_path);
end
end

----------------------------------------------------
ان شاء الله سيحقق ما تريد

موفق بإذن الله ... لك مني أجمل تحية .

ياسرهتهت
22-02-2015, 12:01 PM
بسم الله الرحمن الرحيم
ويمكن عدم ظهور الامتداد ( mp3 ) بجانب اسم الملف
باستبدال
السطر

sFile = tbFilePath.Filename..tbFilePath.Extension;

بــــــــــــــــــــــــ ـــ

sFile = tbFilePath.Filename ;

سيظهر فقط اسم الملف بدون الامتداد
--------------------------------------------
هذا حدود معلوماتي البسيطة جدا
في انتظار دخول الاساتذا الكرام لتصحيح والتعديل والمساعدة
موفق بإذن الله ... لك مني أجمل تحية .

كاو دهوكي
22-02-2015, 12:10 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية . شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

محمد بن أحمد أبو حذيفة
22-02-2015, 02:11 PM
بارك الله فيك هو المطلوب لكن ليتم قارئة الملفات الصوتية
في
MediaPlayer.Load("Plugin1", "AutoPlay\\Audio\\1\\"..tamer .."*.mp3");

الكود الصحيح هو
MediaPlayer.Load("Plugin1", "AutoPlay\\Audio\\1\\"..tamer ..".mp3");

ياسرهتهت
22-02-2015, 02:43 PM
بارك الله فيك هو المطلوب لكن ليتم قارئة الملفات الصوتية
في
MediaPlayer.Load("Plugin1", "AutoPlay\\Audio\\1\\"..tamer .."*.mp3");

الكود الصحيح هو
MediaPlayer.Load("Plugin1", "AutoPlay\\Audio\\1\\"..tamer ..".mp3");


--------------------------------------------------------------------------------------------

اخي العزيز التغير كان في حدث On Show في الصفحة

اما ListBox1 في حدث On Select ضع الكود التالي
كما هو


num = ListBox.GetSelected("ListBox1");
SONG = ListBox.GetItemData("ListBox1", num[1]);
MediaPlayer.Load("Plugin1", SONG);


--------------------------------------------------------------------

محمد بن أحمد أبو حذيفة
22-02-2015, 02:59 PM
بارك الله فيك
انا استعمل في اليست بوكس

result = ListBox.GetSelected("ListBox1");
tamer = ListBox.GetItemText("ListBox1", result[1]);
e = ListBox.GetItemData("ListBox1", result[1] );
et = ListBox.GetItemText("ListBox1", result[1]);
MediaPlayer.Load("Plugin1", "AutoPlay\\Audio\\1\\"..tamer ..".mp3");



وهو يعمل
ولكن الكود التي استعملته انت ينفع وهو اقضر وافضل

ياسرهتهت
22-02-2015, 03:11 PM
موفق بإذن الله ... لك مني أجمل تحية .
:abc_138::abc_138::abc_138:

محمد بن أحمد أبو حذيفة
22-02-2015, 03:19 PM
السلام عليكم ورحمة الله وبركاته
بارك الله فيك وجزاك كل خير

ثامر أبو بلقيس
22-02-2015, 09:05 PM
بسم الله الرحمن الرحيم
احذف الكود السابق في في حدث On Show واستبدله

tbSearchFiles = {"*.mp3"};
for index,type in pairs (tbSearchFiles) do
file = File.Find("AutoPlay\\Audio\\1", "*.mp3", false, false, nil, nil);
for j,file_path in pairs (file) do
tbFilePath = String.SplitPath(file_path);
sFile = tbFilePath.Filename..tbFilePath.Extension;

result = ListBox.AddItem("ListBox1", sFile, file_path);
end
end

----------------------------------------------------
ان شاء الله سيحقق ما تريد

موفق بإذن الله ... لك مني أجمل تحية .

أحسنت و بارك الله فيك أخي ياسر
قد تتخلى عن السطر الاول و احدى الدوال التكرارية
ListBox.DeleteItem("ListBox1", LB_ALLITEMS);
file = File.Find("AutoPlay\\Audio\\1", "*.mp3", false, false, nil, nil);
for j,file_path in pairs (file) do
tbFilePath = String.SplitPath(file_path);
sFile = tbFilePath.Filename..tbFilePath.Extension;
result = ListBox.AddItem("ListBox1", sFile, file_path);
end

و اذ أحببت التنويع استغل دوال الــ lua المخصصة لذات الغرض
الدالة المشار اليها تستدعي الدراسة و الوقوف عندها كثيرا
موفق :abc_138:
ListBox.DeleteItem("ListBox1", LB_ALLITEMS);
file = File.Find("AutoPlay\\Audio\\1", "*.mp3", false, false, nil, nil);
for j,file_path in pairs (file) do
All,a,b = string.match(file_path, "(.-)([^\\]-([^\\%.]+))$")
result = ListBox.AddItem("ListBox1", a, All..a);
end

ياسرهتهت
22-02-2015, 10:42 PM
بسم الله الرحمن الرحيم
شكرا لــــــــــــــــــــــــ ك
:abc_152: الكــ أسـ أبوبلقيــس ـتادي ـــــريم :abc_152:

علي هذه الملاحظات والتوجهات
ولكن ماهو المصدر لفهم هذه الدوال ( الــ lua )
----All,a,b = string.match(file_path, "(.-)([^\\]-([^\\%.]+))$")
result = ListBox.AddItem("ListBox1", a, All..a);
end
--------------

فانا لم افهم هذا الجزء من الكود ولا اعرف معني الاختصارات و والرموز؟
اقصد هل يوجد كتاب او ملف يشرحها ؟

شـكــ وبارك الله فيك ـــرا لك
لك مني أجمل تحية .
:abc_138::abc_138:

ثامر أبو بلقيس
22-02-2015, 11:12 PM
بالمثال يتضح المقال
و سأحاول في كل مناسبة سانحة بتزويدك بمثال يرسخ
التعامل مع هكذا دوال ---- البحث و التجربة و المقارنة هما زادك لفهم الدوال التي لم تدرج في الاوتوبلاي ---
حول مسار بحثك بزاوية 180 درجة نحو ما ذكرت لك ستختصر الكثير من الوقت في مسارك الاحترافي
---------------------------------------------------------
بخصوص الدالة التي تحدثت عنها فإنه تعتمد على تقسيم المسار إلى
أجزاء تتحكم فيه
نأخذ هذا المثال
ليكن لدينا هذا المسار مثلا
AutoPlay\\Audio\\song.mp3

نعطيه ثلاث أبعاد إن صح التعبير
** - الأول لاستخلاص المسار باعتماد \ كفاصل أي سيتخلص القرص و المجلدات
فيكون الكود كالتالي :
All,a,b = string.match("AutoPlay\\Audio\\song.mp3", "(.-)([^\\]-([^\\%.]+))$")
result = Dialog.Message("Notice",All);
الناتج : AutoPlay\Audio\
** - البعد الثاني و المسمى a اذا أعلنا عنه فانه يستخرج الملف بلاحقته
All,a,b = string.match("AutoPlay\\Audio\\song.mp3", "(.-)([^\\]-([^\\%.]+))$")
result = Dialog.Message("Notice",a);
الناتج : song.mp3
** - اذ أردنا هنا استبعاد اللاحقة و كتابة فقط اسم الملف سأظطر لتعديل طفيف في الكود
All,a,b = string.match("AutoPlay\\Audio\\song.mp3", "(.-)([^\\]-([^\\%.]+))$")
name = string.match (a, ".+%.")
result = Dialog.Message("Notice",name);
** اذ أردنا استخلاص اللاحقة واضح جدا هي آخر تعبير b
All,a,b = string.match("AutoPlay\\Audio\\song.mp3", "(.-)([^\\]-([^\\%.]+))$")
result = Dialog.Message("Notice",b);

هذا فقط للتوضيح و امكانية الدالة و الاستخلاصات المفيدة كثيرة جدا :abc_138:
وسأعطيك على نفس الصفحة استعمال آخر للدالة لاحدى تساؤلاتك السابقة

ثامر أبو بلقيس
22-02-2015, 11:26 PM
و حتى لا يبق الكود موجه فقط للتعامل مع المسارات

كنت يوما تبحث عن تجزئة رقم وفق علامة
هنااا (http://www.abc4web.net/vb/showthread.php?t=29732)

هاك حلا آخر باستعمال هذه الدالة
_,x,y = string.match (tostring ("1.40"), "^([%+%-]?)(%d*)%.?(.*)$")
Dialog.Message("Notice",x);
Dialog.Message("Notice",y);

موفق :abc_138:
لاتتوقف عند اكواد البرنامج فتتوقف طموحك البرمجية معها :abc_138:

ياسرهتهت
23-02-2015, 12:13 AM
بسم الله الرحمن الرحيم

استاذي العزيز
فالكود الخاص بالمسار اريد معرفة معني الارقام التي اضعها

حتي اتمكن من فهم الكود تماما

All,a,b = string.match("AutoPlay\\Audio\\song.mp3", "(.-)([^\\]-([^\\%.]+))$")



لو جزئ الكود بهذا الشكل ماذا تعني هذة الارقام

string.match---------------------------(1)
-------------------نستطيع ان نقول ان دالة
-------------------(string.match)
-------------------هي دالة خاصة بالتجزئة
----------على اساس هذه العلامات
---------- ماذا تعني هذه الرموز

"(.-)([^\\]-([^\\%.]+))$"
(.-)------------------------------------------(2)
[^\\]-----------------------------------------(3)
([^\\%.]+)------------------------------------(4)
$---------------------------------------------(5)

استطيع ان استوعب ان التجزئة تمت على اساس العلامة \\
وان عملية الجمع لعلامة الدولار $ في اخر الكود
قد تكون بدل ( String.ToNumber )
ولكن احتاج لفهم ماذا تعني هذه الارقام
قد يفهم هذه الرموز المبرمجين والدارسين للبرمجة ؟ لكن انا هاوي :abc_102:

شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .
:abc_138::abc_138::abc_138:

ياسرهتهت
23-02-2015, 02:16 AM
و حتى لا يبق الكود موجه فقط للتعامل مع المسارات

كنت يوما تبحث عن تجزئة رقم وفق علامة
هنااا (http://www.abc4web.net/vb/showthread.php?t=29732)

هاك حلا آخر باستعمال هذه الدالة
_,x,y = string.match (tostring ("1.40"), "^([%+%-]?)(%d*)%.?(.*)$")
Dialog.Message("Notice",x);
Dialog.Message("Notice",y);

موفق :abc_138:
لاتتوقف عند اكواد البرنامج فتتوقف طموحك البرمجية معها :abc_138:

================================================== ======

بسم الله الرحمن الرحيم
كود ممتاز ورائع لكنه صعب الفهم :abc_102:
حولت تغير العلامة وفهم الكود ولكككككن:abc_085:

================================================== ===
وفي نفس موضوع التجزئة انت وضعت هذا الكود (( الخطير ))

s =Input.GetText("Input1");
for w in string.gfind(s, "%w+") do
Dialog.Message("Notice", ""..w);
end


وهو يتعامل مع النصوص والارقام ويجزئ علي اساس جميع العلامات وحتي الفراغ
ومسار مثل هذا
AutoPlay\\Audio\\song.mp3
سيتم تجزئته الي الي اربع نتائج

AutoPlay
Audio
song
mp3
وستظهر في الديلوج

لقد قضيت وقت طويل مع هذا الكود لفهمه
وكنت اعتقد ان ( w) مجرد تسمية لمتغير في التكرار مثل ما نسمي ( x،jوغيرها )
ووجدت ان السر كله في ( w) تغير الحرف يغير الكود
فاستخدام الحرف ( a) يعطيك الحرف الاول من التجزئة
تغير الحرف ( w) الي ( W ) يعطيك علامات والفرغات
ازالت علامة (+) من جانب (w) تعطيك التجزئة الاخير
......الخ لقد جربت كل الحرف
وهو كود خطير بالفعل.....
----------------------------------
السؤال المهم / استاذي الفاضل
كيف احصل علي احد النتائج من هذا الكود في انبت(Input)

اقصد لو طبقنا الكود علي المسار

AutoPlay\\Audio\\song.mp3
سيتم تجزئته الي الي اربع نتائج

AutoPlay
Audio
song
mp3
وستظهر في الديلوج

كيف احصل علي (song ) في (Input )
فمحاولت وضع الناتج في (Input )

Input.SetText("Input2",""..w );

تعطي فقط الاخير (mp3 )

----

Input.SetText("Input2",""..w.."\r\n");

:abc_102::abc_102::abc_102:
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .



:abc_138::abc_138::abc_138:

فرح صالحي
23-02-2015, 08:36 AM
السلام عليكم ورحمة الله وبركاته
اسئلتك اخي ياسر تشرح الموضوع تشريحا (يبدو لي كأنك طبيب جراح )
واصل على هذا المنوال انا اتابع معك لعلني آخذ ولو القليل .
موفق بإذن الله ..:abc_152:. لك مني أجمل تحية .

ثامر أبو بلقيس
23-02-2015, 10:40 AM
جيد
01 - استعمل الحيلة الدالة لا تتوفر على عداد وفره لها x
02 - الاستخراج الذي يحدث التقطه وضمه في مصفوفة
03 - الان من المصفوفة يمكنك استدعاء ماتريد
s ="AutoPlay\\Audio\\song.mp3"
x=1
my_table = {};
for w in string.gfind(s, "%w+") do
Table.Insert(my_table, x, w);
x=x+1
end
Input.SetText("Input2", my_table[3]);

ياسرهتهت
23-02-2015, 11:08 AM
السلام عليكم ورحمة الله وبركاته
اسئلتك اخي ياسر تشرح الموضوع تشريحا (يبدو لي كأنك طبيب جراح )
واصل على هذا المنوال انا اتابع معك لعني آخذ ولو القليل .
موفق بإذن الله ..:abc_152:. لك مني أجمل تحية .
------------------------------------------------------------------
وعليكم السلام ورحمة الله وبركاته
تا بع اخي فرح وحاول الاستفسار عن أي نقطة
وحرص على الاستفادة من هذا الكنز في المعلومات والتواضع والعطاء
المتجســـــــــــــــــــ ــــــــــــــــــد في استاذنــــــــا
:abc_152: ابوبلقيس :abc_152:

موفق بإذن الله ... لك مني أجمل تحية .
:abc_152::abc_152:

ياسرهتهت
23-02-2015, 11:11 AM
جيد
01 - استعمل الحيلة الدالة لا تتوفر على عداد وفره لها x
02 - الاستخراج الذي يحدث التقطه وضمه في مصفوفة
03 - الان من المصفوفة يمكنك استدعاء ماتريد
s ="AutoPlay\\Audio\\song.mp3"
x=1
my_table = {};
for w in string.gfind(s, "%w+") do
Table.Insert(my_table, x, w);
x=x+1
end
Input.SetText("Input2", my_table[3]);

-----------------------------------------------------------------------------

بسم الله الرحمن الرحيم

:abc_052:

شكراً استاذنا الكريم
:abc_138::abc_138::abc_138:

ثامر أبو بلقيس
23-02-2015, 11:15 AM
بالعكس أخي ياسر منكم نستفيد ونتعلم و ليس عيبا أو انتقاصا أن نقول لا نعرف الان
حتى نصل فيما بعد
موفقين إن شاء الله :abc_138:

محمد بن أحمد أبو حذيفة
23-02-2015, 12:13 PM
بارك الله فيكم جميعا
هذا هو التعاون الحقيقي

هانى القاضى
03-11-2015, 09:04 AM
بارك الله فيكم جميعا

عبدوعزيز
01-02-2016, 09:14 AM
مشكووووووووووووووووووور

عظيمه
26-02-2016, 07:12 AM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

عظيمه
26-02-2016, 03:48 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .
موفق بإذن الله ... لك مني أجمل تحية .

سمسم يو
01-02-2020, 12:25 AM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .