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

مشاهدة النسخة كاملة : دمج جدولين فى جدول واحد


القنـاص المصرى
12-09-2013, 03:42 AM
السلام عليكم ورحمة الله وبركاته
بسم الله الرحمن الرحيم
اخوانى عندى اسفسار بسيط جدا
اذا انا كتبت هذا الامر
file1 = File.Find("AutoPlay\\Docs\\filespack1", "*.ttf", false, false, nil, nil);
راح يحفظ جميع النواتج بالجدول هذا file1
واذا كتبت هذا الامر
file2 = File.Find("AutoPlay\\Docs\\filespack2", "*.ttf", false, false, nil, nil);
راح يحفظه ايضا بجدول file2
انا اريد دمج الاثنين فى جدول وليكن allfiles_table
بحيث اذا انا اريد استدعى الاثنين لامر واحد وليكن النسخ مثلا
اكتب
for x,y in pairs (allfiles_table) do
File.Copy(y, "C:\\All Files\\", true, true, false, true, nil);
end
وجزاكم الله كل خير

النصل القاطع
12-09-2013, 10:54 AM
انا اريد دمج الاثنين فى جدول وليكن allfiles_table


بسيطة

allfiles_table={}
allfiles_table = file1
for a,z in pairs (file2) do
Table.Insert(allfiles_table, a, z);
end

بالتوفيق

القنـاص المصرى
12-09-2013, 12:32 PM
جزاك الله كل خير اخى الغالى ولكن هناك رسالة خطأ فى الكود
وتكون فى سطر
for a,z in pairs (en_selected) do

-- First Case if User wants to setup en & ar fonts
if ar_selected == true and en_selected == true then
allfiles_table={}
allfiles_table = ar_selected
for a,z in pairs (en_selected) do
Table.Insert(allfiles_table, a, z);
end
for x,i in pairs (allfiles_table) do
ListBox.AddItem("ListBox1", i, "");
end

النصل القاطع
12-09-2013, 12:54 PM
ما نوع الخطأ ؟؟
كيف سأعالج خطأ لا أعلمه ؟؟؟

ضع صورة رسالة الخطأ

من المؤكد الخطأ ليس بالكود الذى وضعته لك

الخطأ منك و غالبا عدم تجهيز المتغيرات اللآزمة للحلقة

الدليل على سلامة وصحة و دقة الكود بنسبة 100%
جرب هذا الكود فى زر مستقل
file1 = {1,2,3,4,5}
file2 = {6,7,8,9}
allfiles_table={}
allfiles_table = file1
for a,z in pairs (file2) do
Table.Insert(allfiles_table, a, z);
end

for a,z in pairs (allfiles_table) do
result = ListBox.AddItem("ListBox1", z, z);
end

الآن سيقوم ليستبوكس 1 بعرض الأرقام من 1 إلى 9
و هو بالفعل محصلة الجدولين file1 و file2

ثانيا

أليس هذا هو كود زر تثبيت الخطوط فى مشروعك و الذى إستفسرت عنه فى إستفسار سابق ؟؟

-- معرفة اوضاع التشيك بوكس
ar_selected = CheckBox.GetChecked("ar");
en_selected = CheckBox.GetChecked("en");
os = System.GetOSName();
Fpath = Shell.GetFolder(SHF_FONTS);
-- جميع حالات الاختيارات
-- First Case if User wants to setup en & ar fonts
if ar_selected == true and en_selected == true then
Dialog.Message("Notice", "two selected", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
-- Second Case if User Wants To Setup ar fonts only
elseif ar_selected == true and en_selected == false then
fonts = File.Find("AutoPlay\\Docs\\Fonts\\Arabic", "*.ttf", false, false, nil, nil);

count = Table.Count(fonts);
Label.SetText("all", count);
total_size = 0
for i,y in pairs (fonts) do
get_size = File.GetSize(y);
total_size = total_size + get_size
end
total_size = String.GetFormattedSize(total_size, FMTSIZE_AUTOMATIC, true);
Label.SetText("sz", total_size);
------------------------------------------------------
for i,y in pairs (fonts) do
File.Copy(y, Fpath, false, false, false, true);
split = String.SplitPath(y);
System.RegisterFont(Shell.GetFolder(SHF_FONTS), split.Filename..split.Extension, true);
Label.SetText("current_num", i);
Progress.SetCurrentPos("Progress1", i * 100 / count);
end

-- Third Case if User wants to Setup en fonts only
elseif ar_selected == false and en_selected == true then
Dialog.Message("Notice", "en only selected", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
-- Last Case if User didn't Choose any font to install
elseif ar_selected == false and en_selected == false then
Dialog.Message("Notice", "no selected", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end

سنركز على ذلك الجزء العجيب جدا
ar_selected = CheckBox.GetChecked("ar");
en_selected = CheckBox.GetChecked("en");
os = System.GetOSName();
Fpath = Shell.GetFolder(SHF_FONTS);
-- جميع حالات الاختيارات
-- First Case if User wants to setup en & ar fonts
if ar_selected == true and en_selected == true then
Dialog.Message("Notice", "two selected", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);

يبدو الخطأ واضح وضوح الشمس
أنت لم تفعل أى شيى عندما يختار المستخدم تنصيب العربى و الإنجليزى معا

اللهم إلا أنك أظهرت له رسالة
ثم لم تقم بعمل أي شيئ

كيف تريد حصد قيم لم تزرعها مسبقا

و هل تعتقد أنه على المشرفين تتبع كل تساؤلاتك ليتفهموا حقيقة تساؤلك الحالى ؟؟

بعد ذلك ضع مشكلتك مكتملة و ليس كود هنا و كود هنااااااااااااك
و ضع صورة الخطأ الذى يظهر لك

القنـاص المصرى
12-09-2013, 05:08 PM
ما نوع الخطأ ؟؟
كيف سأعالج خطأ لا أعلمه ؟؟؟

ضع صورة رسالة الخطأ

من المؤكد الخطأ ليس بالكود الذى وضعته لك

الخطأ منك و غالبا عدم تجهيز المتغيرات اللآزمة للحلقة

الدليل على سلامة وصحة و دقة الكود بنسبة 100%
جرب هذا الكود فى زر مستقل
file1 = {1,2,3,4,5}
file2 = {6,7,8,9}
allfiles_table={}
allfiles_table = file1
for a,z in pairs (file2) do
Table.Insert(allfiles_table, a, z);
end

for a,z in pairs (allfiles_table) do
result = ListBox.AddItem("ListBox1", z, z);
end

الآن سيقوم ليستبوكس 1 بعرض الأرقام من 1 إلى 9
و هو بالفعل محصلة الجدولين file1 و file2

ثانيا

أليس هذا هو كود زر تثبيت الخطوط فى مشروعك و الذى إستفسرت عنه فى إستفسار سابق ؟؟

-- معرفة اوضاع التشيك بوكس
ar_selected = CheckBox.GetChecked("ar");
en_selected = CheckBox.GetChecked("en");
os = System.GetOSName();
Fpath = Shell.GetFolder(SHF_FONTS);
-- جميع حالات الاختيارات
-- First Case if User wants to setup en & ar fonts
if ar_selected == true and en_selected == true then
Dialog.Message("Notice", "two selected", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
-- Second Case if User Wants To Setup ar fonts only
elseif ar_selected == true and en_selected == false then
fonts = File.Find("AutoPlay\\Docs\\Fonts\\Arabic", "*.ttf", false, false, nil, nil);

count = Table.Count(fonts);
Label.SetText("all", count);
total_size = 0
for i,y in pairs (fonts) do
get_size = File.GetSize(y);
total_size = total_size + get_size
end
total_size = String.GetFormattedSize(total_size, FMTSIZE_AUTOMATIC, true);
Label.SetText("sz", total_size);
------------------------------------------------------
for i,y in pairs (fonts) do
File.Copy(y, Fpath, false, false, false, true);
split = String.SplitPath(y);
System.RegisterFont(Shell.GetFolder(SHF_FONTS), split.Filename..split.Extension, true);
Label.SetText("current_num", i);
Progress.SetCurrentPos("Progress1", i * 100 / count);
end

-- Third Case if User wants to Setup en fonts only
elseif ar_selected == false and en_selected == true then
Dialog.Message("Notice", "en only selected", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
-- Last Case if User didn't Choose any font to install
elseif ar_selected == false and en_selected == false then
Dialog.Message("Notice", "no selected", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end

سنركز على ذلك الجزء العجيب جدا
ar_selected = CheckBox.GetChecked("ar");
en_selected = CheckBox.GetChecked("en");
os = System.GetOSName();
Fpath = Shell.GetFolder(SHF_FONTS);
-- جميع حالات الاختيارات
-- First Case if User wants to setup en & ar fonts
if ar_selected == true and en_selected == true then
Dialog.Message("Notice", "two selected", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);

يبدو الخطأ واضح وضوح الشمس
أنت لم تفعل أى شيى عندما يختار المستخدم تنصيب العربى و الإنجليزى معا

اللهم إلا أنك أظهرت له رسالة
ثم لم تقم بعمل أي شيئ

كيف تريد حصد قيم لم تزرعها مسبقا

و هل تعتقد أنه على المشرفين تتبع كل تساؤلاتك ليتفهموا حقيقة تساؤلك الحالى ؟؟

بعد ذلك ضع مشكلتك مكتملة و ليس كود هنا و كود هنااااااااااااك
و ضع صورة الخطأ الذى يظهر لك

اولا كودك انت سليم :abc_051: للاسف انا عندى خطأ فادح انت نبعتنى ليه انى قمت بعملية دمج بدون وجود جدول فى البداية لاحظ


-- ????? ????? ?????? ????
ar_selected = CheckBox.GetChecked("ar");
en_selected = CheckBox.GetChecked("en");
allfiles_table={}
allfiles_table = ar_selected
for r,l in pairs (en_selected) do
Table.Insert(allfiles_table, a, z);
end
os = System.GetOSName();
Fpath = Shell.GetFolder(SHF_FONTS);
-- ???? ????? ??????????
-- First Case if User wants to setup en & ar fonts
if ar_selected == true and en_selected == true then
for x,i in pairs (allfiles_table) do
ListBox.AddItem("ListBox1", i, "");
end

فعملية الدمج لن تحدث لان en_selected و ar_selected ليسا بجداول وقد نسيت وضع امر لبحث الملفات
يا اخى اعذرنى فانت تعلم ان الشخص حتى يتوصل لدرجة المبرمج لازم يكتسب خبره وخبرته من اخطأءه وانا لسه يدوبك فى اول مشوار
التكويد
فعذرا اخى النصل انا عارف انى طلعت عينك فالعفو العفو ياصديقى

القنـاص المصرى
12-09-2013, 05:15 PM
اما عن الكود الذى وضعته فى درس سابق وهو هذا الجزء العجيب:abc_080:
فانا وضعت هذا الاسفسار لحل مشكلته فالمشكله ان مسار الخطوط العربية Docs\\Fonts\\Arabic
والانجليزية Docs\\Fonts\\English
والمشكلة هى عند استخدام الامر File.Find
لاستدعاء كل الخطوط معا التى فى مجلد Fonts فلن يقدر فوضعت الاستفسار لجلب جدول file.Find للمجموعة العربية ثم تكراره للمجموعة
الانجليزية بجدول اخر ثم دمج الجدولين
ومع ذلك بعد ماحضرتك اجبتنى نسيت وضع الامر file.find فحاولت دمج اختيار المستخدم هل ضغط على التشيك بوكس ام لا
واعتذر فهذا خطأ انا اعرف انه دوخك وسامحنى ياخى الكريم فلا احد يزعج المحترفين هنا الا انا:abc_152: