منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] الوصل الي اخر مجلد الصور توضح - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [سؤال] الوصل الي اخر مجلد الصور توضح (/showthread.php?tid=38157)



الوصل الي اخر مجلد الصور توضح - Kareem2021 - 29-03-21

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

اليوم انا عدي مشكل بسيط لكن مش عرف احل المشكل هد
بسباب اني مش متعلم او مش متعمك بالفجوال بيسك

لكن شو المشكل
انو انا عمل تيكس بوكس يستقبل اسم المجلدات
لسباب اني اريد اصل الي اخر مجلد في قائمية المجلدات اللي في القرص
يعني انا عمل قول مايقرب 20 مجلد كول مجلد يبد
باسم زي هيك
1مجلد
2مجلد
3مجلد
والي اخرا مجلد
انا بدي اوصل الي اخر مجلد

انا عدي كول المكنيات لكن
لا ياتي باخر مجلد بدي ارفع صور حتا توضح الفكر
نشوف الصور
كود :
 TextBox4.Text = ""
       Dim PathGG As String = TextBox1.Text
       Dim DirPathGG As Boolean = IO.Directory.EnumerateDirectories(PathGG).Any ' الحقق من وجود ملفات في مسار الماي يوزر
       If DirPathGG Then
           Dim MyFiles() As String = Directory.GetDirectories(PathGG, "*", SearchOption.TopDirectoryOnly)
           For Each strFile As String In MyFiles
               TextBox4.Text = Path.GetFileName(strFile)
           Next

       End If
هد الوكود يعمل علي جلب جميع المجلدات دخل مسار محداد
وهواه يعمل بشكل صحيح ياتي بكول المجلدات
لكن انا عدي اخر مجلد رقم 26 مابجيب اخر مجلد
رقم 26 لا بجيب مجلد رقم 9
هد المشكل انا مش عرف احل وياريت اللي بقدار لا ياقصر معي وكون شكر الكم
شوف الصور رقم وحد

توضح الامور كل
[صورة مرفقة: 161700055683021.png]

الصور التاني توضح

[صورة مرفقة: 161700055694832.png]

الصور الثالث
[صورة مرفقة: 161700055698853.png]
كول الشكور اللي قايمن علي المنتدي الجميل
ورمضا كريم لانو رمضان علي الابواب



RE: الوصل الي اخر مجلد الصور توضح - عبد الهادي بهاب - 29-03-21

ممكن المشكل في التسميات ... غير التسميات مثلا بالارقام فقط ...و في تكست مثلا ضع لكل رقم اسم الكتاب


RE: الوصل الي اخر مجلد الصور توضح - 3booody - 30-03-21

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

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

جرب هذا الكود اخي اختصرتلك الكود راح يجيب المجلدات حسب ترتيبها بالمجلد وان شاء الله ما اكون فهمتك خطأ ويكون هذا طلبك


كود :
Dim D() As String = IO.Directory.GetDirectories("مسار المجلد")
       Dim Directories = From t As String In D.OrderBy(Function(filePath) CInt(IO.Path.GetFileNameWithoutExtension(filePath)))
       ListBox1.Items.AddRange(Directories.ToArray)



RE: الوصل الي اخر مجلد الصور توضح - Kareem2021 - 30-03-21

لكن الكود به مشكل مش غرف احلها
كول الامر اني اريد ان اصل الي اسم اخر مجلد
يعني بدل مروه اعمل اف تو ونسخ ولصق في التيكس
بغضط علي الزر يجيب لي اخر اسم مجلد هد هو الامر اللي اريد من 
اجل اني بدي احفظ اومر الكالي لينكس من اجل الاحتفظ
باوامر الكالي وكول اشوي انش مجلد وبنسا
انا وين وصل في الامجلد 
يعني بدي شي مختصار يجلب لي اسم المجلد 
الاخير ومن عد متهيت بابد انشاء مجلد تاني بترتيب تاني
يعني 
26Name
27Name
28Name
وانا مابدي اروح لمجلد وعمل اعادية تسمي وسوي نسخ
وبعدي اروح لبرنامج اعمل لصق لالالالالالالالالا
البرميجة مريح كتير زر يجيب لك كول اللي انت محتاج من الامر
وشكور وطولة عليك ويمكن اكون دوشتك فيه سمحية
والله يوفق الجميع



RE: الوصل الي اخر مجلد الصور توضح - معاند الحظ - 30-03-21

اخوي تفضل هذا الكود


[attachment=26588]

[attachment=26589]

اولا- اضف الكلاس التالي الى مشروعك


كود :
Public Class myComparer
    Implements IComparer(Of String)

    Public Function Compare(ByVal x As String, _
        ByVal y As String) As Integer _
        Implements IComparer(Of String).Compare

        If x Is Nothing Then
            If y Is Nothing Then
                ' If x is Nothing and y is Nothing, they're
                ' equal. 
                Return 0
            Else
                ' If x is Nothing and y is not Nothing, y
                ' is greater. 
                Return -1
            End If
        Else
            ' If x is not Nothing...
            '
            If y Is Nothing Then
                ' ...and y is Nothing, x is greater.
                Return 1
            Else
                ' ...and y is not Nothing, compare the 
                ' lengths of the two strings.
                '
                Dim retval As Integer = _
                    x.Length.CompareTo(y.Length)

                If retval <> 0 Then
                    ' If the strings are not of equal length,
                    ' the longer string is greater.
                    '
                    Return retval
                Else
                    ' If the strings are of equal length,
                    ' sort them with ordinary string comparison.
                    '
                    Return x.CompareTo(y)
                End If
            End If
        End If
    End Function
End Class

ثانيا- استبدل الكود الذي تستخدمه بالتالي

كود :
        TextBox4.Text = ""
        Dim PathGG As String = TextBox1.Text
        Dim DirPathGG As Boolean = IO.Directory.EnumerateDirectories(PathGG).Any ' الحقق من وجود ملفات في مسار الماي يوزر
        If DirPathGG Then
            Dim MyFiles As New List(Of String)
            MyFiles.AddRange(Directory.GetDirectories(PathGG, "*", SearchOption.TopDirectoryOnly))
            Dim c As New myComparer
            MyFiles.Sort(0, MyFiles.Count, c)
            For Each strFile In MyFiles
                TextBox4.Text = Path.GetFileName(strFile)
            Next
        End If



RE: الوصل الي اخر مجلد الصور توضح - Kareem2021 - 30-03-21

براك الله فيك والففففففففففف
شكور الي كول اللي معي في المنتدي
الجميل
الف شكر الك معاذ الحظ
استاذ وكول الشكور  ظبط البرنامج معي كول
الشكور الك
الله يوفق
معاذ الحظ تسلم
ايديك
الففففففففففففففففففففففف شكر