الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن استخلاص هذا النص ؟

بدأه ramysarwat في 13 مارس 2009 · 5 رد · 544 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ارجو المساعدة فى كود يستطيع استخلاص نص موجود بين علامتين مثل <ghijkl> النص هنا<abcdef>

وجدت هذا الكود فى المنتدى

اقتباس
Function GetBetweenIT(ByVal strText As String, ByVal strT1 As String, ByVal strT2 As String)

Dim loglenT1, loglenT2, logStart, logL As Long

loglenT1 = Len(strT1)

loglenT2 = Len(strT2)

logStart = (InStr(strText, strT1) + loglenT1)

If logStart = loglenT1 Then Exit Function

logL = (InStr(strText, strT2)) - logStart

If logL <= 0 Then Exit Function

GetBetweenIT = Mid$(strText, logStart, logL)

End Function

ولكنة يقوم باستخلاص اول نص فقط ولكن الملف يحتوى على اكثر من نص

وشكرآ

تم تعديل هذه المشاركة بواسطة ramysarwat في 13 مارس 2009 في 20:46

#2

أتوقع ان البدايه والنهايه متماثله

هنا انت تبحث عن XmlParser

#3

السلام عليكــم ورحمـة الله وبركاتــة ،،

ضع الكود ادناه في الـ Form ثم شغل ولاحظ النتيجة


Dim TMP1Str As String
Dim TMPArr() As String

Form1.AutoRedraw = True

TMP1Str = GetBetweenIT("<AAA><BBB><CCC>", "<", ">", "|")

TMPArr = Split(TMP1Str, "|")

For I = LBound(TMPArr) To UBound(TMPArr)
Print TMPArr(I)
Next
End Sub
Function GetBetweenIT(ByVal strText As String, ByVal strT1 As String, ByVal strT2 As String, ByVal Separator As String)
Dim loglenT1, loglenT2, logStart, logL As Long

loglenT1 = Len(strT1)
loglenT2 = Len(strT2)

Do
logStart = (InStr(strText, strT1) + loglenT1)
If logStart = loglenT1 Then Exit Do

logL = (InStr(strText, strT2)) - logStart
If logL <= 0 Then Exit Do

If Len(GetBetweenIT) > 0 Then
GetBetweenIT = GetBetweenIT & Separator
End If

GetBetweenIT = GetBetweenIT & Mid$(strText, logStart, logL)
strText = Mid$(strText, logL + logStart + Len(loglenT2))
Loop
End Function
Private Sub Form_Load()

اعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

#4

يااااه دي الادارة كانت هنا

لو لحقتو كنت حقلو خليني سوبر

يالله المرة الجاية

فأنت اخي المبرمج ..لا تبخل بعلمك عمن يطلبه فقد كنت يوما تبحث كما نبحث نحن.. واعلم لو حجب العلم عنك لما وصلت الى ما انت عليه الان.. فاتق الله في طالب العلم وتذكر ما منه الله عليك ولا تبخل بعلمك وما اوتيت من معرفة ليبارك الله علمك وينفعك به.

#5

اشكرك جدا على الرد ولكن لم اقصد ان يتم استخلاص النص من العلامات < و > ولكن ما قصدتة ان يتم استخلاص النص من بين

<ghijkl> و <abcdef>

#6

الإجراء لم يصمم خصيصا لإستخراج النص من بين رمزين او حرفين فقط

بل مصمم لإستخراج النصوص المحصورة بين كلمتين محددتين عموما

ضع الكود الموجود في المشاركة السابقة في مشروع جديد .. واذهب الى هذا السطر

	TMP1Str = GetBetweenIT("<AAA><BBB><CCC>", "<", ">", "|")

واستبدلها بهذا مثلا

TMP1Str = GetBetweenIT("<ghijkl>First<abcdef><ghijkl>Second<abcdef><ghijkl>Third<abcdef>", "<ghijkl>", "<abcdef>", "|")

اعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

مواضيع مشابهة