تقييم الموضوع :
  • 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 , ابراهيم ايبو


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  طريقة عمل زر تراجع عن الامر undo احمد خطاب 1 360 , 02:20 AM
آخر رد: alnasser
  [VB.NET] مطلوب طريقة التعامل مع HP SCANNER osmana2005 1 97 03-12-19, 11:42 PM
آخر رد: محمد كريّم
  [VB.NET] طريقة اخرى للحفظ EMADSSS 2 142 18-11-19, 07:13 PM
آخر رد: EMADSSS
  [سؤال] ما هي طريقة وضع ملفات ال dll الخاصة بالبرنامج داخل مجلد princelovelorn 4 210 18-11-19, 08:45 AM
آخر رد: princelovelorn
  طريقة عمل KeyGen بالفيجوال بيسك دوت نت EHAB.NET 17 5,776 17-11-19, 04:32 PM
آخر رد: alsouf
  طريقة التفقيط لعملة دينار كويتى وقرائة 3 ارقام بعد العلامة ahmedramzyaish 4 222 15-11-19, 08:25 PM
آخر رد: 3booody
  ماهي طريقة نقل جميع محتويات كومبوبوكس على خلية واحدة معينة في الداتاقريد فيو جيولوجي مبتدئ 3 147 12-11-19, 10:49 AM
آخر رد: علي نوري
  ماهي طريقة تغيير لون خلية معينة في الكريستال ريبورت حسب قيمة معينة جيولوجي مبتدئ 3 171 10-11-19, 02:59 PM
آخر رد: baha
  طريقة تفكيك سفتوير fouadhdfouad 0 142 19-10-19, 09:01 PM
آخر رد: fouadhdfouad
  طريقة حفظ بإسم لجدول موجود في قاعدة البيانات مع بقاء الجدول الأساسي جيولوجي مبتدئ 11 540 15-10-19, 05:00 AM
آخر رد: elgokr

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


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