26-06-19, 02:16 AM
اخواني الكرام لقد كان الحل فقط في اعادة فورم جديد فلقد قمت بالتعديل المتكرر على الملفات وهذا سبب لي المشكل و لكن حين قمت بالتعديل من بداية اللكود الى نهايته وتحديد حجم النص لم أجد اي مشاكل في ذلك
لكن تبقى لي مشكلة وحيدة وهي أن النص صار يقبل عندي في قاعدة البيانات
لكن في خلال حفظي له بملف وورد أثناء عملية الاستبدال , أجد أنه يطالبني برسالة '''string parameter too long"""
هنا النص الذي استخدمه للاستبدال على ملف الوورد من الفورم
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Dim pos As String = BindingContext(dt).Position
ProgressBar1.Value = 0
If TextBox1.Text = "" Then
MsgBox("يرجى إدخال تسمية الملف") 'هنا لاعادة تسمية الملف قبل الحفظ
Return
End If
curDoc = New Word.Application
My.Computer.FileSystem.CopyFile(
"F:\المقدم\نظام المقدم\نظام المقدم\bin\Debug\مقالات\templates.docx",
"F:\المقدم\نظام المقدم\نظام المقدم\bin\Debug\مقالات\" & TextBox1.Text & ".docx",
Microsoft.VisualBasic.FileIO.UIOption.AllDialogs,
Microsoft.VisualBasic.FileIO.UICancelOption.DoNothing)
curDoc.Documents.Open("F:\المقدم\نظام المقدم\نظام المقدم\bin\Debug\مقالات\" & TextBox1.Text & ".docx")
ProgressBar1.Value = 10
FindText("text1", dt.Rows(pos).Item(1)) 'في البرميتر الاول الكلمة المراد البحث عنها وفي الثانية الاستبدال
ProgressBar1.Value = 25
FindText("text2", dt.Rows(pos).Item(2))
ProgressBar1.Value = 35
FindText("text3", dt.Rows(pos).Item(3))
ProgressBar1.Value = 60
FindText("text4", dt.Rows(pos).Item(4))
ProgressBar1.Value = 85
curDoc.Documents.Item(1).Save() 'لحفظ التغيرات على الملف
ProgressBar1.Value = 100
MsgBox("لقد تم حفظ مقالك بنجاح")
Catch ex As Exception
MsgBox(ex.Message) 'رسالة الخطاء اذا حدث
Finally
'curDoc.Documents.Close(Word.WdSaveOptions.wdDoNotSaveChanges) 'لاغلاق الوورد من العمليات
'curDoc.Quit()
'curDoc = Nothing
'ProgressBar1.Value = 100
End Try
End Sub
لكن تبقى لي مشكلة وحيدة وهي أن النص صار يقبل عندي في قاعدة البيانات
لكن في خلال حفظي له بملف وورد أثناء عملية الاستبدال , أجد أنه يطالبني برسالة '''string parameter too long"""
هنا النص الذي استخدمه للاستبدال على ملف الوورد من الفورم
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Dim pos As String = BindingContext(dt).Position
ProgressBar1.Value = 0
If TextBox1.Text = "" Then
MsgBox("يرجى إدخال تسمية الملف") 'هنا لاعادة تسمية الملف قبل الحفظ
Return
End If
curDoc = New Word.Application
My.Computer.FileSystem.CopyFile(
"F:\المقدم\نظام المقدم\نظام المقدم\bin\Debug\مقالات\templates.docx",
"F:\المقدم\نظام المقدم\نظام المقدم\bin\Debug\مقالات\" & TextBox1.Text & ".docx",
Microsoft.VisualBasic.FileIO.UIOption.AllDialogs,
Microsoft.VisualBasic.FileIO.UICancelOption.DoNothing)
curDoc.Documents.Open("F:\المقدم\نظام المقدم\نظام المقدم\bin\Debug\مقالات\" & TextBox1.Text & ".docx")
ProgressBar1.Value = 10
FindText("text1", dt.Rows(pos).Item(1)) 'في البرميتر الاول الكلمة المراد البحث عنها وفي الثانية الاستبدال
ProgressBar1.Value = 25
FindText("text2", dt.Rows(pos).Item(2))
ProgressBar1.Value = 35
FindText("text3", dt.Rows(pos).Item(3))
ProgressBar1.Value = 60
FindText("text4", dt.Rows(pos).Item(4))
ProgressBar1.Value = 85
curDoc.Documents.Item(1).Save() 'لحفظ التغيرات على الملف
ProgressBar1.Value = 100
MsgBox("لقد تم حفظ مقالك بنجاح")
Catch ex As Exception
MsgBox(ex.Message) 'رسالة الخطاء اذا حدث
Finally
'curDoc.Documents.Close(Word.WdSaveOptions.wdDoNotSaveChanges) 'لاغلاق الوورد من العمليات
'curDoc.Quit()
'curDoc = Nothing
'ProgressBar1.Value = 100
End Try
End Sub
