关于VB6.0从一个字符串提取字符串的问题

onclick='Odds(942057)'

我的文本里面有很多个类似于这个样子的!我想把后面所有后面的数字全部提出来!

应该怎么做呢?

谢谢各位了!
顺便说一下我是做一个网页解析的程序!所以会有很多“=”和 “onclick”的之类的!尽可能可以严谨点!

按楼主的意思,必须先用文字匹配的方式逐个找出onclick所在的位置,然后从这个位置开始往后一个字符一个字符找到括号和单引号为止,截取取来再进行分析。楼上各位说的都是截取后分析的方法,再加上这个字符寻找的方法就OK了。

语法

InStr(start,string1,
string2, compare)

说明

start
可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果
start 包含 Null,将发生错误。如果指定了
compare 参数,则一定要有 start 参数。

string1
必要参数。接受搜索的字符串表达式。

string2
必要参数。被搜索的字符串表达式。

Compare
可选参数。指定字符串比较。如果
compare 是 Null,将发生错误。如果省略 compare,Option
Compare 的设置将决定比较的类型。指定一个有效的LCID (LocaleID)
以在比较中使用与区域有关的规则。

compare 参数设置为:

vbUseCompareOption
-1
使用Option Compare 语句设置执行一个比较。

vbBinaryCompare
0
执行一个二进制比较。

vbTextCompare
1
执行一个按照原文的比较。

vbDatabaseCompare
2
仅适用于Microsoft
Access,执行一个基于数据库中信息的比较。

返回值

string1 为零长度
0

string1 为 Null
Null

string2 为零长度
Start

string2 为 Null
Null

string2 找不到
0

在 string1 中找到string2
找到的位置

start > string2
0
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-18
网页程序源代码里面会有很多的数字,可能有些数字并不是你需要的吧?!那你就在你需要的数字堆里面找一找规律!比如数字的周围都是固定的 【onclick='Odds(942057)】或其它的某种规律可循的状态,那通过编程来筛选就好办了! 没有规律,实现起来会很费劲的!追问

所以我就是想知道要怎么筛选了...onclick='Odds()这个就是固定的了!你可以帮我写出来吗?分数不够我可以加!

追答

我需要一个包含源代码的TXT文件~~ 请E-Mail到:[email protected]

追问

我把文件发到你E-mail了你看看吧!

追答

我已经把工程源代码文件E-Mail给你了!你自己查收看看!

本回答被提问者采纳
第2个回答  2014-03-18
这么简单的问题?
s=“onclick='Odds(942057)'";
s=Replace(s,"(","=")
s=Replace(s,")","=")

r=Split(s,"=")

if r[0]=="onclick" then
MsgBox r[2]
end追问

我里面有好多类似这种的哦!我想把所有的数字都提取出来放到数组中要怎么样弄呢

追答

先建立个数组啊,每执行上面的过程一次,数组下标就增加1,给当前数组赋值,一直循环下去就行啊

第3个回答  2014-03-18
示例,如你的文本放在Text1框中,搜索后的结果放在Text2文本框中。
Private Sub Command1_Click()
Dim I, X As Long
Dim Num, Y As String
X = Len(Text1.Text)
For I = 1 To X
Y = Mid(Text1, I, 1)
If IsNumeric(Y) Then Num = Num & Y
Next I
Text2.Text = Num
End Sub追问

我这个是网页解析用途的呀!里面不单单就这几个字符和数字的!你这样是不得的...

追答

这只是一个示例,你的文本放在什么地方?如果的记事本中,可以一次读一行文本,再按这个代码的形式,把这一行中的数字提出来,写入另一个记事本中,道理是相通的。只是我不知道你的原始文本在哪?所以写了这样的示例

追问

pt: onclick='EuropeOdds(957080)' style=(957080)'><img src='iajavascript: onclick='EuropeOdds(957081)' s
比如说这样!
onclick='EuropeOdds(957080)'
onclick='EuropeOdds(957081)'
怎么把这两个里面的数字提取出来放到个数组里面?

追答

给个代码,假设你的文本全部保存在E盘的A.txt中,在E盘再建一个B.txt文本文件。这个代码能把A中所有数据提取出来,放到B中,试一下。放到B中可能,读到数组中更简单,这样做只是为了验证一下,是否是你想要的结果。
Private Sub Command1_Click()
Dim strA As String
Dim I, X As Long
Dim Num, Y As String
Dim nFlag As Boolean

Open "E:\A.txt" For Input As #100
Open "E:\B.txt" For Append As #101
Do While Not EOF(100)
Line Input #100, strA
nFlag = False
Num = ""
X = Len(strA)

For I = 1 To X
Y = Mid(strA, I, 1)
If IsNumeric(Y) Then
nFlag = True
Num = Num & Y
Else
If nFlag = True Then
nFlag = False
Print #101, Num
Num = ""
End If
End If
Next I
Loop

Close #101
Close #100
MsgBox "提取数值完毕!"
End Sub

我的代码你用过了吗?

第4个回答  2014-03-18
直接用val算了

非数字部分都会忽略掉
比如:val("abc=10")=10
val("")=0追问

我这个是网页解析用途的呀!里面不单单就这几个字符和数字的!你这样是不得的..

追答

那你就拿几个有代表性的出来啊,onclick='Odds(942057)'
类似这样的怎么会不行?

追问

pt: onclick='EuropeOdds(957080)' style=(957080)'><img src='iajavascript: onclick='EuropeOdds(957081)' s
比如说这样!
onclick='EuropeOdds(957080)'
onclick='EuropeOdds(957081)'
怎么把这两个里面的数字提取出来放到个数组里面?

相似回答