树立目标的名言:vb如何截取字符串中的指定字符

来源:百度文库 编辑:中科新闻网 时间:2024/05/09 09:52:45
例~
s="<html>天地水云间</html>"

如何用vb 截取 <html> 与 </html> 中的字符呢?

s是随机的,在不知道文本长度的情况下。。

感谢回答!
s是随机的。不知道字符串的长度~所以不能以左边字符数和右边字符数的多少来设置截取
又或者说
s="21天地水云间1"

s="111天地水云间2222"
同什么代码可以同时截取两个s中的天地水云间

理论上来说,使用VB的DHTML处理更简单,但是代码难理解,所以我设计以下代码。

HTML文件(或者是XML文件,类似)中一般都是<String>ajhjahjsdh</String>
或者换行写
<String>
ajhjahjsdh
</String>

可以使用以下算法
定义状态
c
0-什么也没有
1-找到开头的〈
2-找到开头的〉
3-找到后面的〈
4-找到后面的/
5-找到后面的〉

Private Sub Form_Load()
s = "<html>天地水云间</html>"

For i = 1 To Len(s)
m = Mid(s, i, 1)
If m = "<" Then
If c = 0 Then
c = 1
ElseIf c = 2 Then
c = 3
End If

End If

If m = ">" Then
If c = 1 Then
c = 2
GoTo DoNext
ElseIf c = 4 Then
c = 5
End If
End If

If m = "/" And c = 3 Then c = 4

If c = 2 Then b = b & m

DoNext:
Next

End Sub
如果你单单需要得到中间的值,这个就够了,你可以把我的程序修改一下
他也能读取类似以下的东西

<HTML>
<BODY>
<HEAD>Tomorrow</HEAD>
<BODY>
</HTML>

思路:假设目标字符串为变量strDst(如你说的"天地水云间"),
则字符串 s = "<html>" & strDst & "</html>",strDst 的左边有6个字符,右边有7个字符,用vb中的left和right语句可以搞定。

代码如下:

Dim s As String '原字符串
Dim strDst As String '要提取的字符串

s = "<html>天地水云间</html>"

If Len(s) <= 13 Then
MsgBox "字符串s中没有您要提取的任何字符!", vbInformation
Exit Sub
End If

strDst = Left(s, Len(s) - 7)
strDst = Right(strDst, Len(strDst) - 6)

Dim a As String, b As String
'a为要找的字符串,b为找到的字符串
a = "天地水云间"
s = "21天地水云间1"
b = Mid(s, InStr(1, s, a), Len(a))
Print b
s = "111天地水云间2222"
b = Mid(s, InStr(1, s, a), Len(a))
Print b

用mid$函数。