سؤالك غير واضح تماما خصوصا في موضوع انقطاع Line
عموما لكي تبني خوارزمية لأي شئ
يجب أن يكون لديك أساس قوي لكيفية تمرير البيانات حتي تستطيع التعامل معها لاحقا بحيث تسترد البيانات او جزء من هذه البيانات ومن ثم تتعامل معها
مثال صغير ربما يوضح لك كيف تضع استراتيحية مناسبة لتمرير البيانات
وهذا المثال يعتمد علي انك تمرر البينات ثم تقوم بتحويلها الي مصفوفة صغيرة
ولأني كتبت المثال بسرعة فأنا هنا لم أراعي أخطاء التنفيذ حين لا يتم تمرير البيانات للكلاس
PHP كود :
Public Class Line
Public Property ID As String
Public Property Low As Integer
Public Property High As Integer
Private Iterator Function GetEnumerator() As IEnumerable(Of Object)
Yield Me.ID
Yield Me.Low
Yield Me.High
Return
End Function
Public Overrides Function ToString() As String
Dim result As String = String.Empty
Dim indent As Char = " "c
Dim i As Integer = 0
While i < GetEnumerator.Count
Dim obj As Object = GetEnumerator(i)
result += obj.ToString
result += indent
i += 1
End While
Return result.TrimEnd(indent)
End Function
End Class
كيف تستخدم الكلاس
PHP كود :
Dim line As New Line With {.ID = "T007", .Low = 122, .High = 200}
ويمكن استردا البيانات من الكلاس بشكل مباشر من خلال كل Property او كالأتي
PHP كود :
Dim values As String() = line.ToString().Split(" "c)
Dim s As String = values(0)
Dim low As Integer = CInt(values(1))
Dim high As Integer = CInt(values(2))
كل ما عليك بعد ذلك هو ان تتعامل مع مجموعات أو مصفوفات من Line
الفكرة كأنك بتبني صفوف مثلما يحدث في DataTable مثلا
شكرا لك اخي على تفاعلك الدائم معنا
رغم مجهودك الرائع معنا لكني صراحة لم افهم ردك و هذا لمستوي الضعيف في البرمجة عذا لك اخي
اعتقد ان الموضوع ليس بالاشكال الكبير الذي يحتاج اكواد كثيرة و اظن اني لم اقم بايصال الفكرة بشكبل جيد
------------- اعيد شرح المطلوب----------------
عندي ملف تكست هذا الملف يحتوي على مجموعة من الاحداثيات لنقط لخطوط LINE مختلفة هذه النقط تكون عادة بترقيم ID متتابع لكل LINE
في بعض الحالة تكون هنالك قفزة او انقطاع اي ان الترقيم يقفز بعض القيم
ما اريده انه عند ادراج الملف الى البرنامج بضغطة على البوتون يعطني ملف تاكست جديد يحتوي كل LINE اين يبدا فيها الترقيم والى اين ينتهي اي اكبر واصغر ID
في حالة LINE التي يوجد بها انقطاع و قفزة تظهر هته اللين هلى جزئين
اول قيمة -----------اكبر قيمة قبل الانقطاع
اصغر قيمة بعد الانقطاع ----- اكبر قيمة بعد الانقطاع
الشرح في الصورة اعلاه
مثال عن الملف المراد ادراجه والملف المراد استخراجه في المرفقات
كما سبق و قلت لك أنت تحتاج الي استراتيجية لقراءة المدخلات و إن كنت لا تريد استخدام كلاس يمكنك تنفيذ الأتي
تقرأ البيانات علي شكل Genric Dictionary و تحديدا علي شكل ..... Dictionary (Of Integer, String)
ثم تقوم بتحويله الي محموعات أو مصفوفات بخيث مثلا T005 تكون مصفوفة رقمية و T006 تكون مجموعة رقمية و هكذا
شرط التقسيم الي مجموعات هو أن المفتاح مختلف عن ما يليه في القيمة
كأنك تقارن T005 مع ما يليه من قيمة و هكذا
في النهاية سيكون لديك نوعان من المجموعات أو المصفوفات
المجموعة الأولي
وفيها الرقم المسلسل يزيد بمعدل منتظم =1 و غالبا ستجد هذا في المجموعات T005 و T007 و T008 و T009
غالبا هنا ليس لديك مشكلة فقط ستقرأ اعلي قيمة و أقل قيمة و بذلك تحصل علي مرادك
المجوعة الثانية
و هي الأصعب قليلا حيث أن الرقم المسلسل سيقفز و يزيد بمعدل أكبر من 1
وهنا عليك ان تقسم المجموعة T006 تحديدا الي مصفوفتان
و الشرط الذي يجب استخدامه في تقسيم المجموعة T006 هو أن الرقم الذي تقرأه يكون الفارق بينه و بين ما بعده أكبر من 1
هذا هو تفسيري لما فهمته من سؤالك
شئ أخير
المبرمج الذي يتعامل مع بيانات طبواغرافية
لا يصح أن يقول علي تفسه مستواي ضعيف
تقبل تخياتي
شكرا لك اخي silverlight على مجهودك معنا دائما انت رائع في تعليقاتك ساعمل بنصائحك
جزاك الله الف خير