how i can filter my strings - نوشته شده در (1480 Views)
Starting Member
sadra
مطلب: 30
30
Hi, to all
please help...
I have 2 string(myString1 & myString2) and i want filter the myString2 from myString1

myString1 = txt1, txt2, txt3, txt4
myString2 = txt1, txt2

myString3 = txt3, txt4

how i can filter myString2 from myString1 and i get myString3?<
how soon is too late
 پیش‌فرض مرتب‌سازی برای تاریخ DESC به معنی جدیدترین است  
 تعداد در صفحه 
نوشته شده در
Forum Moderator
AnonJr
مطلب: 5768
5768
Ask over at http://stackoverflow.com ?
While we do occasionally foray into general programming (and some non-programming) topics, we tend to be a little more tightly focused. You may get a faster result by going to a general programming Q&A site like stackoverflow.com<
نوشته شده در
Average Member
cripto9t
مطلب: 881
881
there are probably many ways to do this. I had some time on my hands and wrote this.
It looks complicated but its not and it may not be what you want, if not, someone may find it useful.
Code:
<%

Dim myString1
Dim myString2
Dim txt1, txt2, txt3, txt4
dim FilteredStr

txt1 = "Bob"
txt2 = "Carol"
txt3 = "Ted"
txt4 = "Alice"

myString1 = txt1 & "," & txt2 & "," & txt3 & "," & txt4
myString2 = txt1 & "," & txt2

FilteredStr = ReturnFilteredStr(myString1,myString2) 'function returns new filtered string

WriteFilteredStr FilteredStr 'sub to write the new string to page

Function ReturnFilteredStr(str1,str2)
Dim strToFilter
Dim strWhatToFilter
Dim strFiltered
Dim objRegex
Dim iCnt
Dim iCnt2
Dim fStr

strToFilter = split(str1,",") 'myString1 split at comma
strWhatToFilter = split(str2,",") 'myString2 split at comma
strFiltered = "" 'variable to hold strings that make it through the filter

Set objRegex = New Regexp 'Set new regular expression to handle match and replace duties
objRegex.ignorecase = true
objRegex.global = true

for iCnt = 0 to uBound(strToFilter) 'Loop through myString1
fStr = trim(strtoFilter(iCnt)) 'String to Match


for iCnt2 = 0 to uBound(strWhatToFilter) '2nd loop to cycle through myString2
fStr2 = trim(strToFilter(iCnt2)) 'String pattern

objRegex.Pattern = fStr2
fStr = objRegex.Replace(fStr,"") 'If String to Match = String pattern then String to match is replaced with ""
next

if fStr <> "" then
if strFiltered <> "" then
strFiltered = strFiltered & "," & fStr 'if string to Match made it through the filter its added to the new string
else
strFiltered = fStr
end if
end if
next

Set objRegex = Nothing 'object clean up

ReturnFilteredStr = strFiltered
End Function

Sub WriteFilteredStr(str)
Dim strArr
Dim iCnt

if str <> "" then
strArr = split(str,",")
for iCnt = 0 to uBound(strArr)
Response.Write strArr(iCnt) & "<br />"
next
else
Response.Write "Your filtered string is empty."
end if
End Sub

%>

<
    _-/Cripto9t\-_
نوشته شده در
Advanced Member
Carefree
مطلب: 4224
4224
Here, this is a bit easier:

Code:

inta=len(MyString2)
for ia=1 to (len(MyString1)-inta)
if mid(MyString1,ia,inta)=MyString2 then
MyString3=left(MyString1,ia-1)&mid(MyString1,ia+inta)
end if
next
<
نوشته شده در
Starting Member
sadra
مطلب: 30
30
Originally posted by AnonJr
Ask over at http://stackoverflow.com ?
While we do occasionally foray into general programming (and some non-programming) topics, we tend to be a little more tightly focused. You may get a faster result by going to a general programming Q&A site like stackoverflow.com

Ok!<
how soon is too late
نوشته شده در
Starting Member
sadra
مطلب: 30
30
Originally posted by cripto9t
there are probably many ways to do this. I had some time on my hands and wrote this.
It looks complicated but its not and it may not be what you want, if not, someone may find it useful.
Code:
<%

Dim myString1
Dim myString2
Dim txt1, txt2, txt3, txt4
dim FilteredStr

txt1 = "Bob"
txt2 = "Carol"
txt3 = "Ted"
txt4 = "Alice"

myString1 = txt1 & "," & txt2 & "," & txt3 & "," & txt4
myString2 = txt1 & "," & txt2

FilteredStr = ReturnFilteredStr(myString1,myString2) 'function returns new filtered string

WriteFilteredStr FilteredStr 'sub to write the new string to page

Function ReturnFilteredStr(str1,str2)
Dim strToFilter
Dim strWhatToFilter
Dim strFiltered
Dim objRegex
Dim iCnt
Dim iCnt2
Dim fStr

strToFilter = split(str1,",") 'myString1 split at comma
strWhatToFilter = split(str2,",") 'myString2 split at comma
strFiltered = "" 'variable to hold strings that make it through the filter

Set objRegex = New Regexp 'Set new regular expression to handle match and replace duties
objRegex.ignorecase = true
objRegex.global = true

for iCnt = 0 to uBound(strToFilter) 'Loop through myString1
fStr = trim(strtoFilter(iCnt)) 'String to Match


for iCnt2 = 0 to uBound(strWhatToFilter) '2nd loop to cycle through myString2
fStr2 = trim(strToFilter(iCnt2)) 'String pattern

objRegex.Pattern = fStr2
fStr = objRegex.Replace(fStr,"") 'If String to Match = String pattern then String to match is replaced with ""
next

if fStr <> "" then
if strFiltered <> "" then
strFiltered = strFiltered & "," & fStr 'if string to Match made it through the filter its added to the new string
else
strFiltered = fStr
end if
end if
next

Set objRegex = Nothing 'object clean up

ReturnFilteredStr = strFiltered
End Function

Sub WriteFilteredStr(str)
Dim strArr
Dim iCnt

if str <> "" then
strArr = split(str,",")
for iCnt = 0 to uBound(strArr)
Response.Write strArr(iCnt) & "<br />"
next
else
Response.Write "Your filtered string is empty."
end if
End Sub

%>



Tanx Mr cripto9t
Best Regards<
how soon is too late
نوشته شده در
Starting Member
sadra
مطلب: 30
30
Originally posted by Carefree
Here, this is a bit easier:

Code:

inta=len(MyString2)
for ia=1 to (len(MyString1)-inta)
if mid(MyString1,ia,inta)=MyString2 then
MyString3=left(MyString1,ia-1)&mid(MyString1,ia+inta)
end if
next

Tanx Mr Carefree
Best Regards<
how soon is too late
نوشته شده در
Advanced Member
Carefree
مطلب: 4224
4224
You're welcome. Feel free to ask questions any time.<
نوشته شده در
Advanced Member
Etymon
مطلب: 2396
2396
Mr. Carefree ... that kind of has a cool ring to it! smile<
نوشته شده در
Forum Moderator
AnonJr
مطلب: 5768
5768
Originally posted by Etymon
Mr. Carefree ... that kind of has a cool ring to it! smile
Kinda like "Mr. Feel Good"? tongue<
نوشته شده در
Advanced Member
Carefree
مطلب: 4224
4224
Should have had a career in Reggae?<
 
شما باید یک متن وارد کنید