在VB如何将字符串转化为可计算类型?
举个例子吧: dim a as string a="3+5+8*5" ………… '对a做一些处理, print a 输出: 48 VB里有没有内部函数可以实现这种转化? 如果没有,用怎样的过程来实现?
方法1: 用Script Control,网上有很多例子 在工具栏添加ScriptControl控件 方法:在部件里选择“Microsoft Script Control 1。0” 其他可以参考附件里的源码。 方法2: 用API函数 Option Explicit Private Declare Function EbExecuteLine Lib "vba6。
dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long Private Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0 End Function Private Function calc(ByVal x As String) As String ExecuteLine "dim x as double" ExecuteLine "x= " & x ExecuteLine " ttext x" calc = Clipboard。
GetText End Function 调用例: Dim a As String a = "3+5+8*5" Print calc(a)。
过程: 每一位数取出来,变成数组:3,+,5,+,8,*,5 然后判断每一位的ASCII码,大等于48并且小等于57的就是数字。其他的都是字符。 ascii码表: 然后自己写过程拼起来……只能这样。
我的共享资料里面,有很多的源代码,你可以参考一下的。
vb里面没有这样的函数,需要自己写.具体做法很多地方都有.尤其是一些介绍编译原理的书. 有两种方法: 简单一点的方法是用递归,先搜索字符串中最高级的运算符,如乘号,然后把运算符的左右串重新进行运算,搜索完高级的搜低级的,递归结束条件为每个字符都是数字(或小数点). 另一种方法涉及到数据结构二叉树,不过用vb做难度教大……一般都用第一种效率较低虽然
答:a=val(Text1.text) 这样应该就可以了! 我这边VB出了点问题没有办法试试看 呵呵~ 只好你自己来试试看了!详情>>
答:线性链表分好几种,分为单链,双链等,它们的存储顺序也不一样. 线性表是顺序存储的,占顺序的存储空间详情>>
问:电脑安装了VB6.0,为什么打开方式里面没有VB程序选项,进安装好的VB里去关联...
答:打开方式最下面还有一个《选择程序》,点开后查VB的安装目录的EXE,找到后直接打开,下次就会在打开方式里查到了详情>>