PDA

View Full Version : سوال: سورت كردن ليست باكس



pm_hamze
یک شنبه 23 تیر 1387, 00:03 صبح
با سلام
من يك ليست باكس دارم و مي خام سورتش كنم(بر اساس الفبا يا عدد) خواهش مي كنم جواب بديد تو اين سايت در مورد اين سوال بحث شده اما براي من كار نداد.

r0ot$harp
یک شنبه 23 تیر 1387, 01:35 صبح
با سلام
من يك ليست باكس دارم و مي خام سورتش كنم(بر اساس الفبا يا عدد) خواهش مي كنم جواب بديد تو اين سايت در مورد اين سوال بحث شده اما براي من كار نداد.

دوست عزیز در مشخصه های خود ListBox یک آیتم به نام Sorted وجود دارد که اگر اونو با مقدار True مقدار دهی کنی فکر کنم به جواب سوالت برسی .




باتشکر احسان

مهران رسا
یک شنبه 23 تیر 1387, 10:26 صبح
با استفاده از روش زیر می تونی اعداد موجود در لیست رو به صورت نزولی مرتب کنی :



Dim LST() As Integer
ReDim LST(List1.ListCount)
For i = 0 To List1.ListCount - 1
LST(i) = List1.List(i)
Next

For j = LBound(LST) To UBound(LST) - 1
For i = LBound(LST) To UBound(LST) - 1
If LST(i) < LST(i + 1) Then
x = LST(i + 1)
LST(i + 1) = LST(i)
LST(i) = x
End If

Next i
Next j

List1.Clear

For i = LBound(LST) To UBound(LST) - 1
List1.AddItem LST(i)
Next i

davood59
یک شنبه 23 تیر 1387, 11:31 صبح
با استفاده از روش زیر می تونی اعداد موجود در لیست رو به صورت نزولی مرتب کنی :



Dim LST() As Integer
ReDim LST(List1.ListCount)
For i = 0 To List1.ListCount - 1
LST(i) = List1.List(i)
Next

For j = LBound(LST) To UBound(LST) - 1
For i = LBound(LST) To UBound(LST) - 1
If LST(i) < LST(i + 1) Then
x = LST(i + 1)
LST(i + 1) = LST(i)
LST(i) = x
End If

Next i
Next j

List1.Clear

For i = LBound(LST) To UBound(LST) - 1
List1.AddItem LST(i)
Next i

آقا میشه این کد رو برای ما مبتدی ها یک کم توضیح بدی؟ ببخشید

pm_hamze
یک شنبه 23 تیر 1387, 11:42 صبح
عزيزان من يك برنامه دارم كه ليست باكس داره و براساس حروف و صعودي سرت بكنه دستورش چيه و از دستور List1.Sorted=true هم استفاده كردم پيغام مي ده

اوبالیت به بو
یک شنبه 23 تیر 1387, 12:09 عصر
http://barnamenevis.org/forum/showpost.php?p=434340&postcount=4

r0ot$harp
یک شنبه 23 تیر 1387, 12:24 عصر
عزيزان من يك برنامه دارم كه ليست باكس داره و براساس حروف و صعودي سرت بكنه دستورش چيه و از دستور List1.Sorted=true هم استفاده كردم پيغام مي ده

دوست عزیز چه پیغامی می ده ؟

دوست عزیز اگر اطلاعات شما کم هست می تونی از روش مرتب سازی حبابی (bubble ) استفاده کنی که دوست عزیزم obalitjoOon لطف کردن و این برنامه رو نوشتن و لینک را برای شما قرار دادن از این روش استفاده کنم مطمئا جواب می گیری .


باتشکر احسان

majjjj
یک شنبه 23 تیر 1387, 13:07 عصر
آقا میشه این کد رو برای ما مبتدی ها یک کم توضیح بدی؟ ببخشید
با این کد استفاده از ارایه ها رو میتونید تجربه کنید ارایه به فضا های پشت سرهم میگن که میتونید متغیرهایی با یک نام و اندیس مضاعف ایجاد کرده و از اون استفاده کنید

pm_hamze
یک شنبه 23 تیر 1387, 14:00 عصر
عزيزان عدد نيست نوشته داخل ليست باكس من

r0ot$harp
یک شنبه 23 تیر 1387, 14:48 عصر
عزيزان عدد نيست نوشته داخل ليست باكس من

دوست عزیز بهتر نسیت خود برنامه رو یا مثالی از نحوه ی Sort کردن و بنویسی مثلا چه نوع حروف یا کلمه یا جمله ای . بهتره برنامه تو بزاری تا زود تر به جواب برسی .


باتشکر احسان

aminkk
یک شنبه 23 تیر 1387, 16:22 عصر
حالا اگه تويه Listbox هم عدد بود هم حرف چي ما بايد كي رو ببينيم؟

مهران رسا
دوشنبه 24 تیر 1387, 08:45 صبح
حالا اگه تويه Listbox هم عدد بود هم حرف چي ما بايد كي رو ببينيم؟

سلام .

اینجا اعداد رو هم مثل حروف به صورت رشته ای با هم مقایسه می کنیم .

یکسری قانون در مورد مقایسه رشته ها :


حروف بزرگ ، کوچکتر از حروف کوچک هستند.


حروف الفبا به همان ترتیبی که هستند مقایسه می شوند . یعنی "A" کوچکتر از "B" هست .


رقم ها ، کوچکتر از حروف هستند . یعنی "3" از "Three" کوچکتر خواهد بود.
حالا اگه شما علاقه ای به استفاده از خاصیت Sorted نداری می تونی با استفاده از حلقه ها ، دونه دونه حروف رشته ها رو با هم مقایسه کنی و مثل روشی که قبلاً مطرح کردم جای مقادیر رو عوض کنی تا در آخر List و یا آرایه شما مرتب بشه ...