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

مشاهدة النسخة كاملة : الترتيب في عنصر Grid


ثامر أبو بلقيس
24-03-2014, 01:50 AM
السلام عليكم

ما الطريقة لترتيب الأعداد :
10
1
20
2

لتظهر مرتبة في العنصر
Grid من الاصغر إلى الأكبر

سلام :abc_138:

فرح صالحي
25-03-2014, 04:27 PM
السلام عليكم ورحمة الله وبركاته
اعرف انه لن يفيدك ، اردت المشاركة فقط حتى لا يبقى 0 مشاركات
http://www.gulfup.com/?EbkzdW
موفق بإذن الله .:abc_070:.. لك مني أجمل تحية .

ثامر أبو بلقيس
25-03-2014, 06:02 PM
شكرا جزيلا أخي صالحي بارك الله فيك

لا عليك أخي الكريم عدم الردود مع التماس الاعذار
سواء في عدم وجود الحل أو الوقت الكافي

قد يكون لها حل بسيط إن شاء الله أوفق في تطبيقه على مستواي الشخصي

شكرا :abc_138:

Haitham.2012
25-03-2014, 11:07 PM
استخدم هذا الكود ...

Grid.SortTextItems("Grid1", 0, true, true);

حدد فقط رقم العمود الذي تريد الترتيب على أساسه ..

:abc_152: :abc_138: :abc_152:

ثامر أبو بلقيس
25-03-2014, 11:34 PM
شكرا أستاذي هيثم
الكود المرسل يرتب مراعيا لقيمة الرقم الموجود على اليسار فقط
وليس قيمة العدد ككل المثال المدرج أعلاه بناء على هذا المشكل
الكود سيرتبه هكذا
1
10
2
20

وهذا غير صحيح

شكرا جزيلا :abc_152:

ثامر أبو بلقيس
27-03-2014, 07:42 PM
هل من حلولـ :n200691:

عبود عبود
28-03-2014, 02:53 AM
استخدم هذا الكود ...

Grid.SortTextItems("Grid1", 0, true, true);

حدد فقط رقم العمود الذي تريد الترتيب على أساسه ..



SortTextItems
http://www.abc4web.net/vb/images/icons/abc00.gif الكود مخصص لما هو مظلل بالأحمر فقط .
ودون ذلك يحتاج لمجموعة شروط مساعدة لآداء المطلوب هذا بالنسبة للكود السابق.

ثامر أبو بلقيس
28-03-2014, 04:55 AM
شكرا جزيلا :abc_138:

ثامر أبو بلقيس
25-12-2014, 10:31 PM
:abc_138: :abc_138:

ثامر أبو بلقيس
25-12-2014, 10:46 PM
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته

