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

مشاهدة النسخة كاملة : استفســـــار حـــــول ( File.Find ) ؟


ياسرهتهت
31-12-2016, 12:32 AM
بسم الله الرحمن الرحيم

لايجاد الملفات النصية في مجلد

Browse = Dialog.FolderBrowse("Please select a folder:", _WindowsFolder);
if Browse~="CANCEL" then
Find = File.Find(Browse, "*.txt", false, false, nil, nil);
if Find~=nil then
for i, s in pairs(Find) do
ListBox.AddItem("ListBox1", s, "");
end
end
end

----
لو اردت البحث عن التكست والبيداف ( txt ، pdf )


http://www.abc4web.net/vb/images/icons/abc4web_ico_02.gif ولماذا خطا في حالة كتابة الكود بهذا الشكل؟

Browse = Dialog.FolderBrowse("Please select a folder:", _WindowsFolder);
tip = {"*.txt","*.pdf"}
if Browse~="CANCEL" then
Find = File.Find(Browse, tip[i], false, false, nil, nil);
if Find~=nil then
for i, s in pairs(Find) do
ListBox.AddItem("ListBox1", s, "");
end
end
end
-----
وعند الكتاية بهذا الشكل

Browse = Dialog.FolderBrowse("Please select a folder:", _WindowsFolder);
file_txt = File.Find(Browse, "*.txt", false, false, nil);
file_pdf = File.Find(Browse, "*.pdf", false, false, nil);
tip = {file_txt, file_pdf};
for k in pairs(tip) do
for j,file_path in pairs(tip[k]) do
ListBox.AddItem("ListBox1", String.SplitPath(file_path).Filename, file_path);
end
end


يعمل بشكل جيد
---
http://www.abc4web.net/vb/images/icons/abc4web_ico_02.gif السؤال ما هو الكود المثالي لتنفيذ هذه العملية ؟


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

عبد الهادي بهاب
31-12-2016, 08:03 PM
الكود جميل جداو عملي و مدام يؤدي الدور المنوط به
فاين المشكل ؟؟

عبد الهادي بهاب
31-12-2016, 08:10 PM
تعديل الكود الاول



Browse = Dialog.FolderBrowse("Please select a folder:", _WindowsFolder);
tip = {"*.txt","*.pdf"}
if Browse~="CANCEL" then
for i= 1,#tip do
Find = File.Find(Browse, tip[i], false, false, nil, nil);
if Find~=nil then
for i, s in pairs(Find) do
ListBox.AddItem("ListBox1", String.SplitPath(s).Filename, s);
end
end
end
end


المشكل في هذا السطر فقط


for i= 1,#tip do

ياسرهتهت
31-12-2016, 08:51 PM
تعديل الكود الاول



Browse = Dialog.FolderBrowse("Please select a folder:", _WindowsFolder);
tip = {"*.txt","*.pdf"}
if Browse~="CANCEL" then
for i= 1,#tip do
Find = File.Find(Browse, tip[i], false, false, nil, nil);
if Find~=nil then
for i, s in pairs(Find) do
ListBox.AddItem("ListBox1", String.SplitPath(s).Filename, s);
end
end
end
end


المشكل في هذا السطر فقط


for i= 1,#tip do

---------------------------------
بسم الله الرحمن الرحيم
شكرا لك اخي المحترف
وبارك الله فيك

كنت اعتقد ان i تعتبر معرفة على انها تاخذ قيم 1 2 3 ......الخ حسب عدد عناصر المجموعة

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

ياسرهتهت
31-12-2016, 08:54 PM
الكود جميل جداو عملي و مدام يؤدي الدور المنوط به
فاين المشكل ؟؟

----------------
بسم الله الرحمن الرحيم
لا يوجد مشكلة اخي العزيز
فقط حب المعرفة والتعلم :abc_091:
موفق بإذن الله ... لك مني أجمل تحية .
:abc_152::abc_152:

ياسرهتهت
31-12-2016, 09:17 PM
بسم الله الرحمن الرحيم

