منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : سؤال حول اقتطاع الجزء المختار
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
لو اردنا اخذ الجزئية التالية:
http://vb4arb.com/vb/images/twilight/logo.png

من النص التالي:

<img src="http://vb4arb.com/vb/images/twilight/logo.png
فماذا نستخدم
السلام عليكم ورحمة الله وبركاته

إذا كانت لديك جملة وتريد اقتطاع هذا الجزء فاستعمل الكود التالي:
كود :
Dim Link As String = "<img src=""http://vb4arb.com/vb/images/twilight/logo.png"
        Link = Link.Substring(Link.IndexOf("""") + 1)

أما إذا كانت هذه الجملة ناتجة عن عملية Regex
فاستعمل الكود التالي:

كود :
Dim Page As String = "<img src=""http://vb4arb.com/vb/images/twilight/logo.png"
        Dim Reg As New Regex(""".*")
        Dim Ma As Match = Reg.Match(Page)
        Dim Link As String = Page.Substring(Ma.Index + 1, Ma.Length - 1)

بمعنى أنك ستستعمل الأمرين

Ma.Index ووظيفته مؤشر لبداية النص المطلوب من الجملة
Ma.Length ووظيفته طول النص المطلوب
بطريقة أخرى :

PHP كود :
Dim mch As Match Regex.Match("<img src=""http://vb4arb.com/vb/images/twilight/logo.jpg""http://vb4arb\.com/vb/images/twilight/logo\.(png|jpg|gif)"RegexOptions.IgnoreCase)
        If 
mch.Success Then
            MsgBox
(mch.Value)
        
End If 

طريقة أخرى لاستخراج أي رابط انظر للتعديل في الباترن :

PHP كود :
Dim mch As Match Regex.Match("<img src=""http://vb4arb.com/vb/images/twilight/logo.jpg""http:.*\.(png|jpg|gif)"RegexOptions.IgnoreCase
اذا استخلصنا روابط بالمعيار التالي
(<img src=).*\.(png|gif|jpg|jpeg)
ينتج عنه نص كيف نتعامل معه لكي نحمل الصورة
لان فيه روابط كاملة وفيه فقط للمجلد الخاص بالصور

ممتاز الان تمت الفكرة بالنسبة للرابط الكامل للصورة لكن كيف مع الرابط الجزئي مثل

/images/anyimage.png
السلام عليكم ورحمة الله وبركاته

يجب التأكد بجملة شرطية
فإذا كان لا يبدأ بكلمة http
فإذن تضيف إليها
كود :
http://vb4arb.com/vb
طيب سؤال اخر
لو حبيت اخذ فقط اسم الملف يعني بعد اخر شرطة مائلة كيف؟؟
السلام عليكم ورحمة الله وبركاته

PHP كود :
Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        Dim mch 
As Match Regex.Match("<img src=""http://vb4arb.com/vb/images/twilight/logo.jpg""http:.*\.(png|jpg|gif)"RegexOptions.IgnoreCase)
        If 
mch.Success Then
            
'' MsgBox(mch.Value)
            
MsgBox(IO.Path.GetFileName(mch.Value))
        
End If
    
End Sub 

توجد طريقة أخرى وذلك بتقسيم النص حسب الشرطة المائلة ثم أخذ آخر جزء .
بارك الله فيك اخوي
لكن بعد استخلاص الرابط يعني رابط عادي مثل التالي:
"http://vb4arb.com/vb/images/twilight/logo.jpg
اتوقع انها سهلة

هل الكود التالي صحيح لو كان الرابط مستخلص وجاهز
كود :
Dim a As String = "http://vb4arb.com/vb/images/twilight/loaaaaaaaaaaaaago.jpg"
        MsgBox(IO.Path.GetFileName(a))
جربته وتمام بس ودي اتاكدSmile

استخدمته وبدا فعلا بالتحميل بالاسماء الحقيقية لكن بعد قليل
Illegal characters in path.

والرسالة هذي
An exception occurred during a WebClient request.
لما جربت الكود التالي
fn = piclink.Substring(piclink.LastIndexOf("/") + 1)
عرفت الاشكالية!!
حروف عربية باحدى الصور
اقصد اسم ملف الصورة بحروف عربيةSad
السلام عليكم ورحمة الله وبركاته

المشكلة في الأسماء العربية أنها تكون بترميز UTF-8 ولتحويله إلى الترميز الافتراضي
استعمل الكود التالي

كود :
Dim b() As Byte = (From C As Char In FileName.ToCharArray Select CByte(AscW(C))).ToArray
FileName = System.Text.Encoding.UTF8.GetString(b)