لتوفير حلولا على هذا التساؤل فقد كانت هناك محاولة
للتغلب على مشكل الترتيب العددي في العنصر grid
---------------
فوقعت عيناي منذ قليل على خوارزمية بدت لي جميلة حيث أنها ستتعامل
مع الأعداد أو المفردات باللغة العربية أو غير العربية
-------- جرب في global functions
function alphanumsort(o)
local function padnum(d) local dec, n = string.match(d, "(%.?)0*(.+)")
return #dec > 0 and ("%.12f"):format(d) or ("%s%03d%s"):format(dec, #n, n) end
table.sort(o, function(a,b)
return tostring(a):gsub("%.?%d+",padnum)..("%3d"):format(#b)
< tostring(b):gsub("%.?%d+",padnum)..("%3d"):format(#a) end)
return o
end

في الزر المسؤول على الترتيب :
my_table ={}
p=Grid.GetRowCount("Grid1");
for i=1,p do
c= Grid.GetCellText("Grid1", i-1, 0);
Table.Insert(my_table, i, c);
end
for k,v in ipairs(alphanumsort(my_table)) do
Grid.SetCellText("Grid1", k-1, 0, v, true)
end
------------------
واذ كان الترتيب في عنصر الليست استبدل السابق بـ:
my_table ={}
-----------------------------------------------
p=ListBox.GetCount("ListBox1");
for i=1,p do
c= ListBox.GetItemText("ListBox1", i);
Table.Insert(my_table, i, c);
end
Table.Sort(my_table, nil);
for k,v in ipairs(alphanumsort(my_table)) do
ListBox.SetItemText("ListBox1", k, v);
end

تقديري:abc_138:

ثامر أبو بلقيس
26-12-2014, 01:16 AM
السلام عليكم ورحمة الله وبركاته

واذ أردنا ترتيبا عدديا فقط بدون خوارزميات

بالنسبة لعنصر grid
n = Grid.GetRowCount("Grid1");
my_table = {};
for i = 1,n do
v = Grid.GetCellText("Grid1", i-1, 0);
v= String.ToNumber(v);
Table.Insert(my_table, i, v);
end
table.sort(my_table, function(a,b) return a>b end)
for b , k in pairs(my_table) do
Grid.SetCellText("Grid1", b-1, 0, k, true)
end

وبالنسبة لعنصر الليست
n = ListBox.GetCount("ListBox1");
my_table = {};
for i = 1,n do
v = ListBox.GetItemText("ListBox1", i)
v= String.ToNumber(v);
Table.Insert(my_table, i, v);
end
table.sort(my_table, function(a,b) return a>b end)
for b , k in pairs(my_table) do
ListBox.AddItem("ListBox1", k, "");
ListBox.DeleteItem("ListBox1", 1);
end

إن شاء الله تكون المحاولة صحيحة :abc_138:

عبد الهادي بهاب
24-10-2015, 11:16 PM
السلام عليكم ورحمة الله وبركاته

واذ أردنا ترتيبا عدديا فقط بدون خوارزميات

بالنسبة لعنصر grid
n = grid.getrowcount("grid1");
my_table = {};
for i = 1,n do
v = grid.getcelltext("grid1", i-1, 0);
v= string.tonumber(v);
table.insert(my_table, i, v);
end
table.sort(my_table, function(a,b) return a>b end)
for b , k in pairs(my_table) do
grid.setcelltext("grid1", b-1, 0, k, true)
end

وبالنسبة لعنصر الليست
n = listbox.getcount("listbox1");
my_table = {};
for i = 1,n do
v = listbox.getitemtext("listbox1", i)
v= string.tonumber(v);
table.insert(my_table, i, v);
end
table.sort(my_table, function(a,b) return a>b end)
for b , k in pairs(my_table) do
listbox.additem("listbox1", k, "");
listbox.deleteitem("listbox1", 1);
end

إن شاء الله تكون المحاولة صحيحة :abc_138:


شكرا على الكود استاذ ثامر

عبد الهادي بهاب
14-08-2016, 02:26 AM
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته

لتوفير حلولا على هذا التساؤل فقد كانت هناك محاولة
للتغلب على مشكل الترتيب العددي في العنصر grid
---------------
فوقعت عيناي منذ قليل على خوارزمية بدت لي جميلة حيث أنها ستتعامل
مع الأعداد أو المفردات باللغة العربية أو غير العربية
-------- جرب في global functions
function alphanumsort(o)
local function padnum(d) local dec, n = string.match(d, "(%.?)0*(.+)")
return #dec > 0 and ("%.12f"):format(d) or ("%s%03d%s"):format(dec, #n, n) end
table.sort(o, function(a,b)
return tostring(a):gsub("%.?%d+",padnum)..("%3d"):format(#b)
< tostring(b):gsub("%.?%d+",padnum)..("%3d"):format(#a) end)
return o
end

في الزر المسؤول على الترتيب :
my_table ={}
p=grid.getrowcount("grid1");
for i=1,p do
c= grid.getcelltext("grid1", i-1, 0);
table.insert(my_table, i, c);
end
for k,v in ipairs(alphanumsort(my_table)) do
grid.setcelltext("grid1", k-1, 0, v, true)
end
------------------
واذ كان الترتيب في عنصر الليست استبدل السابق بـ:
my_table ={}
-----------------------------------------------
p=listbox.getcount("listbox1");
for i=1,p do
c= listbox.getitemtext("listbox1", i);
table.insert(my_table, i, c);
end
table.sort(my_table, nil);
for k,v in ipairs(alphanumsort(my_table)) do
listbox.setitemtext("listbox1", k, v);
end

تقديري:abc_138:


كود جميل جدا و لم افهم منه الجزء المتعلق بالغلوبال

ثامر أبو بلقيس
14-08-2016, 02:05 PM
"يوما ما سأشرحه في الاستراحة البرمجية"
ردي هذا من شأنه التعجيل في الوصول المعلومة لك .

بلقيس
16-08-2016, 09:39 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .