الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية ترتيب عناصر الليست بوكس حسب التاريخ وليس الرقم

بدأه ميدو صلاح في 27 مايو 2010 · 9 رد · 937 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله

أنا لدي مشروع مستخدم فيجوال بيسك 2005

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

هذه الملفات تم حفظها مسبقا بتاريخ اليوم الحالي مثل 04/05/2009 وهكذا

وتم العمل بنجاح ما ينقصي سؤالين

الأول: عندما استخدمت خاصية الترتيب داخل الأداة قامت بالترتيب حسب الأرقام أي حسب الأيام فقط وليست حسب التاريخ يعني مش بيحسب حساب الشهر ولا السنة

وهذا الكود هو lstFiles.Sorted = SortOrder.Ascending

ما أريده هو كيف أفهم الأداة أن العناصر المعروضة بداخلها عبارة عن تاريخ فيتم ترتيبها حسب التاريخ (يوم/شهر/سنة) شاكر لكم جميعا

والسؤال الثاني أن الملفات يتم عرضها (شهر/يوم/ سنة) هل يمكن عرضها (يوم/شهر/سنة)

شاكر ومقدر لكل من يستطيع مساعدتي وشكرا

تم تعديل هذه المشاركة بواسطة ميدو صلاح في 27 مايو 2010 في 00:39

#2

وعليكم السلام ورحمة الله وبركاته

الخاصية Sorted من النوع Boolean وليست من النوع SortOrder

لمعاملة العناصر على أنها تاريخ وقت الترتيب فأمامك عدة اختيارات

الاختيار الأول هو استخدام ListView بدلا من ListBox وكتابة فئة جديدة تستخدم الواجهة IComparer وتقوم هى بعملية المقارنة ثم إسناد نسخة جديدة منها للخاصية ListViewItemSorter

الاختيار الثانى هو عمل أداة جديدة ترث الأداة ListBox ثم إعادة توجيه/قيادة الإجراء Sort والذى يقوم بعملية الترتيب وترتيب العناصر كما تحب

الاختيار الثالث هو وضع جميع العناصر داخل مصفوفة ثم ترتيبها بإحدى خوارزميات الترتيب ثم إسنادها كمصدر بيانات للأداة ListBox

هذا مثال على الاختيار الثالث

Public Class Form1

    Private Sub Sort(ByVal DateArray() As DateTime)
        Dim tmp As DateTime
        Dim newArray(DateArray.Length - 1) As DateTime
        For i As Integer = 0 To DateArray.Length - 1
            For j As Integer = 0 To DateArray.Length - 2
                If i <> j Then
                    If DateArray(j) > DateArray(i) Then
                        tmp = DateArray(i)
                        DateArray(i) = DateArray(j)
                        DateArray(j) = tmp
                    End If
                End If
            Next
        Next
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim arrDates(8) As DateTime
        arrDates(0) = Today
        arrDates(1) = Today.AddDays(1)
        arrDates(2) = Today.AddDays(-2)
        arrDates(3) = Today.AddDays(2)
        arrDates(4) = Today.AddDays(-3)
        arrDates(5) = Today.AddMonths(1)
        arrDates(6) = Today.AddMonths(-2)
        arrDates(7) = Today.AddMonths(2)
        arrDates(8) = Today.AddMonths(-3)

        Sort(arrDates)

        lstFiles.DataSource = arrDates
    End Sub
End Class

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#3

استاذي الفاضل بارك الله فيك وشكرا على ردك المفصل

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

هذه الصورة قبل إضافة الكود

929022327.jpg

وهذه الصورة بعد إضافة الكود

119601869.jpg

ستجد حضرتك إن جميع التواريخ مضبوطة ومرتبة 100 % ولكن انظر إلى آخر تاريخ 24-10-2009 ستجده آخر تاريخ بالرغم من أنه لابد أن يكون آول تاريخ

وهذا هو الكود الذي استخدمته

        Dim mydir As String
        mydir = Dir(Application.StartupPath & "\backup\", vbDirectory)
        Do While mydir <> ""
            lstFiles.Items.Add(mydir)
            mydir = Dir()
            Dim arrDates(8) As DateTime
            arrDates(0) = Today
            arrDates(1) = Today.AddDays(1)
            arrDates(2) = Today.AddDays(-2)
            arrDates(3) = Today.AddDays(2)
            arrDates(4) = Today.AddDays(-3)
            arrDates(5) = Today.AddMonths(1)
            arrDates(6) = Today.AddMonths(-2)
            arrDates(7) = Today.AddMonths(2)
            arrDates(8) = Today.AddMonths(-3)
            Sort(arrDates)
        Loop

أرجو اطلاعي على الخطأ وجزيت خيرا ولو تكرمت وقدرت تدلني على طريقة اقدر بها ارتب التواريخ بهذا الشكل (يوم- شهر - سنة) أكون ممنون لك جدا جدا

والسلام عليكم ورحمة الله وبركاته

#4

أخى الكريم لقد قمت بمراجعة الكود ولم أجد المشكلة

هل يمكنك رفع المجلد Backup بالمجلدات الفرعية حتى أتمكن من التجربة عليه؟

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

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#5

أخي الكريم مشكور جدا على حسن أخلاقك

لقد رفعت إليك البرنامج في الرابط التالي حيث أن حجمه كبير شويه أرجو التعديل عليه أو إعطائي فكرة الخطأ عندي وشكرا لك

Test.rar - 11.91MB

مع السلامة

#6

مشرفي الجليل أتمنى يكون الملف تم تحميله عندك فلم ترد علي في حل لمشكلتي وجزاك الله خيرا

اتمنى أجد الحل فأنا تعودت على حل مشاكلي من خلال هذا المنتدى وشكرا

#7

معذرة على التأخير فأنا لا أتواجد الجمعة والسبت على الإنترنت وبالأمس كنت فى أجازة فلم أتواجد أيضا

جارى التحميل...

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#8

الأرشيف لا يعمل...

ضع ملف نصى داخل أحد المجلدات واكتب فيه أى شئ حتى تعطى حجما للمجلد

تم تعديل هذه المشاركة بواسطة GHOST2010 في 31 مايو 2010 في 09:41

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#9

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

والحمد لله ربنا وفقني ورفعتهم لحضرتك على أكثر من سيرفر ربنا يسهل ويتم تحميله بنجاح

http://rapidshare.com/files/397451018/Test1.zip.html

Test1.zip - 12.7 Mb

http://www.uparab.com/files/KDDsrpqinE0VzLff.zip

في انتظار رد حضرتك ولو تكرمت إذا كان هناك امكانية عرض أسماء الملفات بهذا الشكل (يوم-شهر-سنه) بدلا من عرضها كما في المثال المرفق (شهر-يوم-سنه) أكون لك من الشاكرين

بارك الله فيك وربنا يزيدك من علمه

في انتظار التعديل وشكرا

#10

استاذي الكريم سؤال فقط هل تم تحميل البرنامج من الروابط السابقة أم لا

أرجو المعذرة فأنا لم أقصد إزعاجك ولكن التأكد فقط من تحميل الملف لديك

وشكرا جزيلا

في انتظار الحل المناسب بإذن الله تعالى

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…