تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] ما هي افضل طريقة للتعامل مع الملفات النصية او xml بطريقة خاصة؟
#1
السلام عليكم
دلوقتي عندي مشروع فيه 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}
من الملف ويبحث فيهم
افضل واسرع من انه يبحث في كل الملف
هذا ما خطر ببالي
فكيف وايه افضل طريقة لتنفيذ عملية البحث والتقسيم هذه
وهل لديك اراء افضل من واسرع من ذلك؟
الرد
تم الشكر بواسطة:
#2
هذه اكواد اضافة و بحث عن سجل معين في ملف نوت باد بجانب البرنامج :

PHP كود :
 Dim File1name1number1bsalaryaBAs String
   
Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
       File1 
Application.StartupPath "\Asem.txt"
 
  End Sub
   
Private Sub BtnAdd_Click(sender As ObjectAs EventArgsHandles BtnAdd.Click
       
If File1 "" Then
           MsgBox
("الرجاء تحديدالملف المطلوب أولا"MsgBoxStyle.Critical"الرجاء إكمال خطوات البحث")
 
      Else
 
          FileOpen(1File1OpenMode.Append)
 
          WriteLine(1TextBox1.Text)
 
          WriteLine(1TextBox2.Text)
 
          WriteLine(1TextBox3.Text)
 
          WriteLine(1TextBox4.Text)
 
          WriteLine(1TextBox5.Text)
 
          WriteLine(1TextBox6.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 ObjectAs EventArgsHandles 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(1File1OpenMode.Input)
 
              Do While Not EOF(1)
 
                  Input(1name1) : Input(1number1) : Input(1bsalary) : Input(1a) : Input(1B) : Input(1n)
 
                  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 
الرد
تم الشكر بواسطة: ابراهيم ايبو
#3
(02-09-19, 05:03 AM)asemshahen5 كتب : هذه اكواد اضافة و بحث عن سجل معين في ملف نوت باد بجانب البرنامج :

PHP كود :
 Dim File1name1number1bsalaryaBAs String
   
Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
       File1 
Application.StartupPath "\Asem.txt"
 
  End Sub
   
Private Sub BtnAdd_Click(sender As ObjectAs EventArgsHandles BtnAdd.Click
       
If File1 "" Then
           MsgBox
("الرجاء تحديدالملف المطلوب أولا"MsgBoxStyle.Critical"الرجاء إكمال خطوات البحث")
 
      Else
 
          FileOpen(1File1OpenMode.Append)
 
          WriteLine(1TextBox1.Text)
 
          WriteLine(1TextBox2.Text)
 
          WriteLine(1TextBox3.Text)
 
          WriteLine(1TextBox4.Text)
 
          WriteLine(1TextBox5.Text)
 
          WriteLine(1TextBox6.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 ObjectAs EventArgsHandles 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(1File1OpenMode.Input)
 
              Do While Not EOF(1)
 
                  Input(1name1) : Input(1number1) : Input(1bsalary) : Input(1a) : Input(1B) : Input(1n)
 
                  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 

شكرا جزيلا لك
ولكن هل قرئت الموضوع وفهمت المطلوب؟!
الرد
تم الشكر بواسطة: asemshahen5 , ابراهيم ايبو
#4
إقتباس :السلام عليكم
دلوقتي عندي مشروع فيه 3 فورم وملف نصي بجانب البرنامج فيه هذا القيم
=========
Login=دخول
User Name=اسم المستخدم
Exit=خروج
=========
وبستدعي قيم نصية لكل فورم

مثلا الفورم الاول بستدعي القيمة Login=دخول
والفورم الثاني Exit=خروج
والثالث User Name=اسم المستخدم

الكود يستعمل للاضافة و البحث في ملف نصي بجانب البرنامج عدله ليتناسب مع مثالك او برنامجك .
الرد
تم الشكر بواسطة: ابراهيم ايبو
#5
(02-09-19, 05:23 AM)الماجيك مسعد كتب :
(02-09-19, 05:03 AM)asemshahen5 كتب : هذه اكواد اضافة و بحث عن سجل معين في ملف نوت باد بجانب البرنامج :

PHP كود :
 Dim File1name1number1bsalaryaBAs String
   
Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
       File1 
Application.StartupPath "\Asem.txt"
 
  End Sub
   
Private Sub BtnAdd_Click(sender As ObjectAs EventArgsHandles BtnAdd.Click
       
If File1 "" Then
           MsgBox
("الرجاء تحديدالملف المطلوب أولا"MsgBoxStyle.Critical"الرجاء إكمال خطوات البحث")
 
      Else
 
          FileOpen(1File1OpenMode.Append)
 
          WriteLine(1TextBox1.Text)
 
          WriteLine(1TextBox2.Text)
 
          WriteLine(1TextBox3.Text)
 
          WriteLine(1TextBox4.Text)
 
          WriteLine(1TextBox5.Text)
 
          WriteLine(1TextBox6.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 ObjectAs EventArgsHandles 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(1File1OpenMode.Input)
 
              Do While Not EOF(1)
 
                  Input(1name1) : Input(1number1) : Input(1bsalary) : Input(1a) : Input(1B) : Input(1n)
 
                  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
الرد
#6
(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 File1name1number1bsalaryaBAs String
   
Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
       File1 
Application.StartupPath "\Asem.txt"
 
  End Sub
   
Private Sub BtnAdd_Click(sender As ObjectAs EventArgsHandles BtnAdd.Click
       
If File1 "" Then
           MsgBox
("الرجاء تحديدالملف المطلوب أولا"MsgBoxStyle.Critical"الرجاء إكمال خطوات البحث")
 
      Else
 
          FileOpen(1File1OpenMode.Append)
 
          WriteLine(1TextBox1.Text)
 
          WriteLine(1TextBox2.Text)
 
          WriteLine(1TextBox3.Text)
 
          WriteLine(1TextBox4.Text)
 
          WriteLine(1TextBox5.Text)
 
          WriteLine(1TextBox6.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 ObjectAs EventArgsHandles 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(1File1OpenMode.Input)
 
              Do While Not EOF(1)
 
                  Input(1name1) : Input(1number1) : Input(1bsalary) : Input(1a) : Input(1B) : Input(1n)
 
                  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

هذا هو المطلوب تقريبا
ساقوم بالتجربة
ولكن بنظرك هل هذه الطريقة افضل واسرع؟
الرد
تم الشكر بواسطة: asemshahen5 , ابراهيم ايبو
#7
شكرا لكم جميعا
وجدت كود في موقع اخر قام بتنفيذ العملية بشكل جيد
ولكن ارجو النظر الي السؤال
وايضا هذا الكود للافادة لمن يحتاجه لتعم الفائدة
كود :
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

.....
الرد
تم الشكر بواسطة: asemshahen5 , ابراهيم ايبو


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] طريقة سحاب روبط قائيمة التشغيل Kareem2021 3 293 23-09-21, 04:04 AM
آخر رد: ابو روضة
  [VB.NET] فصل جزء من الرقم بطريقة خاصة kaleed198 2 172 22-09-21, 11:59 PM
آخر رد: kaleed198
  طريقة تطبيق هذا الكود عل الدتا قريد ahmedbezia 2 287 17-09-21, 01:52 PM
آخر رد: ahmedbezia
  طريقة لفتح نوافذ مبيعات مختلفة في نفس الوقت وكل فاتورة لها رقم تلقائي tfarejdz 9 1,511 08-09-21, 07:25 PM
آخر رد: tfarejdz
  طريقة استعمال الهاتف كقارئ باركود وربطه بالكمبيوتر ahmedbezia 3 367 30-08-21, 09:25 PM
آخر رد: asemshahen5
  ممكن طريقة نقل الاسماء من datagridview الى textbox العطر الرايق 2 565 31-07-21, 01:56 PM
آخر رد: العطر الرايق
  ممكن طريقة نقل اسماء من datagridview الي اكثر من textbox العطر الرايق 1 506 27-07-21, 03:59 AM
آخر رد: aldery
  اريد طريقة لاتقاط سكرين شوت وحفظها تلقائي في مجلد من ملفات برنامجي 4545Mohamed 2 501 08-07-21, 01:00 PM
آخر رد: 4545Mohamed
  طريقة حذف فورم اثناء تشغيل البرنامج Basil Abdallah 3 700 30-05-21, 12:58 AM
آخر رد: mrfenix93
  اريد طريقة للدوران علي ملفات الرسورسز الخاصة بالبرنامج أبو عبدالله الحلواني 3 708 16-05-21, 06:02 PM
آخر رد: أبو عبدالله الحلواني

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم