精华内容
下载资源
问答
  • VB评估数学表达式

    2020-05-18 19:10:52
    许多人问是否有一种方法可以写一个数学表达式,在文本框中以字符串形式编写,因此他们可以执行以下操作: subsomething_click() textbox2.text=eval(textbox1.text) endsub好吧,这当然是可行的,并且可以通过管理...

    许多人问是否有一种方法可以写一个数学表达式,在文本框中以字符串形式编写,因此他们可以执行以下操作:

    sub something_click()
        textbox2.text=eval(textbox1.text)
    end sub
    好吧,这当然是可行的,并且可以通过管理某些字符来完成。 这样,您可以根据需要将其复杂化。 我通常的做法是通过5个简单的步骤:

    1.创建2个字符串数组,将数字保存在一个中,将运算符保存在另一个中:

    2.将第一个数组转换为双精度数组(因此您可以使用Option Strict)

    3.评估能力(我不评估根,因为您可以使用a ^ 0.5代替sqrt等)

    4.评估产品和部门。

    5.评估总和和差额。

    完成此小功能后,我想使用递归性制作另一个函数来处理括号,这在处理根时非常有用,因为您可以编写a ^(1/5)而不是第5个根。

    让我们将第一个函数称为“ Basics”,然后将括号处理程序称为“ Eval”,它们可能如下所示:

    Public Function Basics(ByVal Str1 As String) As Double
            Dim i, j, k As Integer
            Dim Boo1 As Boolean = False
            Dim mStr1(1), mStr2(0), mStr3(0), mStr4(0) As String
            Dim mDou1(), mDou2(), mDou3() As Double 
            If Str1 = "" Then Return 0 : Exit Function
            '----------------------------------------------------------'
            ' Save in mStr1 the numbers. Save in mStr2 the operators.  '
            '----------------------------------------------------------'
            j = 1
            For i = 1 To Str1.Length
                k = Asc(Mid(Str1, i, 1))
                If (k >= Asc("0") And k <= Asc("9")) Or k = Asc(".") Or (k = Asc("-") And Boo1 = False) Then
                    mStr1(j) = mStr1(j) & Chr(k): Boo1 = True
                ElseIf k = 69 Then
                    mStr1(j) = mStr1(j) & Chr(69) & Mid(Str1, i + 1, 1): i = i + 1
                Else
                    If Boo1 = True Then
                        ReDim Preserve mStr2(j)
                        mStr2(j) = Chr(k): j = j + 1
                        ReDim Preserve mStr1(j)
                    End If
                    Boo1 = False
                End If
            Next
            '--------------------------------------'
            ' Save in mDou1 the numbers as doubles '
            '--------------------------------------'
            ReDim mDou1(UBound(mStr1))
            For i = 1 To UBound(mStr1): mDou1(i) = CDbl(mStr1(i)): Next
            '------------------------'
            ' First priority: powers '
            '------------------------'
            j = 1: ReDim mDou2(1): mDou2(1) = mDou1(1)
            For i = 1 To UBound(mStr2)
                If mStr2(i) = "^" Then: mDou2(j) = mDou2(j) ^ mDou1(i + 1)
                Else
                    ReDim Preserve mStr3(j): mStr3(j) = mStr2(i)
                    j = j + 1: ReDim Preserve mDou2(j)
                    mDou2(j) = mDou1(i + 1)
                End If
            Next
            If UBound(mStr3) = 0 Then Return mDou2(1) : Exit Function
            '-----------------------------------------'
            ' Second priority: products and quotients '
            '-----------------------------------------'
            j = 1: ReDim mDou3(1): mDou3(1) = mDou2(1)
            For i = 1 To UBound(mStr3)
                If mStr3(i) = "*" Then: mDou3(j) = mDou3(j) * mDou2(i + 1)
                ElseIf mStr3(i) = "/" Then: mDou3(j) = mDou3(j) / mDou2(i + 1)
                Else
                    ReDim Preserve mStr4(j): mStr4(j) = mStr3(i)
                    j = j + 1: ReDim Preserve mDou3(j)
                    mDou3(j) = mDou2(i + 1)
                End If
            Next
            If UBound(mStr4) = 0 Then Return mDou3(1) : Exit Function
            '---------------------------------------'
            ' Third priority: sums and differences. '
            '---------------------------------------'
            Basics = mDou3(1)
            For i = 1 To UBound(mStr4)
                If mStr4(i) = "+" Then: Basics = Basics + mDou3(i + 1)
                ElseIf mStr4(i) = "-" Then: Basics = Basics - mDou3(i + 1): End If
            Next
    End Function
    对于括号处理程序:
    Public Function Eval(ByVal Str1 As String) As Double
            Dim i, j, k(2), c As Integer
            Dim Str2 As String
            If Str1 = "" Then Return 0 : Exit Function
            '------------------------------'
            ' Find the outern parenthesis. '
            '------------------------------'
            j = 0
            For i = 1 To Str1.Length
                If Mid(Str1, i, 1) = "(" Then
                    If j = 0 Then k(1) = i
                    j = j + 1
                ElseIf Mid(Str1, i, 1) = ")" Then
                    If j = 1 Then: k(2) = i: Exit For: End If
                    j = j - 1
                End If
            Next
            '----------------------------------------------------------------------'
            ' Using recursivity, it'll find the inner ones, and add '*' when needed'
            '----------------------------------------------------------------------'
            If j = 1 Then
                If k(1) > 1 Then c = Asc(Mid(Str1, k(1) - 1, 1))
                Str2 = ""
                If (c >= Asc("0") And c <= Asc("9")) Or c = Asc(".") Then Str2 = "*"
                If c = Asc("-") Then Str2 = "1*"
                Str1 = Eval(Mid(Str1, 1, k(1) - 1) & Str2 & Eval(Mid(Str1, k(1) + 1, k(2) - k(1) - 1)).tostring & Mid(Str1, k(2) + 1).tostring).tostring
            End If
            Return basics(Str1)
    End Function
    这是VB 2005 Express版本的功能,语法可能会在其他版本的VB中更改,因此您可能必须更改某些“返回”,“ ToString”和“ .Length”,以及使用以下方法声明数组或处理行的方式':'。

    您还应注意,当括号之前需要时,它将添加一个“ *”,但之后需要时将不会添加。 所以2(8)= 16但(2)8将是一个错误。

    这是一个非常简单的功能,但是我确信您会发现它很有用。

    卡德

    From: https://bytes.com/topic/visual-basic/insights/759263-evaluate-mathematical-expressions-vb

    展开全文
  • VB6.0语言数据库里存储的布尔表达式怎么以结果的形式拿到值,或者字符串转换为表达式的运算
  • // vb中的简单空白字符过滤 , classic: /\s/ // 传统的js空白字符过滤 , ecmascript5: /[\s\xA0\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/ // ECMAScript 5中对/s的补充定义 ...
    var trimInfo =
    { basic: / /
      // vb中的简单空白字符过滤
      , classic: /\s/
      // 传统的js空白字符过滤
      , ecmascript5: /[\s\xA0\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/
      // ECMAScript 5中对/s的补充定义
      , ex: /[\s\xA0\u2028\u2029]/
      // 印象中是和js中的标识符或者字符串有关,忘了从哪来的了XD
      , control: /[\x00-\x1F\x7F-\x9F]/
      // 补充了控制字符的简单过滤
      , dotNet: /[\s\xA0\u2000-\u200B\u3000\uFEFF]/
      // .NET平台的默认实现
      , unicode: /[\s\x85\xA0\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/
      // 过滤Unicode标准中定义的空白字符
      , complex: /[\x00-\x20\x7F-\xA0\u1680\u180E\u2000-\u200B\u2028\u2029\u202F\u205F\u3000\uFEFF]/
      // 复合的过滤,是以上几种的并集
    };
    

    注意:列出的代码只是为了方便程序处理而采用了正则表达式的语法,但实际上并不是可以直接用于过滤的正则表达式。

    根据实际的使用情况,可能需要增加“g”等标志,或者进一步加工成更复杂的正则表达式。

    转载于:https://www.cnblogs.com/NanaLich/archive/2010/12/22/1913326.html

    展开全文
  • vb中val是什么意思这是一个把字符串转为数值的函数,将S转为它的数值形式存入V中。它返回包含于字符串内的数字,字符串是一个适当类型的数值。通常在visual foxpro(数据库管理系统)中用的比较多。必要的 string 参数...

    vb中val是什么意思?随着时代的发展,越来越多的的新词汇出现在我们的生活中,下面就和美文阅读网小编一起来了解一下vb中val是什么意思吧。

    vb中val是什么意思

    这是一个把字符串转为数值的函数,将S转为它的数值形式存入V中。

    它返回包含于字符串内的数字,字符串是一个适当类型的数值。通常在visual foxpro(数据库管理系统)中用的比较多。

    必要的 string 参数可以是任何有效的字符串表达式。

    Val ( )函数,在它不能识别为数字的第一个字符上,停止读入字符串。那些被认为是数值的一部分的符号和字符,例如美圆号与逗号,都不能被识别。但是函数可以识别进位制符号 &O(八进制)和 &H(十六进制)。空白、制表符和换行符都从参数中被去掉。

    拓展阅读:val路轨技术

    VAL是自1980年代采用了Robert Gabillard教授发明的胶轮路轨系统技术,由法国马特拉公司设计的一套专利轨道运输系统。这是一个由列车到月台设计全包的“套餐”系统。特点是采用了胶轮列车及路轨系统、全自动无人驾驶中央导航列车及安装有瑞士Kaba公司制的自动开关月台幕门的车站。

    VAL原为“Villeneuve d'Ascq a Lille”,即“维尔诺夫达斯克至里尔”的法文缩略以表示第一个采用了这个系统的路线。但后来官方将之定义为技术向的“Vehicule Automatique Leger”,法文直译为“自动轻级车辆”之意。

    展开全文
  • vb中val是什么意思这是一个把字符串转为数值的函数,将S转为它的数值形式存入V中。它返回包含于字符串内的数字,字符串是一个适当类型的数值。通常在visual foxpro(数据库管理系统)中用的比较多。必要的 string 参数...

    vb中val是什么意思?随着时代的发展,越来越多的的新词汇出现在我们的生活中,下面就和康网小编一起来了解一下vb中val是什么意思吧。

    vb中val是什么意思

    这是一个把字符串转为数值的函数,将S转为它的数值形式存入V中。

    它返回包含于字符串内的数字,字符串是一个适当类型的数值。通常在visual foxpro(数据库管理系统)中用的比较多。

    必要的 string 参数可以是任何有效的字符串表达式。

    Val ( )函数,在它不能识别为数字的第一个字符上,停止读入字符串。那些被认为是数值的一部分的符号和字符,例如美圆号与逗号,都不能被识别。但是函数可以识别进位制符号 &O(八进制)和 &H(十六进制)。空白、制表符和换行符都从参数中被去掉。

    拓展阅读:val路轨技术

    VAL是自1980年代采用了Robert Gabillard教授发明的胶轮路轨系统技术,由法国马特拉公司设计的一套专利轨道运输系统。这是一个由列车到月台设计全包的“套餐”系统。特点是采用了胶轮列车及路轨系统、全自动无人驾驶中央导航列车及安装有瑞士Kaba公司制的自动开关月台幕门的车站。

    VAL原为“Villeneuve d'Ascq à Lille”,即“维尔诺夫达斯克至里尔”的法文缩略以表示第一个采用了这个系统的路线。但后来官方将之定义为技术向的“Véhicule Automatique Léger”,法文直译为“自动轻级车辆”之意。

    展开全文
  • vb中的print方法

    2020-09-16 10:31:14
    VB中我们经常会用到Print方法,它可以在窗体、图形框中输出信息。但是我们大多数人可能并不知道Print完整的使用方法。下面就跟着我一起来学习Pirnt真正的用法吧。 Print方法 作用: 在窗体、图形框输出信息,缺省...
  • 2.VB中的数据结构

    2019-08-04 10:00:33
    1.标识符 规则:字母或者下划线开头;不能使用VB关键字;不要使用特殊意义的标识符;不区分变量的大小写,一般来说首字母大写,符号常量均大写 ...符号常量:形式:Const 符号常量名 [ As 类型] = 表达式 其...
  • 第7 章 过 程 7 1 填空题 1 一个VB 应用程序可以包括的三种模块是 和 模块 答案窗体模块标准模块类模块 2函数过程定义中至少有一个赋值语句把表达式的值赋给 答案函数过程名 3在VB 中过程定义中有两种传递形式的参数...
  • VB6.0的MsgBox语句

    千次阅读 2018-06-05 23:01:30
    MsgBox的用法 形式 Promt Button: Title ...形式 ...  MsgBox (Prompt [,Buttons] [,Title] [,Helpfile,Context]) ...字符串表达式。显示消息。最大长度为1024个字符。换行用(Chr(13) &amp; Chr(1...
  • C++与VB 异同(二)

    千次阅读 热门讨论 2014-03-31 22:26:23
    (C++与VB类同) (2)说说C++中“左值”和“右值”的区别 左值(l-value)是指: ①具有与其对应的存储空间; ②可以由用户改变其值。 常量属于右值;变量属于左值。 (3)赋值运算符左边的操作数必须是一个...
  • SSTab1.TabVisible(1) = False object.TabVisible(tab) [ = boolean ] tab 数值表达式,它指定应成为可视或隐藏形式的选项卡。 SSTab1.TabVisible(index) = False index是选项卡的索引值 转载于:...
  • 2说明格式 Dim 变量名 As 类型 如Dim abc_1 As Date 注 定义变量的类型后只能赋给该类型的值否则出错 三运...^ \ MOD 2表达式 由运算符和配对的圆括号将变量常量函数等 操作数以合理的形式 连接起来式子 如(a+b*Absc
  • vb.net 教程 2-2 流程控制:选择语句

    千次阅读 2017-03-19 17:35:00
    版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 流程控制的选择语句使用的是Select ...Select Case 表达式(此表达式的计算结果必须为某个基本数据类型)...
  • 这意味着大多数情况下,该Variant(变量)在能够再用于表达式中前必须转换成字符串或者指定为String变量。 这是一个不会带来任何好处的浪费时间的过程。非正式基准测试表明, 例如Left$函数比对应的无$的函数快两倍。...
  • if语句指编程语言(C语言、VB、Java等)中用来判定所给条件是否满足,根据判定结果决定执行某一条件,可以是关系表达式或逻辑表达式等。if流程图其实就是程序流程图的其中一种画法,有时候为了方便理解判断内容,或使...
  • (其中逆波兰表达式可以有各种表示形式,如数组、链表等,这里我们选用字符数组即字符流的形式表示可以使得一般情况下所占用的存储空间最小。) 而转换逆波兰表达式又可以分为预转换及生成逆波兰表达式两个过程。预...
  • 风越ASP代码生成器 2.4

    2009-05-26 21:22:40
    10、支持自动生成多组多级的级联下拉框功能,快速建立如:省、市、县/公司、部门、小组等形式下拉框 ★ 11、支持表单提交超过100KB的文本数据 ★ 12、支持多文件上载、修改、删除记录时同步删除文件 13、支持控件名...
  • 10、支持自动生成多组多级的级联下拉框功能,快速建立如:省、市、县/公司、部门、小组等形式下拉框 ★ 11、支持表单提交超过100KB的文本数据 ★ 12、支持多文件上载、修改、删除记录时同步删除文件 13、支持控件名...
  • 12.5.1 字符串的表达形式 12.5.2 字符指针作为函数参数 12.5.3 使用字符指针与字符数组的区别 12.6 指针数组与命令行参数 12.6.1 指针数组的定义和使用 12.6.2 指向指针的指针 12.6.3 指针数组作为main()函数的...
  • 编程新手真言......

    2009-04-02 20:25:15
    3.12 类VB,DELPHI类RAD语言分析 82 第4章 语言最小内核(C) 83 4.1 C与C++是二种不同的语言 83 4.2 C的数组,指针与字符串 84 4.3 C的输入与输出流 84 4.4 C的类型系统与表达式 85 4.5 二进制指令看循环 85 4.6 所谓...
  • 2.2 运算符与表达式 实例022 计算加权平均值 实例023 金额大小写转换 2.3 常用的函数与语句 实例024 大小写转换 实例025 程序立即退出 实例026 数字与字符串的转换 实例027 文本字数统计 实例028 一封家书 ...
  • C#微软培训教材(高清PDF)

    千次下载 热门讨论 2009-07-30 08:51:17
    18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...
  • C#微软培训资料

    2014-01-22 14:10:17
    18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...
  • Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
  • 第1 章 VB 2 0 0 8核心元素.......................... 1 1 . I 原来的关键字和语法................... 2 1 . 2 值类型和引用类型........................7 1 . 3 命令:条件语句.........................10 ...
  • 易语言5.1 相对于易语言5.0更新说明:  支持静态链接其它编程语言(如C/C++、汇编等)编译生成的静态库(.LIB或.OBJ),但仅限于COFF格式,支持cdecl和stdcall两种函数调用约定。  使用说明如下:函数声明和调用...

空空如也

空空如也

1 2
收藏数 31
精华内容 12
关键字:

vb表达式形式