Public Function CutFixContent(ByVal str As String, ByVal start As String, ByVal last As String, ByVal Condition As Integer)
Dim strTemp
On Error Resume Next
If InStr(str, start) > 0 And InStr(str, last) > 0 Then
Select Case CInt(Condition)
Case 1 '左右都截取(都取前面)(保留关键字)
strTemp = Strings.Right(str, Len(str) - InStr(str, start) + 1)
strTemp = Strings.Left(strTemp, InStr(strTemp, last) + last - 1)
Case 2 '只往右截取(取前面的)(去除关键字)
strTemp = Strings.Right(str, Len(str) - InStr(str, start) - Len(start) + 1)
Case 3 '只往右截取(取前面的)(包含关键字)
strTemp = Strings.Right(str, Len(str) - InStr(str, start) + 1)
Case 4 '只往左截取(取后面的)(包含关键字)
strTemp = Strings.Left(str, InStrRev(str, start) + Len(start) - 1)
Case 5 '只往左截取(取后面的)(去除关键字)
strTemp = Strings.Left(str, InStrRev(str, start) - 1)
Case 6 '只往左截取(取前面的)(包含关键字)
strTemp = Strings.Left(str, InStr(str, start) + Len(start) - 1)
Case 7 '只往右截取(取后面的)(包含关键字)
strTemp = Strings.Right(str, Len(str) - InStrRev(str, start) + 1)
Case 8 '只往左截取(取前面的)(去除关键字)
strTemp = Strings.Left(str, InStr(str, start) - 1)
Case 9 '只往右截取(取后面的)(包含关键字)
strTemp = Strings.Right(str, Len(str) - InStrRev(str, start))
Case Else '左右都截取(都取前面)(去除关键字)
strTemp = Strings.Right(str, Len(str) - InStr(str, start) - Len(start) + 1)
strTemp = Strings.Left(strTemp, InStr(strTemp, last) - 1)
End Select
Else
strTemp = ""
End If
CutFixContent = strTemp
End Function
Dim strTemp
On Error Resume Next
If InStr(str, start) > 0 And InStr(str, last) > 0 Then
Select Case CInt(Condition)
Case 1 '左右都截取(都取前面)(保留关键字)
strTemp = Strings.Right(str, Len(str) - InStr(str, start) + 1)
strTemp = Strings.Left(strTemp, InStr(strTemp, last) + last - 1)
Case 2 '只往右截取(取前面的)(去除关键字)
strTemp = Strings.Right(str, Len(str) - InStr(str, start) - Len(start) + 1)
Case 3 '只往右截取(取前面的)(包含关键字)
strTemp = Strings.Right(str, Len(str) - InStr(str, start) + 1)
Case 4 '只往左截取(取后面的)(包含关键字)
strTemp = Strings.Left(str, InStrRev(str, start) + Len(start) - 1)
Case 5 '只往左截取(取后面的)(去除关键字)
strTemp = Strings.Left(str, InStrRev(str, start) - 1)
Case 6 '只往左截取(取前面的)(包含关键字)
strTemp = Strings.Left(str, InStr(str, start) + Len(start) - 1)
Case 7 '只往右截取(取后面的)(包含关键字)
strTemp = Strings.Right(str, Len(str) - InStrRev(str, start) + 1)
Case 8 '只往左截取(取前面的)(去除关键字)
strTemp = Strings.Left(str, InStr(str, start) - 1)
Case 9 '只往右截取(取后面的)(包含关键字)
strTemp = Strings.Right(str, Len(str) - InStrRev(str, start))
Case Else '左右都截取(都取前面)(去除关键字)
strTemp = Strings.Right(str, Len(str) - InStr(str, start) - Len(start) + 1)
strTemp = Strings.Left(strTemp, InStr(strTemp, last) - 1)
End Select
Else
strTemp = ""
End If
CutFixContent = strTemp
End Function
{
string strTemp;
try
{
if(int.parse(last)>0 and str.length>int.parse(last))//保证长度
{
switch(Condition)
{
case 1:strTemp = str.Substring(int.parse(Start),int.parse(Last)-int.parse(Start));break;//从起始点START截取last-start长度的字符串。
.................
.............
}
}
else
{
strTemp="";
}
}
catch(Exception ex)
{
messagebox.show(ex.message);
}
return strTemp;
}
strTemp = Strings.Right(str, Len(str) - InStr(str, start) + 1)
strTemp = Strings.Left(strTemp, InStr(strTemp, last) + last - 1)
InStr(strTemp, last)这个是整数类型吗?
如果是
last 是字符类型,
InStr(strTemp, last) + last - 1这个表达式不会出错吗?我不太会VB
会有你说的那种错误。
另外执行:CutFixContent("@#$www.blueshop.com.tw/board/show.asp?subcde","#","/",1)时出错:
str.Substring(int.parse(Start),int.parse(Last)-int.parse(Start));------------输入字符串的格式不正确。
好像int.parse()里面参数不对吧??俺菜鸟一个
望各位指教
你输入的全是字符串,str.Substring(int.parse(Start),int.parse(Last)-int.parse(Start))这个当然出错。
可是我导入此命名空间,还是不能用Strings下面的方法???????/
这个吗?
如果是
last 是字符类型,
InStr(strTemp, last) + last - 1 ------对上面的代码在vb.net真不会错,我也感到贼纳闷!!!!!!!
CutfixContent函数里面的参数是那样定义的 啊,所以我
调用CutFixContent("@#$www.blueshop.com.tw/board/show.asp?subcde","#","/",1)
应该不会错吧?我想得到的结果应该是“#$www.blueshop.com.tw/board/”
这是个c# Windows应用程序。
{
string strTemp="";
try
{
switch (SwCase)
{
case 1:
strTemp = str.Substring(InStr(str ,first));
return strTemp;
case 2:
strTemp = str.Substring(InStr(str, first) + 1);
return strTemp;
case 3:
strTemp = str.Substring(InStr(str, first));
return strTemp;
case 4:
strTemp = str.Substring(0, InStrRev(str, first)+first .Length);
return strTemp;
case 5:
strTemp = str.Substring(0, InStrRev(str, first));
return strTemp;
case 6:
strTemp = str.Substring(0, InStrRev(str, first) + first.Length);
return strTemp;
case 7:
strTemp = str.Substring(InStr(str, first));
return strTemp;
case 8:
strTemp = str.Substring(0,InStr(str, first));
return strTemp;
case 9:
strTemp = str.Substring(InStr(str, first));
return strTemp;
default :
strTemp = str.Substring(InStr(str, first) + 1, InStr(str, last) - 2);
return strTemp;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return strTemp;
} public int InStr(string s, string start)
{
int K;
K = s.IndexOf(start, 0, s.Length);//获取子字符串Start的index
return K;
}
public int InStrRev(string s, string last)
{
int K;
K = s.LastIndexOf(last);//获取子字符串last的index
return K;
}