14-10-13, 12:02 AM
اخواني الاعزاء .. لدي هذا الكود
ادري ان الكود طويل لكن ارجو النظر فيه ومعرفة لماذا يتم فقط تعديل اخر رابط بالصفحة
يعني لو لدينا صفحة فيها عدة روابط للمرفقات فانه بناء على هذا الكود يتم استبدال اخر رابط ولو لم يوجد الا مرفق واحد يتم العمل
كيف اعدل على الكود ليتم العمل بشكل صحيح
يعني اظن ولا ادري انه لغز بسيط بالنسبة لكم لكنه اتعبني
كود :
If My.Computer.FileSystem.FileExists(lbldir.Text & "threads\thread_" & a & ".htm") = False Then
Dim inputString As String = page
'كود فحص النص عن الروابط
Dim regex As New Regex("(<a href=)(.*)(</a>)", RegexOptions.IgnoreCase)
Dim amatch As Match = Nothing
Dim col As MatchCollection = regex.Matches(inputString)
Dim nat As String = ""
Dim ma As String = ""
For Each amatch In col
'ان عادت الجملة for بنتيجة يكون التالي:
'اذا احتوى الرابط على رابط مرفق وهو attachment.php"aid=
If amatch.ToString.Contains("attachment.php?aid=") Then
'نكتب رابط جديد بحيث يحوي فقط اسم الملف المرفق لانه يتم تحميله مع الصفحة بنفس المجلد
nat = "<a href=" & afn & ">" & afn & "</a>"
'اسناد نتيجة الفحص لمتغير جديد
ma = amatch.ToString
' MsgBox(afn)
End If
Next
Dim nm As String = ""
If ma.ToString.Contains("attachment.php?aid=") Then
'ان احتوى نتيجة الفحص على رابط مرفق يتم الاستبدال مع رابط جديد الذي يحوي فقط اسم الملف المرفق
nm = page.Replace(ma, nat)
Else
'او يسند له بدوت تغيير
nm = page
End If
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 'هذا هو محتوى الصفحة بعد عمل التعديل لرابط المرفق
My.Computer.FileSystem.WriteAllText(lbldir.Text & "threads\thread_" & a & ".htm", nm, False, encoding:=System.Text.Encoding.Default)
p1.Value += 1
lbl.Text += 1
lblurl.Text = st.Text & "showthread.php?tid=" & a
a -= 1
Else
p1.Value += 1
lbl.Text += 1
lblurl.Text = st.Text & "showthread.php?tid=" & a
a -= 1
End If
ادري ان الكود طويل لكن ارجو النظر فيه ومعرفة لماذا يتم فقط تعديل اخر رابط بالصفحة
يعني لو لدينا صفحة فيها عدة روابط للمرفقات فانه بناء على هذا الكود يتم استبدال اخر رابط ولو لم يوجد الا مرفق واحد يتم العمل
كيف اعدل على الكود ليتم العمل بشكل صحيح
يعني اظن ولا ادري انه لغز بسيط بالنسبة لكم لكنه اتعبني