تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] كيفية حفظ عناصر DataGridView الى ملف نصى text file
#1
السلام عليكم

اريد كيفية حفظ عناصر DataGridView الى ملف نصى text file


صورة من الاداة



اريد حفظ الارقام الموجودة فى عمود IP

ولكن بشروط معينة

اولا

يتم التحقق من هذه الارقام

5.189.201.0 - 5.189.201.127
5.254.105.152 - 5.254.105.159
23.236.140.0 - 23.236.140.255
31.14.248.0 - 31.14.248.255

واريد انا احفظ الارقام المحصورة بينهم

مثال

من 5.189.201.127
الى 5.189.201.0
ومن 5.254.105.159
الى 5.254.105.152
وهكذا

انا فكرت ان استخرج الاكواد المحصورة بين الارقام

واتحقق منها ولكن لقيت ان البرنامج هيعلق وهيستخدم وقت كثير للحفظ

لان الاداة سوف يكون فيها عناصر من 100الف الى 500 الف تقريبا

فلذلك كتبت موضوعى هنا
لكى تساعدونى بطريقة تكون اسهل واسرع

بانتظاركم يا شباب ومشكورين مقدما
الرد }}}}
تم الشكر بواسطة:
#2
طلبك ليس صعبا لكنه يحتاج الي وقت

اولا بما انه ليس هناك صورة توضح البيانات في الداتاجريدفيو
هنا مهم جدا أن نعرف كم عدد الأعمدة في الداتاجريد فيو لأن هذا سوف يحدد  اي الاعمدة سوف نستخدم لتحويل بياناته الي مصفوفة

عموما الفكرة هنا عبارة عن استخدام DataSource الخاصة ب الداتاجريد فيو و تحويلها الي مصفوفة عناصر  أو الي DataTable مثلا
ثم تستخدم Serialization و De-Serialization لحفظ العناصر في ملف او لإسترجاع العناصر من الملف
أما نوع الملف فقد يكون xmal او تكست أو اي ملف

و المقصود بعملية  Serialization و De-Serializatio
انك تستخدم FileStream مع BinaryFormatter لحفظ او استرجاع عناصر  المصفوفة من الملف

و الكود الخاص بهذا سيكون شيئا من هذا القبيل و هو الحل لمشكلتك
وعليك فقط ان تستخدم كلمة IP بدلا من كلمة Object
والكود مكتوب ب اسلوب ان الحفظ يتم في ملف تحدد انت الاسم الخاص به و تحدد امتداده أيضا

PHP كود :
   Public Sub Serialize(fileName As String, list As IEnumerable(Of Object))

 
       Dim fs As System.IO.FileStream = New System.IO.FileStream(fileNameSystem.IO.FileMode.OpenOrCreate)
 
       Dim formatter As System.Runtime.Serialization.Formatters.Binary.BinaryFormatter = New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()
 
       Try
            formatter
.Serialize(fs, list)
 
           fs.Close()
 
       Catch ex As System.Runtime.Serialization.SerializationException
            MessageBox
.Show(ex.Message ": " ex.StackTrace"Error"MessageBoxButtons.OKMessageBoxIcon.Error)
 
       End Try

 
   End Sub

    Public 
Function Deserialize(fileName As String) As IEnumerable(Of Object)

 
       Dim fs As System.IO.FileStream = New System.IO.FileStream(fileNameSystem.IO.FileMode.Open)
 
       Dim list As New List(Of Object)()

 
       Try
            Dim Formatter 
As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()
 
           list Formatter.Deserialize(fs)
 
           fs.Close()
 
           Return list
 
       Catch ex As System.Runtime.Serialization.SerializationException
            MessageBox
.Show(ex.StackTraceex.MessageMessageBoxButtons.OKMessageBoxIcon.Error)
 
           Return list
 
       End Try

 
   End Function 


نصيحتي لك أن تبني كلاس يكون اساسه العناصر  التي سوف يتم حفظها خاصة اذا كان لديك اكثر من عنصر غير IP سوف يتم حفظه في الملف

ثم تبني Collection لهذا الكلاس حتي تستطيع ان تتحكم بعناصر المصفوفة بشكل أفضل أثناء عملية ظهورها في الداتاجريد فيو او أثناء حفظها في الملف

حل أخر

وهذا الحل مناسب جدا خاصة ان كانت البيانات المراد تخزينها بيانات غير حساسة
انك تستخدم XmlTextReader , لقراءة البيانات وتستخدم XmlTextWriter لحفظ البيانات

حل أخر

انك تستخدم BinaryReader مع BinaryWriter


عموما الأمر محتاج مجهود منك لتخزين البيانات بشكل دقيق حسب اهمية و نوعية البيانات
الرد }}}}
تم الشكر بواسطة: HASAN6.0 , khodor1985 , khodor1985
#3
اسف لانى لم اضع صورة

السلام عليكم

اريد كيفية حفظ عناصر DataGridView الى ملف نصى text file


صورة من الاداة



اريد حفظ الارقام الموجودة فى عمود IP

ان اريد ان اعدل طلبي حتى يسهل على عمله وفهمه

