29-04-15, 04:47 PM
(28-04-15, 12:02 AM)sami2015 كتب : Dim connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Subtitles.accdb"
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox2.Text = ReplaceTranslate(TextBox1.Text)
End Sub
Function ReplaceTranslate(ByVal txt As String) As String
Try
Using adp As New OleDb.OleDbDataAdapter("SELECT * FROM [Subtitles]", connectionString)
Using tbl As New DataTable
If adp.Fill(tbl) > 0 Then
For Each row As DataRow In tbl.Rows
txt = System.Text.RegularExpressions.Regex.Replace(txt, row.Item("English"), row.Item("Arabic"), System.Text.RegularExpressions.RegexOptions.IgnoreCase)
Next
End If
End Using
End Using
Return txt
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
لقد قمت بتعديل الكود
حذفت function بالكامل ووضعت الكود كله فى مهام Button1_Click فأصبح كالتالى:
كود :
Using connectionString As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=MovieDic1.0.0.0.0.accdb")
connectionString.Open()
Try
Using adp As New OleDb.OleDbDataAdapter("SELECT * FROM [Subtitles]", connectionString)
Using tbl As New DataTable
If adp.Fill(tbl) > 0 Then
For Each row As DataRow In tbl.Rows
TextBox2.Text = System.Text.RegularExpressions.Regex.Replace(TextBox1.Text, row.Item("English"), row.Item("Arabic"), System.Text.RegularExpressions.RegexOptions.IgnoreCase)
Next
End If
End Using
End Using
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Usingولكن هناك مشكلة حيث أن البرنامج لا يستحضر إلا ال row الأخير من قاعدة البيانات فقط
فأنا قد أضفت 7 صفوف من ملف txt كتجربة للكود
فإذا كتبت النص الإنجليزى فى أى صف من الصفوف الـ 6 الأولى يعيده البرنامج دون ترجمته
وكأنه غير موجود فى قاعدة البيانات أما الصف السابع يعمل جيداً
بحثت على جوجل ووجدت حل يقول أن على إضافة & كى تعمل جميع الصفوف
أضفتها كالتالى:
كود :
TextBox2.Text &= System.Text.RegularExpressions.Regex.Replace(TextBox1.Text, row.Item("English"), row.Item("Arabic"), System.Text.RegularExpressions.RegexOptions.IgnoreCase)وفعلاً جميع الصفوف تعمل ولكن البرنامج يبحث عن النص فى جميع الصفوف
انظر لهذه الصورة:
http://www9.0zz0.com/2015/04/29/15/551686480.jpg
كما تلاحظ تم تكرار النص الانجليزى 6 مرات وهى عدد الصفوف التى لا تحتوى على النص
وكتابته بالعربية مرة واحدة وهو الصف الوحيد المحتوى عليه
هل تستطيع مساعدتى فى تعديل هذا الخطأ؟؟؟