اذا اردت استدعاء كل نوع لليست بكس منفصل
هل توجد صيغة افضل من هذا الكود لعمل ذالك

Browse = Dialog.FolderBrowse("Please select a folder:", _WindowsFolder);
tip = {"*.txt","*.pdf"}
if Browse~="CANCEL" then
ListBox.DeleteItem("ListBox1", -1);
Find1 = File.Find(Browse, tip[1], false, false, nil, nil);
Find2 = File.Find(Browse, tip[2], false, false, nil, nil);
if Find1~=nil and Find2~=nil then
for i, s in pairs(Find1) do
ListBox.AddItem("ListBox1", s, "");
end
for j, k in pairs(Find2) do
ListBox.AddItem("ListBox2", k, "");
end


end
end


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

عبد الهادي بهاب
31-12-2016, 11:29 PM
بسم الله الرحمن الرحيم

اذا اردت استدعاء كل نوع لليست بكس منفصل
هل توجد صيغة افضل من هذا الكود لعمل ذالك

Browse = Dialog.FolderBrowse("Please select a folder:", _WindowsFolder);
tip = {"*.txt","*.pdf"}
if Browse~="CANCEL" then
ListBox.DeleteItem("ListBox1", -1);
Find1 = File.Find(Browse, tip[1], false, false, nil, nil);
Find2 = File.Find(Browse, tip[2], false, false, nil, nil);
if Find1~=nil and Find2~=nil then
for i, s in pairs(Find1) do
ListBox.AddItem("ListBox1", s, "");
end
for j, k in pairs(Find2) do
ListBox.AddItem("ListBox2", k, "");
end


end
end


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

اهلا استاذ ياسر .....قد مضى من عمرك سنة اخرى ....... و بدلك نحن نقتربب الكثر من اجالنا جعلها الله في طريق الخير ورضا ربنا

تعديل على الكود الاول .....لاحظ سنفترض اننا نبحث عن 5 انواع من الملفات ........و بالتالي 5 ليسبوكسات ........فيكون الكود فقط بتغيير اليسبوكس1 الى اليسبوكس..i

Browse = Dialog.FolderBrowse("Please select a folder:", _WindowsFolder);
tip = {"*.txt","*.pdf","*.jpg","*.mp3","*.doc"}
if Browse~="CANCEL" then
for i= 1,#tip do
Find = File.Find(Browse, tip[i], false, false, nil, nil);
if Find~=nil then
for ii , s in pairs(Find) do
ListBox.AddItem("ListBox"..i, String.SplitPath(s).Filename, s);
end
end
end
end

ياسرهتهت
31-12-2016, 11:48 PM
بسم الله الرحمن الرحيم
بالفعل اخي المحترف السنين تمر بسرعة البرق

اللهم حسن الخاتمة

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

عبود عبود
01-01-2017, 02:11 PM
السلام عليكم ورحمة الله وبركاته
ليس مطلوبا إجراء عمليتين بحث وحلقتين تكراريتين
كان من الممكن إجراء عملية البحث عن جميع الملفات بإستخدام *.* وفى الحلقة التكرارية يتم مقارنة النتيجة إذا كان الملف إمتدادة تكست أو بى دى إف

فيتم تنفيذ المطلوب

ياسرهتهت
01-01-2017, 04:18 PM
السلام عليكم ورحمة الله وبركاته
ليس مطلوبا إجراء عمليتين بحث وحلقتين تكراريتين
كان من الممكن إجراء عملية البحث عن جميع الملفات بإستخدام *.* وفى الحلقة التكرارية يتم مقارنة النتيجة إذا كان الملف إمتدادة تكست أو بى دى إف

فيتم تنفيذ المطلوب
----------------------------------
بسم الله الرحمن الرحيم

مرحبا بك استاذ عبود
كيف يتم مقارنة النتيجة إذا كان الملف إمتدادة تكست أو بى دى إف ؟

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

عبود عبود
01-01-2017, 04:43 PM
----------------------------------
بسم الله الرحمن الرحيم

