08-05-18, 04:25 PM
(آخر تعديل لهذه المشاركة : 08-05-18, 04:39 PM {2} بواسطة silverlight.)
كبداية للرد علي سؤالك
قراءة البيانات من ملف ليس لها علاقة بنوع الملف
المهم في الأمر هو كيفية ترتيب و تنظيم كتابة البيانات للملف
والأفضل لك هو أن تبني كلاس به بعض Property التي تساوي عدد الحقول في كل سطر
وبالتالي سيكون اسهل لك و اسرع ايضا القراءة و الكتابة الي الملف
مثلا في الداتا بيز العادية مثثل الأكسس او SQL تكون الأمور مرتبة قليلا لأنك انت من لا يبني الملف من الصفر
لكن انت فقط تضيف بيانات الي الملف و تقرأ بيانات من الملف
في حالتك هنا انت من عليه أن ينظم و يرتب كيفية كتابة وقراءة البيانات
الكود التالي سيعطيك فكرة مبدئية عن كيفية تحويل الملف الي DataTable
قراءة البيانات من ملف ليس لها علاقة بنوع الملف
المهم في الأمر هو كيفية ترتيب و تنظيم كتابة البيانات للملف
والأفضل لك هو أن تبني كلاس به بعض Property التي تساوي عدد الحقول في كل سطر
وبالتالي سيكون اسهل لك و اسرع ايضا القراءة و الكتابة الي الملف
مثلا في الداتا بيز العادية مثثل الأكسس او SQL تكون الأمور مرتبة قليلا لأنك انت من لا يبني الملف من الصفر
لكن انت فقط تضيف بيانات الي الملف و تقرأ بيانات من الملف
في حالتك هنا انت من عليه أن ينظم و يرتب كيفية كتابة وقراءة البيانات
الكود التالي سيعطيك فكرة مبدئية عن كيفية تحويل الملف الي DataTable
PHP كود :
Dim fileNameAndPath As String = ".\file.text"
Dim lines As String() = IO.File.ReadAllLines(fileNameAndPath)
Dim result As DataTable = CType(Nothing, DataTable)
result = New DataTable With {.Locale = System.Globalization.CultureInfo.InvariantCulture}
result.Columns.Add(New DataColumn("Field 1", GetType(String)))
result.Columns.Add(New DataColumn("Field 2", GetType(String)))
result.Columns.Add(New DataColumn("Field 3", GetType(String)))
' بما أنك لديك 25 حقل أكمل حتي 25 حقل
' طبعا الافضل لك من الاصل تحفظ البيانات علي هيئة كلاس
' وطبعا هذا سيوفر عليك الجهد و الوقت و سيكون اسرع فس قرءاة البيانات
SyncLock lines.GetType
For i As Integer = 0 To lines.Length - 1
Dim line As String = lines(i)
' اقسم كل سطر الي 25 حقل
' و للمرة الثانية كان من
' الافضل تحويل كل سطر الي كلاس
Dim values As String() = line.Split(" "c)
Dim field_1 As String = values(0)
Dim field_2 As String = values(1)
Dim field_3 As String = values(3)
result.Rows.Add(New Object() {field_1, field_2, field_3})
Next
End SyncLock
Retired

