06-05-19, 06:17 PM (آخر تعديل لهذه المشاركة : 30-01-20, 03:38 PM {2} بواسطة asemshahen5.)
السلام عليكم
اريد منكم مساعدة بخصوص التعامل مع الملف النصي حيث ان هناك برامج تستطيع عرض ملف نصي باشكال معينة صعبة وانا اريد فعل ذلك ولا استطيع
صورة للتوضيح
كما رايتم في المثال هذا ملف Notepad عادي يوجد فيه معلومات مهمة للتوضيح اكثر هذا ملف في داخله اضافات مهم تظهر في اللعبة
وهذه الاضافات عبار عن بضاعة تظهر في اللعبة تسمي items توجد في كل سطر في هذا الملف كما موضح في الصورة وكل items في سطرمختلف عن السطر الاخر و كما رايتم في المثال قمت بتحميل برنامج يعرض هذا الملف بشكل معيا يسهل عرض الملف واستخدام ما بداخله بطريقة اسهل حيث ان اي خطا سيحدث في هذا البرنامج في اي سطر او اي شئ غير صحيح سيحدث مشاكل اثناء التشغيل
هذا البرنامج قرا الملف النصي وانظرو في المثال كيف عرض السطر المطلوب وكيف حدد رقم ال items الذي اريده
السؤال هنا
كيف استطيع انا اعرض هذا الملف النصي مثل هذا البرنامجحيث ان البرنامج استطاع
1- وضع كل سطر items من هذا الملف في ListBox.Items كما موضح في الصورة
2- وايضا قام باظهار رقم تعريف ال items و اسم ال items ام باقي السطر الكبير هذا لا يظهر قام باظهار الاشياء المهمة فقط في السطر انظر الفرق بين الملف النصي و ال ListBox.Items الذي في البرنامج حيث ان باقي السطر يوجد به علامات @@@@@@ وهذه تعني فصلات
المطلوب
اريد الدوال التي تفعل مثل هذا البرنامج عشان مش عارف
واريد دوال استطيع بها التعديل في السطر كله وكيف اقوم باخراج اي شئ اريده من اي سطر
اتمني اكون استطعت اوصل لكم ماذا اريد وشكرا لكم مقدما لمن يستطيع مساعدتي
06-05-19, 07:20 PM (آخر تعديل لهذه المشاركة : 06-05-19, 07:24 PM {2} بواسطة Top King.)
(06-05-19, 06:47 PM)alsouf كتب : حسب فهمي انت تريد اظهار عناصر قائمة في مربع نص مع اضافة بيانات متعددة من مربعات اخرى
تحتاج لجميع كل البيانات في قاعدة بيانات ثم عرضها على شكل سجلات
لا ياخي الموضوع اسهل من هذا بكثير البرنامج يستخدك دوال التعامل مع الملف النصي فقط حيث يقوم بقراءة االملف النصي وهنا دالة ماة تاخذ كل سطر من هذا الملف النصي وتضعه في ListBox.Items هل وضح الامر لك وايضا استخدم دوال تعرض اشياء معينة من السطر نفسه
لا يوجد اي قواعد بينات في الموضوع باين حضرتك بس مفهمتش الموضوع كويس من المثال
(07-05-19, 04:06 PM)asemshahen5 كتب : هذا مثال قريب عما تريده فقط طوره كما تريد و رمضان كريم .
الله اكرم يا اخي جزاك الله كل خير والله فعلا البرنامج ده قريب جدا مما اريد
لكن انا خبرتي ضعيفة جدا لا استطيع تفسير الاكواد في هذا المشروع عشان اعدل عليها واوصل لل انا عيزو ممكن حضرتك وقت ما تكون فاضي تفسرلي الاكواد شكرا جزيلا لك
07-05-19, 05:21 PM (آخر تعديل لهذه المشاركة : 07-05-19, 05:22 PM {2} بواسطة asemshahen5.)
هذا شرح كامل للكود المكتوب بالمثال و كل عام و انتم بخير :
كود :
'تعريف متغيرات'
Dim File1, ID, FullName, Salary, Tell, Mobail, Note As String
'كود تحمييل الفورم'
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'تحديد مكان ملف النوت باد'
File1 = Application.StartupPath & "\Asem.txt"
'كود التحقق من وجود الملف في المسار المحدد'
If IO.File.Exists(File1) Then
'تعريف متغير لاستخدامه في البحث'
Dim msg As String = String.Empty
'وضع قيمة للمتغير رقم السجل الاول'
msg = 1
'فتح ملف النوت باد من الموقع المحدد في المتغير فايل1'
FileOpen(1, File1, OpenMode.Input)
'تفريغ اللسيت بوكس'
ListBox1.Items.Clear()
'عمل لوب لتحميل النص الموجود في النوت باد'
Do While Not EOF(1) '
'تعبئة المتغيرات بالقيم الموجودة بملف النوت باد'
Input(1, ID) : Input(1, FullName) : Input(1, Salary) : Input(1, Tell) : Input(1, Mobail) : Input(1, Note)
'التحقق من المتغيير مسج=المتغيير أيدي'
If msg = ID Then
'تعبئة صناديق النص من المتغيرات المعبئة حسب الاسم'
Txt_ID.Text = ID
Txt_FullName.Text = FullName
TextBox3.Text = Salary
TextBox4.Text = Tell
Txt_Mobail.Text = Mobail
Txt_Note.Text = Note
End If
'تعبئة الليست بوكس بالمتغيير الخاص بالاسم'
ListBox1.Items.Add(FullName)
'انهاء اللوب'
Loop
'إغلاق الملف'
FileClose(1)
Else
'إذا كان ملف النوت باد غيير موجود يقوم بتشغييل زر الاضافة'
BtnAdd_Click(Nothing, Nothing)
End If
'تحديد الازرار التي تفعل'
BtnAdd.Enabled = True
BtnFindID.Enabled = True
BtnFindName.Enabled = True
BtnClose.Enabled = True
BtnSave.Enabled = False
BtnCancel.Enabled = False
End Sub
'كود زر تفريغ صناديق النص ووضع رقم الايدي'
Private Sub BtnAdd_Click(sender As Object, e As EventArgs) Handles BtnAdd.Click
'عمل لووب لتحمييل الادوات التي على الفورم'
For i = 0 To Me.Controls.Count - 1
'كود التحقق من أن الاداة هي صندوق نص'
If TypeOf Me.Controls(i) Is TextBox Then
'تفريغ صناديق النص'
Me.Controls(i).Text = String.Empty
End If
Next
'اذا كانت الليست بوكس فارغة'
If ListBox1.Items.Count = 0 Then
'يعطي رقم 1 للايدي'
Txt_ID.Text = 1
Else 'غير فارغة'
'يعطي للايدي مجموع سطور الموجود + 1'
Txt_ID.Text = ListBox1.Items.Count + 1
End If
'تحديد الازرار التي تفعل'
BtnAdd.Enabled = False
BtnFindID.Enabled = False
BtnFindName.Enabled = False
BtnClose.Enabled = False
BtnSave.Enabled = True
BtnCancel.Enabled = True
End Sub
'كود زر الاغلاق'
Private Sub BtnClose_Click(sender As Object, e As EventArgs) Handles BtnClose.Click
'إغلاق'
Close()
End Sub
'كود زر الحفظ'
Private Sub BtnSave_Click(sender As Object, e As EventArgs) Handles BtnSave.Click
'فتح الملف للحفظ'
FileOpen(1, File1, OpenMode.Append)
'كتابة السطر و القيمة المراد حفظها'
WriteLine(1, Txt_ID.Text)
WriteLine(1, Txt_FullName.Text)
WriteLine(1, TextBox3.Text)
WriteLine(1, TextBox4.Text)
WriteLine(1, Txt_Mobail.Text)
WriteLine(1, Txt_Note.Text)
'إغلاق الملف بعد وضع السطور به و حفظها'
FileClose(1)
'كود إعادة تحميل الفورم'
Form1_Load(Nothing, Nothing)
End Sub
'كود زر إلغاء الحفظ'
Private Sub BtnCancel_Click(sender As Object, e As EventArgs) Handles BtnCancel.Click
'كود إعادة تحميل الفورم'
Form1_Load(Nothing, Nothing)
End Sub
'كود زر البحث عن طريق الايدي'
Private Sub BtnFindID_Click(sender As Object, e As EventArgs) Handles BtnFindID.Click
'تعريف متغير لاستخدامه في البحث'
Dim msg As String = String.Empty
'كود التحقق من ان صندوق نص الايدي فارغ'
If Txt_ID.Text = String.Empty Then
'رسالة تطلب تعبئة صندوق نص الايدي'
MsgBox("الرجاء إدخال الرقم في حقل الرقم", MsgBoxStyle.Critical, "الرجاء إكمال خطوات البحث")
Else 'كود التحقق من ان صندوق نص الايدي ليس فارغ'
'وضع قيمة للمتغير من صندوق نص الايدي'
msg = Txt_ID.Text
'فتح ملف النوت باد من الموقع المحدد في المتغير فايل1'
FileOpen(1, File1, OpenMode.Input)
'تفريغ اللسيت بوكس'
ListBox1.Items.Clear()
'عمل لوب لتحميل النص الموجود في النوت باد'
Do While Not EOF(1)
'تعبئة المتغيرات بالقيم الموجودة بملف النوت باد'
Input(1, ID) : Input(1, FullName) : Input(1, Salary) : Input(1, Tell) : Input(1, Mobail) : Input(1, Note)
'التحقق من المتغيير مسج=المتغيير أيدي'
If msg = ID Then
'تعبئة صناديق النص من المتغيرات المعبئة حسب الاسم'
Txt_ID.Text = ID
Txt_FullName.Text = FullName
TextBox3.Text = Salary
TextBox4.Text = Tell
Txt_Mobail.Text = Mobail
Txt_Note.Text = Note
End If
'تعبئة الليست بوكس بالمتغيير الخاص بالاسم'
ListBox1.Items.Add(FullName)
'انهاء اللوب'
Loop
'إغلاق الملف'
FileClose(1)
End If
End Sub
'كود زر البحث عن طريق الاسم'
Private Sub BtnFindName_Click(sender As Object, e As EventArgs) Handles BtnFindName.Click
'تعريف متغير لاستخدامه في البحث'
Dim msg As String = String.Empty
'كود التحقق من ان صندوق نص الاسم فارغ'
If Txt_FullName.Text = "" Then
'رسالة تطلب تعبئة صندوق نص الاسم'
MsgBox("الرجاء إدخال الإسم في حقل الإسمَ", MsgBoxStyle.Critical, "الرجاء إكمال خطوات البحث")
Else 'كود التحقق من ان صندوق نص الايدي ليس فارغ'
'وضع قيمة للمتغير من صندوق نص الاسم'
msg = Txt_FullName.Text
'فتح ملف النوت باد من الموقع المحدد في المتغير فايل1'
FileOpen(1, File1, OpenMode.Input)
'تفريغ اللسيت بوكس'
ListBox1.Items.Clear()
'عمل لوب لتحميل النص الموجود في النوت باد'
Do While Not EOF(1)
'تعبئة المتغيرات بالقيم الموجودة بملف النوت باد'
Input(1, ID) : Input(1, FullName) : Input(1, Salary) : Input(1, Tell) : Input(1, Mobail) : Input(1, Note)
'التحقق من المتغيير مسج=المتغيير الاسم'
If msg = FullName Then
'تعبئة صناديق النص من المتغيرات المعبئة حسب الاسم'
Txt_ID.Text = ID
Txt_FullName.Text = FullName
TextBox3.Text = Salary
TextBox4.Text = Tell
Txt_Mobail.Text = Mobail
Txt_Note.Text = Note
End If
'تعبئة الليست بوكس بالمتغيير الخاص بالاسم'
ListBox1.Items.Add(FullName)
Loop
'إغلاق الملف'
FileClose(1)
End If
End Sub
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر
(07-05-19, 05:21 PM)asemshahen5 كتب : هذا شرح كامل للكود المكتوب بالمثال و كل عام و انتم بخير :
كود :
'تعريف متغيرات'
Dim File1, ID, FullName, Salary, Tell, Mobail, Note As String
'كود تحمييل الفورم'
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'تحديد مكان ملف النوت باد'
File1 = Application.StartupPath & "\Asem.txt"
'كود التحقق من وجود الملف في المسار المحدد'
If IO.File.Exists(File1) Then
'تعريف متغير لاستخدامه في البحث'
Dim msg As String = String.Empty
'وضع قيمة للمتغير رقم السجل الاول'
msg = 1
'فتح ملف النوت باد من الموقع المحدد في المتغير فايل1'
FileOpen(1, File1, OpenMode.Input)
'تفريغ اللسيت بوكس'
ListBox1.Items.Clear()
'عمل لوب لتحميل النص الموجود في النوت باد'
Do While Not EOF(1) '
'تعبئة المتغيرات بالقيم الموجودة بملف النوت باد'
Input(1, ID) : Input(1, FullName) : Input(1, Salary) : Input(1, Tell) : Input(1, Mobail) : Input(1, Note)
'التحقق من المتغيير مسج=المتغيير أيدي'
If msg = ID Then
'تعبئة صناديق النص من المتغيرات المعبئة حسب الاسم'
Txt_ID.Text = ID
Txt_FullName.Text = FullName
TextBox3.Text = Salary
TextBox4.Text = Tell
Txt_Mobail.Text = Mobail
Txt_Note.Text = Note
End If
'تعبئة الليست بوكس بالمتغيير الخاص بالاسم'
ListBox1.Items.Add(FullName)
'انهاء اللوب'
Loop
'إغلاق الملف'
FileClose(1)
Else
'إذا كان ملف النوت باد غيير موجود يقوم بتشغييل زر الاضافة'
BtnAdd_Click(Nothing, Nothing)
End If
'تحديد الازرار التي تفعل'
BtnAdd.Enabled = True
BtnFindID.Enabled = True
BtnFindName.Enabled = True
BtnClose.Enabled = True
BtnSave.Enabled = False
BtnCancel.Enabled = False
End Sub
'كود زر تفريغ صناديق النص ووضع رقم الايدي'
Private Sub BtnAdd_Click(sender As Object, e As EventArgs) Handles BtnAdd.Click
'عمل لووب لتحمييل الادوات التي على الفورم'
For i = 0 To Me.Controls.Count - 1
'كود التحقق من أن الاداة هي صندوق نص'
If TypeOf Me.Controls(i) Is TextBox Then
'تفريغ صناديق النص'
Me.Controls(i).Text = String.Empty
End If
Next
'اذا كانت الليست بوكس فارغة'
If ListBox1.Items.Count = 0 Then
'يعطي رقم 1 للايدي'
Txt_ID.Text = 1
Else 'غير فارغة'
'يعطي للايدي مجموع سطور الموجود + 1'
Txt_ID.Text = ListBox1.Items.Count + 1
End If
'تحديد الازرار التي تفعل'
BtnAdd.Enabled = False
BtnFindID.Enabled = False
BtnFindName.Enabled = False
BtnClose.Enabled = False
BtnSave.Enabled = True
BtnCancel.Enabled = True
End Sub
'كود زر الاغلاق'
Private Sub BtnClose_Click(sender As Object, e As EventArgs) Handles BtnClose.Click
'إغلاق'
Close()
End Sub
'كود زر الحفظ'
Private Sub BtnSave_Click(sender As Object, e As EventArgs) Handles BtnSave.Click
'فتح الملف للحفظ'
FileOpen(1, File1, OpenMode.Append)
'كتابة السطر و القيمة المراد حفظها'
WriteLine(1, Txt_ID.Text)
WriteLine(1, Txt_FullName.Text)
WriteLine(1, TextBox3.Text)
WriteLine(1, TextBox4.Text)
WriteLine(1, Txt_Mobail.Text)
WriteLine(1, Txt_Note.Text)
'إغلاق الملف بعد وضع السطور به و حفظها'
FileClose(1)
'كود إعادة تحميل الفورم'
Form1_Load(Nothing, Nothing)
End Sub
'كود زر إلغاء الحفظ'
Private Sub BtnCancel_Click(sender As Object, e As EventArgs) Handles BtnCancel.Click
'كود إعادة تحميل الفورم'
Form1_Load(Nothing, Nothing)
End Sub
'كود زر البحث عن طريق الايدي'
Private Sub BtnFindID_Click(sender As Object, e As EventArgs) Handles BtnFindID.Click
'تعريف متغير لاستخدامه في البحث'
Dim msg As String = String.Empty
'كود التحقق من ان صندوق نص الايدي فارغ'
If Txt_ID.Text = String.Empty Then
'رسالة تطلب تعبئة صندوق نص الايدي'
MsgBox("الرجاء إدخال الرقم في حقل الرقم", MsgBoxStyle.Critical, "الرجاء إكمال خطوات البحث")
Else 'كود التحقق من ان صندوق نص الايدي ليس فارغ'
'وضع قيمة للمتغير من صندوق نص الايدي'
msg = Txt_ID.Text
'فتح ملف النوت باد من الموقع المحدد في المتغير فايل1'
FileOpen(1, File1, OpenMode.Input)
'تفريغ اللسيت بوكس'
ListBox1.Items.Clear()
'عمل لوب لتحميل النص الموجود في النوت باد'
Do While Not EOF(1)
'تعبئة المتغيرات بالقيم الموجودة بملف النوت باد'
Input(1, ID) : Input(1, FullName) : Input(1, Salary) : Input(1, Tell) : Input(1, Mobail) : Input(1, Note)
'التحقق من المتغيير مسج=المتغيير أيدي'
If msg = ID Then
'تعبئة صناديق النص من المتغيرات المعبئة حسب الاسم'
Txt_ID.Text = ID
Txt_FullName.Text = FullName
TextBox3.Text = Salary
TextBox4.Text = Tell
Txt_Mobail.Text = Mobail
Txt_Note.Text = Note
End If
'تعبئة الليست بوكس بالمتغيير الخاص بالاسم'
ListBox1.Items.Add(FullName)
'انهاء اللوب'
Loop
'إغلاق الملف'
FileClose(1)
End If
End Sub
'كود زر البحث عن طريق الاسم'
Private Sub BtnFindName_Click(sender As Object, e As EventArgs) Handles BtnFindName.Click
'تعريف متغير لاستخدامه في البحث'
Dim msg As String = String.Empty
'كود التحقق من ان صندوق نص الاسم فارغ'
If Txt_FullName.Text = "" Then
'رسالة تطلب تعبئة صندوق نص الاسم'
MsgBox("الرجاء إدخال الإسم في حقل الإسمَ", MsgBoxStyle.Critical, "الرجاء إكمال خطوات البحث")
Else 'كود التحقق من ان صندوق نص الايدي ليس فارغ'
'وضع قيمة للمتغير من صندوق نص الاسم'
msg = Txt_FullName.Text
'فتح ملف النوت باد من الموقع المحدد في المتغير فايل1'
FileOpen(1, File1, OpenMode.Input)
'تفريغ اللسيت بوكس'
ListBox1.Items.Clear()
'عمل لوب لتحميل النص الموجود في النوت باد'
Do While Not EOF(1)
'تعبئة المتغيرات بالقيم الموجودة بملف النوت باد'
Input(1, ID) : Input(1, FullName) : Input(1, Salary) : Input(1, Tell) : Input(1, Mobail) : Input(1, Note)
'التحقق من المتغيير مسج=المتغيير الاسم'
If msg = FullName Then
'تعبئة صناديق النص من المتغيرات المعبئة حسب الاسم'
Txt_ID.Text = ID
Txt_FullName.Text = FullName
TextBox3.Text = Salary
TextBox4.Text = Tell
Txt_Mobail.Text = Mobail
Txt_Note.Text = Note
End If
'تعبئة الليست بوكس بالمتغيير الخاص بالاسم'
ListBox1.Items.Add(FullName)
Loop
'إغلاق الملف'
FileClose(1)
End If
End Sub
جزاك الله كل خير وشكرا للمساعدة والله مش عارف اقولك ايه انت حلتلي المشكلة شكرا , وكل عام وانت بخير