PDA

View Full Version : سوال: رنگی کردن دو زیر رشته و چسباندن آنها به رشته اصلی



قله بلند
چهارشنبه 04 تیر 1393, 01:59 صبح
سلام
دوستان فرض کنید که رشته اصلی من corps است و دو زیر رشته من هم co و p هستند

من می خواهم:
1-co را قرمز کنم
2-p را آبی کنم
3-این دو زیر رشته را در جای خود در رشته اصلی که corsp است قرار دهم به نحوی که خروجی آن این باشد:
corps

من نمی خوام از دستور replace استفاده کنم و فقط می خوام برای رنگی کردن از <font color> استفاده کنم. برای جایگزین کردن این زیررشته های رنگی در رشته اصلی از چه دستوری باید استفاده کنم؟

دستور InStr، زیر رشته رو در رشته اصلی پیدا می کنه. از چه دستوری استفاده کنم تا زیر رشته ها رو در رشته اصلی قرار بده و replace هم نباشه.

متشکرم

قله بلند
چهارشنبه 04 تیر 1393, 22:46 عصر
من چنین کاری رو انجام داده ام ولی نمی دونم به جای علامت سوال چی بگذارم. نمی دونم چه طوری می تونم به کاراکترهای رشته corps دسترسی پیدا کنم یعنی اونها رو در مکانشون پیدا کنم و به زیر رشته های رنگی ملحق کنم و رشته اصلی رو با زیر رشته های رنگی دوباره بسازم. واقعاً کلافه شدم:


x = RS.Fields("Main_EW")
y = RS.Fields("TCode1")
z = "<font color=#ee00ee>" & y & "</font>"
y1 = RS.Fields("TCode2")
z1 = "<font color=#ff63ff>" & y1 & "</font>"
len_TCode1 = Len(y)
len_TCode2 = Len(y1)
index_1 = InStr(1, x, y)
index_2 = InStr(1, x, y1)
For I = 1 To Len(x)
If I = index_1 Then
RStr = RStr & z
I = I + len_TCode1
ElseIf I = index_2 Then
RStr = RStr & z1
I = I + len_TCode2
Else
RStr = RStr & ?
End If
Next I

قله بلند
چهارشنبه 04 تیر 1393, 23:29 عصر
سلام دوستان
بالاخره جوابش رو پیدا کردم :قهقهه:


If Not IsNull(RS.Fields("TCode1")) Then
x = RS.Fields("Main_EW")
y = RS.Fields("TCode1")
z = "<font color=#ee00ee>" & y & "</font>"
Me.Text111 = Replace(x, y, z)
Else
Me.Text111 = RS.Fields("Main_EW")
End If
If Not IsNull(RS.Fields("TCode2")) Then
y1 = RS.Fields("TCode2")
z1 = "<font color=#ff63ff>" & y1 & "</font>"
len_TCode1 = Len(y)
len_TCode2 = Len(y1)
index_1 = InStr(1, x, y)
index_2 = InStr(1, x, y1)
For I = 1 To Len(x)
If I = index_1 Then
RStr = RStr & z
I = I + len_TCode1 - 1
ElseIf I = index_2 Then
RStr = RStr & z1
I = I + len_TCode2 - 1
Else
RStr = RStr & Mid(x, I, 1)
End If
Next I
Me.Text111 = RStr
End If