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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  سؤال حول أفضل طريقة لتصميم برنامج أختيار الأجابة الصحيحة aldery 2 101 أمس, 03:23 PM
آخر رد: aldery
  مساعدة بطريقة اضافة عروض لبرنامج مبيعات Rabeea Qbaha 12 254 أمس, 11:57 AM
آخر رد: asemshahen5
  طريقة حفظ بإسم لجدول موجود في قاعدة البيانات مع بقاء الجدول الأساسي جيولوجي مبتدئ 9 160 12-10-19, 07:37 PM
آخر رد: elgokr
  طريقة الكتابة على البطاقة الممغنطة. Rabeea Qbaha 5 135 08-10-19, 05:59 PM
آخر رد: Rabeea Qbaha
  كود او طريقة الضغط على الانتر ortex.2016 1 101 26-09-19, 04:01 PM
آخر رد: AbdoDabak
  [VB.NET] ما هي الملفات dll المفروض ارفاقها في reference لتشغيل ريبورت فيوير 2015 khairallah 1 86 18-09-19, 02:20 AM
آخر رد: اسامه الهرماوي
  [سؤال] طريقة جعل الكتابه تظهر في الليبل افقياً بلتوالي كما في شريط الاخبار في القنوات؟ alshamy 3 146 07-09-19, 06:09 PM
آخر رد: ابراهيم ايبو
  طريقة عرض أكثر من جدول في الكريستال ريبورت جيولوجي مبتدئ 4 194 05-09-19, 12:00 AM
آخر رد: ابراهيم ايبو
  سؤال حول طريقة ربط الداتا بيس اون لاين bakriano30@yahoo.com 1 133 30-08-19, 02:18 AM
آخر رد: asemshahen5
  [سؤال] اريد طريقة فعالة لحذف Webbrowser cache قبل تحميل صفحة جديدة dametucorazon 2 145 27-08-19, 07:16 PM
آخر رد: dametucorazon

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


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