المشاركات : 27
المواضيع 10
الإنتساب : Aug 2016
السمعة :
0
الشكر: 26
تم شكره 18 مرات في 10 مشاركات
Pro1.rar (الحجم : 71.55 ك ب / التحميلات : 31)
السلام عليكم ورحمتة اللة وبركاتة
ارجو المساعد بالتعديل علي الكود
لدي المتغير mytxt وهو عبارة عن جدول بيانات مستخدمين
في الزر الاول قمت بفلترت اسماء المستخدمين فقط ووضعهم بداخل ال ComboBox1
لكن المشكلة هي عندما يزيد عدد بيانات المستخدمين بداخل المتغير mytxt الي 300
البرنامج لايستجيب مع العلم ان العدد المرفق الان في المثال بيانات 93 مستخدم حيث وان
العدد قد يصل الي اكثر من 2000 .
الشي الثاني اريد طباعة بيانات كل مستخدم علي ListView1
المشاركات : 27
المواضيع 10
الإنتساب : Aug 2016
السمعة :
0
الشكر: 26
تم شكره 18 مرات في 10 مشاركات
ارجو المســــــــــــــــاعدة
المشاركات : 249
المواضيع 2
الإنتساب : Apr 2016
السمعة :
34
الشكر: 342
تم شكره 290 مرات في 187 مشاركات
25-09-16, 11:50 PM
(آخر تعديل لهذه المشاركة : 25-09-16, 11:51 PM {2} بواسطة ممدوح.)
وعليكم السلام ورحمة الله وبركاته
عملت لك دالة خاصة لمشروعك وضيفتها تحويل هذه السلسة النصية الخاصة إلى Datatable لكي يسهل التعامل مع بيانتها في البحث بسهول باستخدام Linq
كود :
#Region " StringToDatatable "
Function StringToDatatable(ByVal s As String) As DataTable
Dim mDataTable As New DataTable
mDataTable.Columns.AddRange(New DataColumn() {New DataColumn("id"), New DataColumn("customer"), New DataColumn("name"), New DataColumn("actual-profile")})
mDataTable.Columns.AddRange(New DataColumn() {New DataColumn("password"), New DataColumn("shared-users"), New DataColumn("wireless-psk")})
mDataTable.Columns.AddRange(New DataColumn() {New DataColumn("wireless-enc-key"), New DataColumn("wireless-enc-algo"), New DataColumn("last-seen")})
mDataTable.Columns.AddRange(New DataColumn() {New DataColumn("active"), New DataColumn("incomplete"), New DataColumn("disabled")})
Dim q =
From x As String
In (From x As System.Text.RegularExpressions.Match In System.Text.RegularExpressions.Regex.Matches(s, "(?<=!re).+?(?=!)") Select x.Value)
Select New user With {
.id = System.Text.RegularExpressions.Regex.Match(x, "(?<==.id=).*?(?==)").Value,
.customer = System.Text.RegularExpressions.Regex.Match(x, "(?<==customer=).*?(?==)").Value,
.name = System.Text.RegularExpressions.Regex.Match(x, "(?<==name=).*?(?==)").Value,
.actual_profile = System.Text.RegularExpressions.Regex.Match(x, "(?<==actual-profile=).*?(?==)").Value,
.password = System.Text.RegularExpressions.Regex.Match(x, "(?<==password=).*?(?==)").Value,
.shared_users = System.Text.RegularExpressions.Regex.Match(x, "(?<==shared-users=).*?(?==)").Value,
.wireless_psk = System.Text.RegularExpressions.Regex.Match(x, "(?<==wireless-psk=).*?(?==)").Value,
.wireless_enc_key = System.Text.RegularExpressions.Regex.Match(x, "(?<==wireless-enc-key=)*?(?==)").Value,
.wireless_enc_algo = System.Text.RegularExpressions.Regex.Match(x, "(?<==wireless-enc-algo=).*?(?==)").Value,
.last_seen = System.Text.RegularExpressions.Regex.Match(x, "(?<==last-seen=).*?(?==)").Value,
.active = System.Text.RegularExpressions.Regex.Match(x, "(?<==active=).*?(?==)").Value,
.incomplete = System.Text.RegularExpressions.Regex.Match(x, "(?<==incomplete=).*?(?==)").Value,
.disabled = System.Text.RegularExpressions.Regex.Match(x, "(?<==disabled=).*").Value
}
For Each u As user In q
mDataTable.Rows.Add(u.id, u.customer, u.name, u.actual_profile, u.password, u.shared_users, u.wireless_psk, u.wireless_enc_key,
u.wireless_enc_algo, u.last_seen, u.active, u.incomplete, u.disabled)
Next
Return mDataTable
End Function
Structure user
Dim id As String
Dim customer As String
Dim name As String
Dim actual_profile As String
Dim password As String
Dim shared_users As String
Dim wireless_psk As String
Dim wireless_enc_key As String
Dim wireless_enc_algo As String
Dim last_seen As String
Dim active As String
Dim incomplete As String
Dim disabled As String
End Structure
#End Region
جربها بفورم جديد في زر وأداة داتاجريدفيو
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim dt As DataTable = StringToDatatable(mytxt)
Me.DataGridView1.DataSource = dt
End Sub
والأفضل أن تضع البيانات النصية في ملف نصي وليس في الكود
المشاركات : 27
المواضيع 10
الإنتساب : Aug 2016
السمعة :
0
الشكر: 26
تم شكره 18 مرات في 10 مشاركات
(25-09-16, 11:50 PM)ممدوح كتب : وعليكم السلام ورحمة الله وبركاته
عملت لك دالة خاصة لمشروعك وضيفتها تحويل هذه السلسة النصية الخاصة إلى Datatable لكي يسهل التعامل مع بيانتها في البحث بسهول باستخدام Linq
كود :
#Region " StringToDatatable "
Function StringToDatatable(ByVal s As String) As DataTable
Dim mDataTable As New DataTable
mDataTable.Columns.AddRange(New DataColumn() {New DataColumn("id"), New DataColumn("customer"), New DataColumn("name"), New DataColumn("actual-profile")})
mDataTable.Columns.AddRange(New DataColumn() {New DataColumn("password"), New DataColumn("shared-users"), New DataColumn("wireless-psk")})
mDataTable.Columns.AddRange(New DataColumn() {New DataColumn("wireless-enc-key"), New DataColumn("wireless-enc-algo"), New DataColumn("last-seen")})
mDataTable.Columns.AddRange(New DataColumn() {New DataColumn("active"), New DataColumn("incomplete"), New DataColumn("disabled")})
Dim q =
From x As String
In (From x As System.Text.RegularExpressions.Match In System.Text.RegularExpressions.Regex.Matches(s, "(?<=!re).+?(?=!)") Select x.Value)
Select New user With {
.id = System.Text.RegularExpressions.Regex.Match(x, "(?<==.id=).*?(?==)").Value,
.customer = System.Text.RegularExpressions.Regex.Match(x, "(?<==customer=).*?(?==)").Value,
.name = System.Text.RegularExpressions.Regex.Match(x, "(?<==name=).*?(?==)").Value,
.actual_profile = System.Text.RegularExpressions.Regex.Match(x, "(?<==actual-profile=).*?(?==)").Value,
.password = System.Text.RegularExpressions.Regex.Match(x, "(?<==password=).*?(?==)").Value,
.shared_users = System.Text.RegularExpressions.Regex.Match(x, "(?<==shared-users=).*?(?==)").Value,
.wireless_psk = System.Text.RegularExpressions.Regex.Match(x, "(?<==wireless-psk=).*?(?==)").Value,
.wireless_enc_key = System.Text.RegularExpressions.Regex.Match(x, "(?<==wireless-enc-key=)*?(?==)").Value,
.wireless_enc_algo = System.Text.RegularExpressions.Regex.Match(x, "(?<==wireless-enc-algo=).*?(?==)").Value,
.last_seen = System.Text.RegularExpressions.Regex.Match(x, "(?<==last-seen=).*?(?==)").Value,
.active = System.Text.RegularExpressions.Regex.Match(x, "(?<==active=).*?(?==)").Value,
.incomplete = System.Text.RegularExpressions.Regex.Match(x, "(?<==incomplete=).*?(?==)").Value,
.disabled = System.Text.RegularExpressions.Regex.Match(x, "(?<==disabled=).*").Value
}
For Each u As user In q
mDataTable.Rows.Add(u.id, u.customer, u.name, u.actual_profile, u.password, u.shared_users, u.wireless_psk, u.wireless_enc_key,
u.wireless_enc_algo, u.last_seen, u.active, u.incomplete, u.disabled)
Next
Return mDataTable
End Function
Structure user
Dim id As String
Dim customer As String
Dim name As String
Dim actual_profile As String
Dim password As String
Dim shared_users As String
Dim wireless_psk As String
Dim wireless_enc_key As String
Dim wireless_enc_algo As String
Dim last_seen As String
Dim active As String
Dim incomplete As String
Dim disabled As String
End Structure
#End Region
جربها بفورم جديد في زر وأداة داتاجريدفيو
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim dt As DataTable = StringToDatatable(mytxt)
Me.DataGridView1.DataSource = dt
End Sub
والأفضل أن تضع البيانات النصية في ملف نصي وليس في الكود
الف شكرر لك اخي العزيز
المشاركات : 27
المواضيع 10
الإنتساب : Aug 2016
السمعة :
0
الشكر: 26
تم شكره 18 مرات في 10 مشاركات
(26-09-16, 12:06 AM)HASAN6.0 كتب : كود غريب !!!
على العموم فقط غير الـFunction Rad الى التالي
PHP كود :
Public Function Rad() As List(Of String) ' الطريقة الاولة Dim out As New List(Of String)
Dim xx As String : xx = "=name=" Dim yy As String : yy = "="
For Each i As Match In Regex.Matches(txt, xx & "(?<value>.*?)" & yy) out.Add(i.Groups("value").Value) Next
Return out End Function
طبعاً في اعلى الكلاس اكتب
PHP كود :
Imports System.Text.RegularExpressions
مشروعك بالمرفقات
الف شكر اخي حسين
|