VB截取

tld12 2008-07-16 04:16:47
我想截取<SBJGBH>000071</SBJGBH><SHBZHM>132529198206221931<SHBZHM/><SFZHM>132529198206221931<SFZHM/>
每两个标签之间的数据,请问可以用什么办法,数据项长度不固定,所以不能按指定的数字长度去截,请大家帮帮忙
...全文
133 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
vbman2003 2008-07-16
  • 打赏
  • 举报
回复
以上代码要保证 标签<SBJGBH></SBJGBH>这样的类型是成对出现
vbman2003 2008-07-16
  • 打赏
  • 举报
回复
如果包含空项,比如:<SBJGBH></SBJGBH>这样,那么度试试:


Dim s As String
Dim tmp
Dim i As Long, n As Long

s = "<SBJGBH>000071</SBJGBH> <SBJGBH></SBJGBH> <SHBZHM>132529198206221931 <SHBZHM/><SFZHM>132529198206221931 <SFZHM/>"
tmp = Split(s, ">")
For i = 1 To UBound(tmp) - 1 Step 2
n = InStr(tmp(i), "<")
Debug.Print Mid(tmp(i), 1, n - 1)
Next
vbman2003 2008-07-16
  • 打赏
  • 举报
回复

Dim s As String
Dim tmp
Dim i As Long, n As Long

s = "<SBJGBH>000071</SBJGBH> <SHBZHM>132529198206221931 <SHBZHM/><SFZHM>132529198206221931 <SFZHM/>"
tmp = Split(s, ">")
For i = 0 To UBound(tmp)
If Trim(tmp(i)) <> "" And Left(Trim(tmp(i)), 1) <> "<" Then
n = InStr(tmp(i), "<")
Debug.Print Mid(tmp(i), 1, n - 1)
End If
Next
tld12 2008-07-16
  • 打赏
  • 举报
回复
那这样的话,是不是如果某个数据项是空的话就会有问题了啊
tld12 2008-07-16
  • 打赏
  • 举报
回复
那这样的话,是不是如果某个数据项是空的话就会有问题了啊
罗平 2008-07-16
  • 打赏
  • 举报
回复
'获得某两个字符串之间,比如 GetXStr("<Style>alkasdjf</Style>","<Style>","</Style>")
Function GetXStr(SourceStr, Str001, Str002)
Dim SourceStr001, SourceStr002, SourceStr003, I001, I002
Dim FillStr001, FillStr002, FillStr003, Len001, Len002, Len003
Len001 = Len(Str001)
Len002 = Len(Str002)
FillStr001 = ""
SourceStr001 = SourceStr
GetXStr = ""
Goto001:
I001 = InStr(1, SourceStr001, Str001)
If I001 > 0 Then
SourceStr002 = Right(SourceStr001, Len(SourceStr001) - I001 - Len001)
I002 = InStr(1, SourceStr002, Str002)
If I002 > 0 Then
Len003 = Len001 + Len002 + I002
FillStr002 = Mid(SourceStr001, I001, Len003)
FillStr003 = Mid(SourceStr001, I001 + Len001, Len003 - Len002 - Len001)
GetXStr = GetXStr + FillStr003
SourceStr001 = Replace(SourceStr001, FillStr002, FillStr001)
GoTo Goto001
End If
End If
End Function
yangao 2008-07-16
  • 打赏
  • 举报
回复

Private Sub Command1_Click()

Dim strTemp As String
Dim strData() As String

strTemp = "<SBJGBH>000071 </SBJGBH> <SHBZHM>132529198206221931 <SHBZHM/> <SFZHM>132529198206221931 <SFZHM/>"

strTemp = Replace(strTemp, "<SBJGBH>", "")
strTemp = Replace(strTemp, " </SBJGBH> <SHBZHM>", "-")
strTemp = Replace(strTemp, " <SHBZHM/> <SFZHM>", "-")
strTemp = Replace(strTemp, " <SFZHM/>", "")

strData() = Split(strTemp, "-")

Dim lngIndex As Long

For lngIndex = 0 To UBound(strData)
Debug.Print strData(lngIndex)
Next

End Sub

如果情况不一样再改改
vansoft 2008-07-16
  • 打赏
  • 举报
回复
instr娶位置
mid截取

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