爱问知识人 爱问教育 医院库

在VB如何将字符串转化为可计算类型?

首页

在VB如何将字符串转化为可计算类型?

举个例子吧: 
dim a as string
a="3+5+8*5"
………… '对a做一些处理,
print a
输出:  48
VB里有没有内部函数可以实现这种转化?
如果没有,用怎样的过程来实现?

提交回答
好评回答
  • 2006-12-31 14:57:30
      方法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)。

    1***

    2006-12-31 14:57:30

其他答案

    2006-12-29 16:34:32
  • 过程:
    每一位数取出来,变成数组:3,+,5,+,8,*,5
    然后判断每一位的ASCII码,大等于48并且小等于57的就是数字。其他的都是字符。
    ascii码表: 
    然后自己写过程拼起来……只能这样。

    s***

    2006-12-29 16:34:32

  • 2006-12-26 19:20:35
  • 我的共享资料里面,有很多的源代码,你可以参考一下的。

    o***

    2006-12-26 19:20:35

  • 2006-12-19 21:22:41
  • vb里面没有这样的函数,需要自己写.具体做法很多地方都有.尤其是一些介绍编译原理的书.
    有两种方法:
    简单一点的方法是用递归,先搜索字符串中最高级的运算符,如乘号,然后把运算符的左右串重新进行运算,搜索完高级的搜低级的,递归结束条件为每个字符都是数字(或小数点).
    另一种方法涉及到数据结构二叉树,不过用vb做难度教大……一般都用第一种效率较低虽然

    S***

    2006-12-19 21:22:41

类似问题

换一换
  • VB 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 172-191
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):