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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  محتاج طريقة لتنسيق نص الرسالة المرسلة إلى الواتس اب new_programer 2 163 04-03-24, 07:15 AM
آخر رد: new_programer
  طريقة اجراء نسخة احتياطية و استرجاعها ؟ Osama NY 2 462 07-02-24, 08:59 PM
آخر رد: Kamil
  ماهي طريقة نقل محتويات checkedlistbox الى داتاقريدفيو صالح عبدالله 3 253 06-01-24, 03:20 PM
آخر رد: Kamil
  [VB.NET] ما هي طريقة استدعاء الازرار في الكيبورد من خلار زر افتراضي haider.mohsin92 1 295 14-12-23, 03:19 PM
آخر رد: Kamil
  طريقة عرض التقرير كريستال ريبورت في جهاز العميل Adel27213 2 347 10-12-23, 04:03 AM
آخر رد: Adel27213
  طريقة إسناد اكثر من جدول للكريستال ريبورت Adel27213 2 353 25-11-23, 11:51 PM
آخر رد: Adel27213
  طريقة تحويل الأرقام إلى حروف Adel27213 2 495 18-11-23, 01:40 AM
آخر رد: sniper2030
  متغيرات اسماء الملفات atefkhalf2004 1 337 15-11-23, 02:40 PM
آخر رد: atefkhalf2004
  التحكم فى عرض طريقة التاريخ فى الاداة datetimepicker Ahmed.vb 3 507 08-11-23, 01:27 AM
آخر رد: الحزين اليماني
  طريقة جلب صف من قاعدة البيانات بشرط العمود ٤ لا يساوي فارغ Adel27213 2 423 07-11-23, 05:02 AM
آخر رد: Adel27213

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


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