منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كيف يمكن عمل هذا الترتيب
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
كيف يمكن ترتيب قائمة اعداد موجودة بملف نصي على حسب الرقم الاخير من كل عدد اي على النحو الموجود في الصورة ادناه




السلام عليكم

اخي الكريم قم بتحويل الارقام الى نص بعد ذلك قم بعملية الترتيب تلاحظ ان الترتيب اصبح كما تريد والله اعلم

يعطيك العافية
(15-11-16, 12:17 AM)abulayth كتب : [ -> ]السلام عليكم

اخي الكريم قم بتحويل الارقام الى نص بعد ذلك قم بعملية الترتيب تلاحظ ان الترتيب اصبح كما تريد والله اعلم

يعطيك العافية

الله يعافيك اخي ممكن الكود اذا ما فيه اشكال اعذرني انا مبتدى في vb.net
هل تقصد الترتيب تنازلي او تصاعدي للاعداد الموجودة في الملف النصي
ام هل هناك طريقة معينة للترتيب خاصة بك؟؟
يرجى التوضيح
ترتيب تصاعدي على حسب الرقمالاخير في العدد
عليك أن تقرأ الملف باستخدام IO.File.RealAllLines فتحصل علي مصفوفة عبارة عن String لحميع الاسطر
, طالما انت متأكد ان جميع المدخلات عبارة عن ارقام أصلا فكل ما عليك هو
ان تقوم بنحويل تلك المصفوفة الي مصفوفة Integer عن طريق عمل حلقة تكرارية تقرأ ما هو موجود ف المصفوفة و تحويل كل String ف المصفوفة الي Integer باستخدام |Integer.Parse
واخيرا تقوم بuمل Sort لمصفوفة الأرقام إما تصاعديا او تنازليا
انت تقصد الترتيب تصاعدي حسب الخانة الاولى من الرقم (خانة الاحاد و ليس العشرات) هل انا مخطئ؟؟
أيضا من الممكن ان تستخدم SortedDictionary كالتالي

PHP كود :
       Dim dict As New SortedDictionary(Of IntegerString)()
 
       Dim fileLocation As String "اسم الملف شاملا اسم الفهرس"
 
       If IO.File.Exists(fileLocationThen
            For Each s 
As String In IO.File.ReadAllLines(fileLocation)
 
               dict.Add(Integer.Parse(s), s)
 
           Next
        End 
If 
كود :
        Dim lstNo As New List(Of Integer) From {55, 67, 11, 56, 83, 32, 23, 46, 43, 91, 80, 20, 12}
        Dim LstResult As New List(Of Integer)
        For toFind As Byte = 0 To 9
            Dim found As List(Of Integer) = lstNo.FindAll(Function(value) Val(value.ToString.Substring(1, 1)) = toFind)
            found.Sort()
            LstResult.AddRange(found)
        Next
        Dim result As String = String.Join(Environment.NewLine, LstResult)
        textbox1.text = result

مع  تغيير ما يلزمك  من  تحويل  الادخال المباشر في الكود للارقام ، الى قرائتها من ملف نصي  .

الناتج من الكود السابق  كالتالي : 

كود :
20
80
11
91
12
32
23
43
83
55
46
56
67

بالتوفيق
باستخدام كود الاخ محمد يمكنك اجراء اللازم
و لقراءة الملف النصي ليتوافق مع الكود السابق
PHP كود :
Dim fStream As New System.IO.FileStream("d:\File1.txt"IO.FileMode.Open)
 
       Dim sReader As New System.IO.StreamReader(fStream)
 
       Dim lstNo  As New List(Of Integer)
 
       Do While sReader.Peek >= 0
            lstNo 
.Add(sReader.ReadLine)
 
       Loop
        fStream
.Close()
 
       sReader.Close() 
الصفحات : 1 2