求vb高手解答

根据文件名获取题目类型,题目编号PrivateSubGetParameters(ByValsParamAsString,lpTmlxAsLong,lpTmbhAsLong... 根据文件名获取题目类型,题目编号
Private Sub GetParameters(ByVal sParam As String, lpTmlx As Long, lpTmbh As Long)
Dim L1 As Long '记录分离出来的编号
L1 = InStr(1, sParam, "-", vbTextCompare) '分离各编号
lpTmlx = CLng(Mid(sParam, 1, 1)) '取得题目类型编号
lpTmbh = CLng(Mid(sParam, L1 + 1, Len(sParam))) '取得题目编号
End Sub
怎么理解?
展开
 我来答
xiaomingtt
2012-11-02 · TA获得超过1752个赞
知道小有建树答主
回答量:917
采纳率:86%
帮助的人:693万
展开全部
Private Sub GetParameters(ByVal sParam As String, lpTmlx As Long, lpTmbh As Long)

'定义一个自定义函数,函数名为GetParameters,该函数有三个参数分别为字符参数sParam 和长整型参数lpTmlx和lpTmbh

Dim L1 As Long '记录分离出来的编号

'定义一个长整型变量,变量名L1,根据上面的标记可以知道这个变量用来记录分离出来的编号

L1 = InStr(1, sParam, "-", vbTextCompare) '分离各编号

'instr函数,返回指定一字符串在另一字符串中最先出现的位置。
'INSTR(从第几个字符开始,源字符串 ,要查找的字符串,匹配模式)
'即上面的语句为:从第一个字符开始查找Param参数传递过来的字符串中的字符“-”,匹配模式为vbTextCompare(执行一个按照原文的比较。)

lpTmlx = CLng(Mid(sParam, 1, 1)) '取得题目类型编号

'mid函数,从字符串中返回指定数目的字符。Mid(sParam, 1, 1)就是从sParam第一个字符开始,取一个字符
'并将取到的字符通过Clng函数转变为长整型,并赋值给参数lpTmlx

lpTmbh = CLng(Mid(sParam, L1 + 1, Len(sParam))) '取得题目编号

'mid函数同上,这里说一下L1+1,上面提到L1是字符串中“-”字符的位置,加1就是从“-”字符后面一个开始取
'取的长度就是sParam的长度(Len函数,获取字符串长度)

End Sub

根据我的理解,要处理的字符串可能是这样的
2计算机-网络技术
其中2是题目类型编号代表计算机,及参数lpTmlx要获取的内容
L1就是字符“-”在字符串中的位置,这里应该是5
但是我看lpTmbh = CLng(Mid(sParam, L1 + 1, Len(sParam)))可能不太对
因为Len(sParam)的数值是9,而L1+1的数值是6,也就是说要从sParam(2计算机-网络技术)第6个字符(网)开始取9个字符
但后面其实没有9个字符了,这句可以改成这样
lpTmbh = CLng(Mid(sParam, L1 + 1, Len(sParam) - L1))
扶桑看天
2012-11-07 · TA获得超过838个赞
知道小有建树答主
回答量:373
采纳率:100%
帮助的人:254万
展开全部
不用想的太复杂,就是处理一个长整形变量,拆分取出需要的部分
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式