اريد الحفظ عن طريق اسم البلد

كل بلد يتم حفظ الايبهات بتاعتها فى ملف نصى لوحدها

مثلا
Egypt.txt
Angola.txt
وهكذا

اعتقد هذا هو الحل الاسهل والافضل

لان القايمة هتكون فوق 500الف ايبى

ولو حفظت عن طريق الايبهات

يبقا هحتاج شهر عشان اكتر كل الايبهات فى الكود

واسبوع عشان يحفظ قائمة واحدة

هذا خطى بعتذر عن ذلك

المطلوب

اريد الحفظ عن طريق اسم البلد

كل بلد يتم حفظ الايبهات بتاعتها فى ملف نصى لوحدها

مثلا
Egypt.txt
Angola.txt
وهكذا

الفكرة لم لم يفهم جيدا

لدى 3 عواميد

العمود الاول فيه الايبى
العمود الثانى فيه اسم البلد
العمود الثالث فيه علم البلد

المفروض نعمل كود يحفظ ايبهات مصر فى ملف نصى لوحدها
وايبهات انجولا فى ملف لوحدها وهكذا

واسف على الاطالة

بانتظار المساعدة

ومشكورين مقدما
الرد }}}}
تم الشكر بواسطة:
#4
هل من حل او مساعد يا شباب
انا محتاج مساعدة فى اقرب وقت ان امكن
ومشكورين مقدما

لكل من حاول المساعدة -
الرد }}}}
تم الشكر بواسطة:
#5
السلام عليكم أخي العزيز ورحمة الله وبركاته

الصور :
   

   

   

الأكواد:
PHP كود :
If Me.DataGridView1.CurrentRow.Cells(1).Selected True Then

            Dim txtCountryName 
As String Me.DataGridView1.CurrentRow.Cells(2).Value
            Dim txtIP 
As String Me.DataGridView1.CurrentRow.Cells(1).Value

            If File
.Exists("D:\" & txtCountryName & ".txt") Then
                File.Delete("
D:\" & txtCountryName & ".txt")
            End If

            Dim stWriter As New System.IO.StreamWriter("
D:\" & txtCountryName & ".txt", False)
            stWriter.WriteLine(txtIP)
            stWriter.Close()

        End If 

المشروع :
.rar   khodor - IPAPP.rar (الحجم : 63.23 ك ب / التحميلات : 9)

قاعدة البيانات ضعها في المسار D:
.rar   khodorDB.rar (الحجم : 16.36 ك ب / التحميلات : 6)

أتمنى لكم التوفيق
الرد }}}}
تم الشكر بواسطة:
#6
اخى الغالى

شكرا لك معلش تعبتك معى

ولكنى لا استعمل قواعد البيانات

عموما انا لقيت حل فى موقع اخر

والحمدلله افاد بالغرض

هذا هو الكود

Dim y As Integer = 0
Dim strFile As String
Dim sw1 As StreamWriter
Do Until y = DataGridView1.RowCount - 1
Dim x As String = DataGridView1.Rows(y).Cells(1).Value
strFile = x & ".txt"
If (Not File.Exists(strFile)) Then
sw1 = File.CreateText(strFile)
sw1.WriteLine(DataGridView1.Rows(y).Cells(0).Value)
sw1.Close()
Else
sw1 = (File.AppendText(strFile))
sw1.WriteLine(DataGridView1.Rows(y).Cells(0).Value)
sw1.Close()
End If
y = y + 1
Loop


شكرا لكم جميعا

اتمنى اغلاق الموضوع للانتهاء
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيفية تخفيض مستوي الامان في الاكسل atefkhalf2004 7 84 28-11-16, 06:48 PM
آخر رد: atefkhalf2004
Question [VB.NET] كيفية ربط أى حقل IFieldObject بعمود بجدول برمجياً Crystal Reports newvbdev 4 114 23-11-16, 08:51 PM
آخر رد: newvbdev
  تقسيم text الى عدة listbox rabeh.ram 4 106 22-11-16, 12:06 AM
آخر رد: rabeh.ram
  التعديل علي datagridview باستخدام sql command dark1459 6 139 21-11-16, 11:55 AM
آخر رد: dark1459
  [VB.NET] DataGridView بطيء جدا ساعدوني لاجد حل dubai.eig 4 139 20-11-16, 09:22 PM
آخر رد: ابو ليلى
  اضافة عمود من نوع image ل bound datagridview noway 1 70 17-11-16, 12:08 PM
آخر رد: Genius Live
  [VB.NET] http file upload dubai.eig 3 81 16-11-16, 09:50 PM
آخر رد: dubai.eig
Photo [سؤال] لدي مشكله DataGridView أحمد العرب 4 138 16-11-16, 10:26 AM
آخر رد: أحمد العرب
  كيف يمكن اضافة مجموعة حقول الي datagridview والتعديل عليها مباشرتا dark1459 2 69 15-11-16, 10:30 PM
آخر رد: السرور
  فحص لــ القيمة المدخلة فى حقل مفتاح رئيسى Unique Key ل datagridview noway 6 138 15-11-16, 09:06 AM
آخر رد: noway

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


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