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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Heart [سؤال] السلام علام مطلوب طريقة التحقق من كول الكلمة المتكرار في اليسة بوكس وضعها في التيكس ب Ali 2020 0 52 منذ 10 ساعة مضت
آخر رد: Ali 2020
  الملفات الناتجة اكثر من المستخدمة في مكونات ديفاكسبريس ابو محمد محمد محمد 3 200 , 12:29 AM
آخر رد: محمد كريّم
  هل من طريقة checkcombobox في vb.net waeella 1 185 28-09-20, 04:33 AM
آخر رد: Rabeea Qbaha
  [سؤال] ممكن طريقة اخفاء ملف bat عند ضغط على زر في اداة jam3h 10 193 25-09-20, 02:55 PM
آخر رد: Anas Mahmoud
  طريقة عرض البرنامج بالشكل الكامل عمور2016 9 300 23-09-20, 01:46 AM
آخر رد: عمور2016
Rainbow [سؤال] ممكن طريقة عمل زر يذهب الي اخر سطر بتيكس بوكس Ali 2020 9 215 13-09-20, 10:12 PM
آخر رد: Ali 2020
  [VB.NET] ارجو المساعدة في برنامج لتشغيل الملفات الصوتية لنطق الارقام eman kh 5 316 13-09-20, 06:05 PM
آخر رد: eman kh
  [سؤال] طريقة عمل برنامج دمج ملفات التيكس بوكس Ali 2020 2 142 11-09-20, 07:44 PM
آخر رد: Ali 2020
  [سؤال] طريقة التحقق هل انا وقف علي اخر سطر في اليسة بوكس Ali 2020 1 142 10-09-20, 07:22 AM
آخر رد: diggitalk2017@gmail.com
  [سؤال] تنظيم ارفاق المستندات في قاعدة البيانات Sql واحضار الملفات حسب قيمة البحث محمد العامر 10 460 07-09-20, 12:28 AM
آخر رد: محمد العامر

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


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