مرحبا بك استاذ عبود
كيف يتم مقارنة النتيجة إذا كان الملف إمتدادة تكست أو بى دى إف ؟

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

--
Browse = Dialog.FolderBrowse("Please select a folder:", _WindowsFolder);
if Browse~="CANCEL" then
Find = File.Find(Browse, "*.*", false, false, nil, nil);
if Find~=nil then
for i, s in pairs(Find) do
if String.SplitPath(s).Extension==".txt" or String.SplitPath(s).Extension==".pdf" then
ListBox.AddItem("ListBox1", s, "");
end
end
end
end

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

ياسرهتهت
01-01-2017, 05:01 PM
--
Browse = Dialog.FolderBrowse("Please select a folder:", _WindowsFolder);
if Browse~="CANCEL" then
Find = File.Find(Browse, "*.*", false, false, nil, nil);
if Find~=nil then
for i, s in pairs(Find) do
if String.SplitPath(s).Extension==".txt" or String.SplitPath(s).Extension==".pdf" then
ListBox.AddItem("ListBox1", s, "");
end
end
end
end

عملت بحث عن الكل ثم فى الحلقة وضعت له شرط إذا وجد الإمتداد تكست أو بى دى إف يعمل على الإضافة داخل الليست بوكس :abc_138:
-------------------------------
رائعا جدا استاذ عبود
بارك الله فيك
باقي جزئية في نفس الكود الذي وضعته ؟
كيف اجعل كل Extension في ليست بكس مختلف

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

عبود عبود
01-01-2017, 05:14 PM
-------------------------------
رائعا جدا استاذ عبود
بارك الله فيك
باقي جزئية في نفس الكود الذي وضعته ؟
كيف اجعل كل Extension في ليست بكس مختلف

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


النظرية فى الشرط أستاذى الفاضل
فهناك قلت للشرط إذا كان الإمتداد تكست أو بى دى إف
فكلمة أو تعبر عنها بـــ or ضمن الشرط إف

فإذا أردنا التعبير عما ذكرته لاحقا أن كل إمتداد من التكست و البى دى إف يكون على حدى فى ليست منفصل فيكون الكود بهذا الشكل :

--
Browse = Dialog.FolderBrowse("Please select a folder:", _WindowsFolder);
if Browse~="CANCEL" then
Find = File.Find(Browse, "*.*", false, false, nil, nil);
if Find~=nil then
for i, s in pairs(Find) do
if String.SplitPath(s).Extension==".txt" then
ListBox.AddItem("ListBox1", s, "");
elseif String.SplitPath(s).Extension==".pdf" then
ListBox.AddItem("ListBox2", s, "");
end
end
end
end

وهنا يأتى دور الشرط إف و إلسى إف ونستغنى عن or

ياسرهتهت
01-01-2017, 05:21 PM
بسم الله الرحمن الرحيم
شكرا جزيلا استاذ عبود
موفق بإذن الله ... لك مني أجمل تحية .
:abc_152::abc_152::abc_152:

ثامر أبو بلقيس
01-01-2017, 07:17 PM
النظرية فى الشرط أستاذى الفاضل
فهناك قلت للشرط إذا كان الإمتداد تكست أو بى دى إف
فكلمة أو تعبر عنها بـــ or ضمن الشرط إف

فإذا أردنا التعبير عما ذكرته لاحقا أن كل إمتداد من التكست و البى دى إف يكون على حدى فى ليست منفصل فيكون الكود بهذا الشكل :

--
Browse = Dialog.FolderBrowse("Please select a folder:", _WindowsFolder);
if Browse~="CANCEL" then
Find = File.Find(Browse, "*.*", false, false, nil, nil);
if Find~=nil then
for i, s in pairs(Find) do
if String.SplitPath(s).Extension==".txt" then
ListBox.AddItem("ListBox1", s, "");
elseif String.SplitPath(s).Extension==".pdf" then
ListBox.AddItem("ListBox2", s, "");
end
end
end
end

وهنا يأتى دور الشرط إف و إلسى إف ونستغنى عن or

أجدت بارك الله فيك :abc_138: