asdflksf前面随便是什么,也可能还有中文jsdjfsf ZWD 这里是需要读取的数据1 GXX ZWD 这里是需要读取的数据2 GXX ZWD 这里是需要读取的数据3 GXX ZWD 这里是需要读取的数据N GXX dfasdf后面随便什么,也有可能含有中文sdfsdfsdfsdafsdaf 所需要读取的数据为 GXX 和 ZWD 中间的数据
如何读取并且保存到一个数组呢?
请各位达人给个例子(最好源代码),谢谢了要求做一函数,能得到数据,比如
txtn=gettxt(n) 输出后 txtn= 这里是需要读取的数据N这个问题引用一朋友的,没有分,我这边再次发一次,给分
如何读取并且保存到一个数组呢?
请各位达人给个例子(最好源代码),谢谢了要求做一函数,能得到数据,比如
txtn=gettxt(n) 输出后 txtn= 这里是需要读取的数据N这个问题引用一朋友的,没有分,我这边再次发一次,给分
解决方案 »
- 报表打印时不能对齐每张纸,请问怎样做啊?
- 如何在VB中执行指定EXCEL文件里的宏(如宏1)
- ........................
- 基于Vb和MapObject的图层管理控件
- 如何将MSHFlexGrid显示的内容保存进数据库。
- 如何用VB编出像美萍那样的,一进入Windows就把桌面变成自己制定的桌面
- 串口问题!!!
- 我想用VFP或VB通过调用MCI控制摄录放一体机(VCR)采集学生照片,但不知如何实现??
- 1。为什么用ADO取得ACCCESS表名的程序出奇的慢,内附代码。 2。如何去掉系统字段?
- 菜鸟问:程序中的Label.Capton在运行中变白,怎么解决?DoEvents?
- 在局域网内,用TCP协议传输一个700K的数组,为什么有时得花三四秒才可以传完?
- 端口的问题 (急!急!!急!!!)
s= Split(字符, “ ”) S就变成个数组了
有中文按一个字符计算
'N表示你要取的第几个数据,strInfo 存储了你要处理的字符串
'调用函数 gettxt(3,strInfo) 就可以得到第三个数据
Public Function gettxt(ByVal N As Long, ByVal strInfo As String) As String
Dim str As String
Dim i, IBefore, Iafter, IKeyPosition As Long
str = strInfo
IKeyPosition = 1
IBegin = 1For i = 0 To N - 1
IBegin = InStr(IBegin, str, "ZWD", vbTextCompare)
If IBegin > 0 Then
IBegin = IBegin + Len("ZWD")
Else
Exit For
End If
NextIf IBegin = 0 Then
gettxt = ""
MsgBox "There is no record '" & N & "' !"
Exit Function
End IfIafter = InStr(IBegin, str, "GXX", vbTextCompare)
If Iafter = 0 Then
MsgBox "There is no 'GXX' after record 'N' !"
gettxt = ""
Exit Function
End If
gettxt = Trim(Mid(str, IBegin, Iafter - IBegin))
MsgBox gettxt
End Function
Dim str As String
Dim RecordN As String
str = "也可能还有中文jsdjfsf ZWD 这里是需要读取的数据1 GXX ZWD 这里是需要读取的数据2 GXX " _
& "ZWD 这里是需要读取的数据3 GXX ZWD 这里是需要读取的数据N GXX dfasdf后面随便什么," _
& "也有可能含有中文sdfsdfsdfsdafsdaf"
RecordN = gettxt(3, str)
End Sub
Dim StrData1() As String
Dim StrData2() As String
Dim i As Long
StrData1 = Split(Text1.Text, "ZWD")
If UBound(StrData1) > 0 Then
For i = 0 To UBound(StrData1)
StrData2 = Split(StrData1(i), "GXX")
If UBound(StrData2) > 0 Then
MsgBox StrData2(0)
End If
Next
End If
End Sub
'使用下面代码调用该函数
Private Sub Command1_Click()
Dim str As String
Dim RecordN, strBefore, strAfter As String
str = "也可能还有中文jsdjfsf ZWD 这里是需要读取的数据1 GXX ZWD 这里是需要读取的数据2 GXX " _
& "ZWD 这里是需要读取的数据3 GXX ZWD 这里是需要读取的数据N GXX dfasdf后面随便什么," _
& "也有可能含有中文sdfsdfsdfsdafsdaf"
strBefore = "ZWD"
strAfter = "GXX"
RecordN = gettxt(3, str, strBefore, strAfter)
End Sub'函数修改如下:
'BeforeDelimiter 代表前面的标识符,afterDelimiter 代表后面的标识符,可以一样。
'
'N表示你要取的第几个数据,strInfo 存储了你要处理的字符串
Public Function gettxt(ByVal N As Long, ByVal strInfo As String, _
ByVal BeforeDelimiter As String, ByVal afterDelimiter As String) As String
Dim str As String
Dim i, IBefore, Iafter, IKeyPosition As Long
Dim flag As Boolean
str = strInfo
IKeyPosition = 1
Ibegin = 1
If Trim(UCase(BeforeDelimiter)) = Trim(UCase(afterDelimiter)) Then
Ibegin = InStr(1, str, BeforeDelimiter, vbTextCompare) + Len(BeforeDelimiter)
N = N - 1
flag = True
End IfFor i = 0 To N - 1
Ibegin = InStr(Ibegin, str, BeforeDelimiter, vbTextCompare)
Ibegin = IIf(flag, InStr(Ibegin + Len(BeforeDelimiter), str, BeforeDelimiter, vbTextCompare), Ibegin)
If Ibegin > 0 Then
Ibegin = Ibegin + Len(BeforeDelimiter)
Else
Exit For
End If
NextIf Ibegin = 0 Then
gettxt = ""
MsgBox "There is no record '" & IIf(flag, N + 1, N) & "' !"
Exit Function
End IfIafter = InStr(Ibegin, str, afterDelimiter, vbTextCompare)
If Iafter = 0 Then
MsgBox "There is no '" & afterDelimiter & "' after record '" & IIf(flag, N + 1, N) & "' !"
gettxt = ""
Exit Function
End If
gettxt = Trim(Mid(str, Ibegin, Iafter - Ibegin))
MsgBox gettxt
End Function