ما هي افضل طريقة للتعامل مع الملفات النصية او xml بطريقة خاصة؟ - الماجيك مسعد - 02-09-19
السلام عليكم
دلوقتي عندي مشروع فيه 3 فورم وملف نصي بجانب البرنامج فيه هذا القيم
=========
Login=دخول
User Name=اسم المستخدم
Exit=خروج
=========
وبستدعي قيم نصية لكل فورم
مثلا الفورم الاول بستدعي القيمة Login=دخول
والفورم الثاني Exit=خروج
والثالث User Name=اسم المستخدم
بس لما بستدعي الفورم الثالث
بيفضل يدور علي القيمة الخاصة بيه في الملف النصي لحد ما يلاقيها
بيبحث عن قيمة User Name
والملف النصي فيه ما يقارب 500 سطر
يعني لو القيمة User Name هي رقم 500
يبقا هيفضل يبحث بعض الوقت لحد ما يوصل للقيمة
لذا اريد مساعدتكم في تطوير الفكرة
طرأ فبالي فكرة وهي
تقسيم القيم داخل الملف النصي
بمعني
هذه هي قيم الملف النصي
=========
Login=دخول
User Name=اسم المستخدم
Exit=خروج
=========
تمام ؟
فكرت بتقسيمهم علي هذا النحو مثلا
=========
{form1}
Login=دخول
{form1}
{form3}
User Name=اسم المستخدم
{form3}
{form2}
Exit=خروج
{form2}
=========
وعند البحث يقوم بالبحث عن الفورم اولا
مثلا لو الفورم 3
يبقا يجيب
{form3}
User Name=اسم المستخدم
{form3}
من الملف ويبحث فيهم
افضل واسرع من انه يبحث في كل الملف
هذا ما خطر ببالي
فكيف وايه افضل طريقة لتنفيذ عملية البحث والتقسيم هذه
وهل لديك اراء افضل من واسرع من ذلك؟
RE: ما هي افضل طريقة للتعامل مع الملفات النصية او xml بطريقة خاصة؟ - asemshahen5 - 02-09-19
هذه اكواد اضافة و بحث عن سجل معين في ملف نوت باد بجانب البرنامج :
PHP كود :
Dim File1, name1, number1, bsalary, a, B, n As String Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load File1 = Application.StartupPath & "\Asem.txt" End Sub Private Sub BtnAdd_Click(sender As Object, e As EventArgs) Handles BtnAdd.Click If File1 = "" Then MsgBox("الرجاء تحديدالملف المطلوب أولا", MsgBoxStyle.Critical, "الرجاء إكمال خطوات البحث") Else FileOpen(1, File1, OpenMode.Append) WriteLine(1, TextBox1.Text) WriteLine(1, TextBox2.Text) WriteLine(1, TextBox3.Text) WriteLine(1, TextBox4.Text) WriteLine(1, TextBox5.Text) WriteLine(1, TextBox6.Text) FileClose(1) TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = "" TextBox6.Text = "" End If End Sub Private Sub BtnSearch_Click(sender As Object, e As EventArgs) Handles BtnSearch.Click Dim msg As String If TextBox2.Text = "" Then MsgBox("الرجاء إدخال الإسم في حقل الإسمَ", MsgBoxStyle.Critical, "الرجاء إكمال خطوات البحث") Else msg = TextBox2.Text If File1 = "" Then MsgBox("الرجاء تحديد المحافظة أو البلد المطلوب أولا", MsgBoxStyle.Critical, "الرجاء إكمال خطوات البحث") Else FileOpen(1, File1, OpenMode.Input) Do While Not EOF(1) Input(1, name1) : Input(1, number1) : Input(1, bsalary) : Input(1, a) : Input(1, B) : Input(1, n) If msg = number1 Then TextBox1.Text = name1 TextBox2.Text = number1 TextBox3.Text = bsalary TextBox4.Text = a TextBox5.Text = B TextBox6.Text = n End If Loop FileClose(1) End If End If End Sub
RE: ما هي افضل طريقة للتعامل مع الملفات النصية او xml بطريقة خاصة؟ - الماجيك مسعد - 02-09-19
(02-09-19, 05:03 AM)asemshahen5 كتب : هذه اكواد اضافة و بحث عن سجل معين في ملف نوت باد بجانب البرنامج :
PHP كود :
Dim File1, name1, number1, bsalary, a, B, n As String Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load File1 = Application.StartupPath & "\Asem.txt" End Sub Private Sub BtnAdd_Click(sender As Object, e As EventArgs) Handles BtnAdd.Click If File1 = "" Then MsgBox("الرجاء تحديدالملف المطلوب أولا", MsgBoxStyle.Critical, "الرجاء إكمال خطوات البحث") Else FileOpen(1, File1, OpenMode.Append) WriteLine(1, TextBox1.Text) WriteLine(1, TextBox2.Text) WriteLine(1, TextBox3.Text) WriteLine(1, TextBox4.Text) WriteLine(1, TextBox5.Text) WriteLine(1, TextBox6.Text) FileClose(1) TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = "" TextBox6.Text = "" End If End Sub Private Sub BtnSearch_Click(sender As Object, e As EventArgs) Handles BtnSearch.Click Dim msg As String If TextBox2.Text = "" Then MsgBox("الرجاء إدخال الإسم في حقل الإسمَ", MsgBoxStyle.Critical, "الرجاء إكمال خطوات البحث") Else msg = TextBox2.Text If File1 = "" Then MsgBox("الرجاء تحديد المحافظة أو البلد المطلوب أولا", MsgBoxStyle.Critical, "الرجاء إكمال خطوات البحث") Else FileOpen(1, File1, OpenMode.Input) Do While Not EOF(1) Input(1, name1) : Input(1, number1) : Input(1, bsalary) : Input(1, a) : Input(1, B) : Input(1, n) If msg = number1 Then TextBox1.Text = name1 TextBox2.Text = number1 TextBox3.Text = bsalary TextBox4.Text = a TextBox5.Text = B TextBox6.Text = n End If Loop FileClose(1) End If End If End Sub
شكرا جزيلا لك
ولكن هل قرئت الموضوع وفهمت المطلوب؟!
RE: ما هي افضل طريقة للتعامل مع الملفات النصية او xml بطريقة خاصة؟ - asemshahen5 - 02-09-19
إقتباس :السلام عليكم
دلوقتي عندي مشروع فيه 3 فورم وملف نصي بجانب البرنامج فيه هذا القيم
=========
Login=دخول
User Name=اسم المستخدم
Exit=خروج
=========
وبستدعي قيم نصية لكل فورم
مثلا الفورم الاول بستدعي القيمة Login=دخول
والفورم الثاني Exit=خروج
والثالث User Name=اسم المستخدم
الكود يستعمل للاضافة و البحث في ملف نصي بجانب البرنامج عدله ليتناسب مع مثالك او برنامجك .
RE: ما هي افضل طريقة للتعامل مع الملفات النصية او xml بطريقة خاصة؟ - fouadhdfouad - 02-09-19
(02-09-19, 05:23 AM)الماجيك مسعد كتب : (02-09-19, 05:03 AM)asemshahen5 كتب : هذه اكواد اضافة و بحث عن سجل معين في ملف نوت باد بجانب البرنامج :
PHP كود :
Dim File1, name1, number1, bsalary, a, B, n As String Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load File1 = Application.StartupPath & "\Asem.txt" End Sub Private Sub BtnAdd_Click(sender As Object, e As EventArgs) Handles BtnAdd.Click If File1 = "" Then MsgBox("الرجاء تحديدالملف المطلوب أولا", MsgBoxStyle.Critical, "الرجاء إكمال خطوات البحث") Else FileOpen(1, File1, OpenMode.Append) WriteLine(1, TextBox1.Text) WriteLine(1, TextBox2.Text) WriteLine(1, TextBox3.Text) WriteLine(1, TextBox4.Text) WriteLine(1, TextBox5.Text) WriteLine(1, TextBox6.Text) FileClose(1) TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = "" TextBox6.Text = "" End If End Sub Private Sub BtnSearch_Click(sender As Object, e As EventArgs) Handles BtnSearch.Click Dim msg As String If TextBox2.Text = "" Then MsgBox("الرجاء إدخال الإسم في حقل الإسمَ", MsgBoxStyle.Critical, "الرجاء إكمال خطوات البحث") Else msg = TextBox2.Text If File1 = "" Then MsgBox("الرجاء تحديد المحافظة أو البلد المطلوب أولا", MsgBoxStyle.Critical, "الرجاء إكمال خطوات البحث") Else FileOpen(1, File1, OpenMode.Input) Do While Not EOF(1) Input(1, name1) : Input(1, number1) : Input(1, bsalary) : Input(1, a) : Input(1, B) : Input(1, n) If msg = number1 Then TextBox1.Text = name1 TextBox2.Text = number1 TextBox3.Text = bsalary TextBox4.Text = a TextBox5.Text = B TextBox6.Text = n End If Loop FileClose(1) End If End If End Sub
شكرا جزيلا لك
ولكن هل قرئت الموضوع وفهمت المطلوب؟!
كود :
Imports System.Xml
Imports System.IO
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim xmldoc As New XmlDocument
Dim xmlnode As XmlNodeList
Dim i As Integer
Dim str As String
Dim fs As New FileStream("products.xml", FileMode.Open, FileAccess.Read)
xmldoc.Load(fs)
xmlnode = xmldoc.GetElementsByTagName("Product")
For i = 0 To xmlnode.Count - 1
xmlnode(i).ChildNodes.Item(0).InnerText.Trim()
str = xmlnode(i).ChildNodes.Item(0).InnerText.Trim() & " " & xmlnode(i).ChildNodes.Item(1).InnerText.Trim() & " " & xmlnode(i).ChildNodes.Item(2).InnerText.Trim()
MsgBox(str)
Next
End Sub
End Class
RE: ما هي افضل طريقة للتعامل مع الملفات النصية او xml بطريقة خاصة؟ - الماجيك مسعد - 02-09-19
(02-09-19, 05:28 AM)asemshahen5 كتب : إقتباس :السلام عليكم
دلوقتي عندي مشروع فيه 3 فورم وملف نصي بجانب البرنامج فيه هذا القيم
=========
Login=دخول
User Name=اسم المستخدم
Exit=خروج
=========
وبستدعي قيم نصية لكل فورم
مثلا الفورم الاول بستدعي القيمة Login=دخول
والفورم الثاني Exit=خروج
والثالث User Name=اسم المستخدم
الكود يستعمل للاضافة و البحث في ملف نصي بجانب البرنامج عدله ليتناسب مع مثالك او برنامجك .
اعلم اخي
ولكن ابحث عن النقاش لافضل طريقة لتنفيذ المطلوب واسرعهم
(02-09-19, 10:35 AM)fouadhdfouad كتب : (02-09-19, 05:23 AM)الماجيك مسعد كتب : (02-09-19, 05:03 AM)asemshahen5 كتب : هذه اكواد اضافة و بحث عن سجل معين في ملف نوت باد بجانب البرنامج :
PHP كود :
Dim File1, name1, number1, bsalary, a, B, n As String Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load File1 = Application.StartupPath & "\Asem.txt" End Sub Private Sub BtnAdd_Click(sender As Object, e As EventArgs) Handles BtnAdd.Click If File1 = "" Then MsgBox("الرجاء تحديدالملف المطلوب أولا", MsgBoxStyle.Critical, "الرجاء إكمال خطوات البحث") Else FileOpen(1, File1, OpenMode.Append) WriteLine(1, TextBox1.Text) WriteLine(1, TextBox2.Text) WriteLine(1, TextBox3.Text) WriteLine(1, TextBox4.Text) WriteLine(1, TextBox5.Text) WriteLine(1, TextBox6.Text) FileClose(1) TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = "" TextBox6.Text = "" End If End Sub Private Sub BtnSearch_Click(sender As Object, e As EventArgs) Handles BtnSearch.Click Dim msg As String If TextBox2.Text = "" Then MsgBox("الرجاء إدخال الإسم في حقل الإسمَ", MsgBoxStyle.Critical, "الرجاء إكمال خطوات البحث") Else msg = TextBox2.Text If File1 = "" Then MsgBox("الرجاء تحديد المحافظة أو البلد المطلوب أولا", MsgBoxStyle.Critical, "الرجاء إكمال خطوات البحث") Else FileOpen(1, File1, OpenMode.Input) Do While Not EOF(1) Input(1, name1) : Input(1, number1) : Input(1, bsalary) : Input(1, a) : Input(1, B) : Input(1, n) If msg = number1 Then TextBox1.Text = name1 TextBox2.Text = number1 TextBox3.Text = bsalary TextBox4.Text = a TextBox5.Text = B TextBox6.Text = n End If Loop FileClose(1) End If End If End Sub
شكرا جزيلا لك
ولكن هل قرئت الموضوع وفهمت المطلوب؟!
كود :
Imports System.Xml
Imports System.IO
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim xmldoc As New XmlDocument
Dim xmlnode As XmlNodeList
Dim i As Integer
Dim str As String
Dim fs As New FileStream("products.xml", FileMode.Open, FileAccess.Read)
xmldoc.Load(fs)
xmlnode = xmldoc.GetElementsByTagName("Product")
For i = 0 To xmlnode.Count - 1
xmlnode(i).ChildNodes.Item(0).InnerText.Trim()
str = xmlnode(i).ChildNodes.Item(0).InnerText.Trim() & " " & xmlnode(i).ChildNodes.Item(1).InnerText.Trim() & " " & xmlnode(i).ChildNodes.Item(2).InnerText.Trim()
MsgBox(str)
Next
End Sub
End Class
هذا هو المطلوب تقريبا
ساقوم بالتجربة
ولكن بنظرك هل هذه الطريقة افضل واسرع؟
RE: ما هي افضل طريقة للتعامل مع الملفات النصية او xml بطريقة خاصة؟ - الماجيك مسعد - 02-09-19
شكرا لكم جميعا
وجدت كود في موقع اخر قام بتنفيذ العملية بشكل جيد
ولكن ارجو النظر الي السؤال
وايضا هذا الكود للافادة لمن يحتاجه لتعم الفائدة
كود :
Dim T As String() = IO.File.ReadAllLines("x.txt")
Dim D As String() = (From L As String In T Select L Where L = "UserName").ToArray
If D.Length > 0 Then
MsgBox(D(0))
End If
ممتاز جدا الله ينور عليك
هذا الكود نفذ العملية في 171
والكود الي كنت بستخدمه من 4 شهور نفذها في 591
ممكن الفرق ده يكون عادي بالنسبة لبعض المبرمجين
ولكن انا بحاجة للسرعة وافضل اداء خصوصا انى اعمل علي مشروع كبير ما يقارب من 69 فورم
وبستخدم هذا الكود عند فتح كل فورم
لذا سيفرق كثيرا
_________
فالبداية مكنتش بهتم بصراحة سوي بنجاح عمل الكود
لكن الان ابحث فقط عن افضل اداء واقل اكواد لتنفيذ المطلوب بشكل جيد
مجرد فضول
ماذا لو قسمت الملف النصي الي هذا الشكل
<Products>
<Product0>
<name>xxx</name>
<Id>0</Id>
</Product0>
<Product1>
<name>bbb</name>
<Id>1</Id>
</Product1>
</Products>
كيف سيكون هذا الكود
(From L As String In T Select L Where L = "UserName").ToArray
ليتعامل مع الملف المقسم
وكيف هيتم تحديث البحث فقط في Product
سواء كان Product0
او Product0
.....
|