力扣算法LeetCode第772题(基本计算题3)是一道很实用的算法题,继续练习计算器的制作。这道题跟上一道基本计算2差不多,题目要求除了加减乘除,还多了括号,基本思路还是利用堆栈原理。VB语言里没有现成的堆栈函数,需要用数组自己做一个。这也是难点。可能很少有人用VBA练习算法,我却觉得VBA是个很不错的玩意儿,直接能把计算结果显示在Access数据库窗体里,边编程边显示结果,感觉多爽,这不比黑乎乎的控制台有意思多了?我现在VB和C#都练,但VB感觉稍微更难,因为力扣官方题解没有VB语言。好在有OpenAI,直接能给出VB的代码,就是需要修改。ChatGPT真的很不错。#vb使用简介#
2、vb编辑器如何使用VB/VBA的IDE究竟需要什么?1、前面给大家介绍了两个优秀的IDE插件,可以说无论是UI的豪华层面,还是干饭的干货层面,都极具代表性。尽管如此,它们仍然在应用过程中饱受诟病,也并没能拯救VB/VBA的颓势,为什么呢?2、深层次的原因还是在于基因的问题,当年的BASIC就是用于教育目的,只不过后来在微软手上又持续加入了很多彩蛋。普遍用于教学的编程工具,而且对象是广大非计算机专业人士,那就不得不舍弃一些专业的晦涩,提升一些编程的乐趣。从这一点上,VB就不能,也不应当与其他专业工具比较专业性。VB曾经的确红火过,但那属于计算机软件业拓荒的野蛮时代,任何一个行业终都会交由那些精通的专业人士来维护,而VB前后的遭遇正好印证了这样的市场法则。VB经过微软的改造,尤其是与VS6.0的战略协同,拥有了不错的专业性。但是,桌面工具与硬件端捆绑得太死,迟早会被网络化的轻模式威胁。JAVA的异军突起,让微软在战略上倍感压力,不得不上马.NET加以应对。微软当然清楚,这场战斗中,群演的VB疗效甚微。所以“能用,够用”就成了这一产品的未来好的结局。自然,进入NT时代以后,VB家族就没有重大更新,始终维持在『可用』级别上,无论是VB6、VBA,还是VBS,无不是如此。2008年4月,微软更是官宣停止VB6的IDE更新。64位的OfficeVBA和VBS,虽然升级到了64位,但IDE功能上,还是老样子。这和后来的社会化大分工,是紧密相关的。软件业,不再像当年那样稀缺开发人员,相反程序员成为了一个庞大的职业群体。VB当年定位的普罗百姓,也不再需要通过编程才能使用计算机。所以,在这种分工背景下,注定了VB的用户属性,编程属性也仅仅是弥补通用软件的定制不足。所以,可用和够用,对于这一群体而言,是一个恰当的定位,而VB的IDE进化缺乏市场支持后,也只能保持原地不动。3、VB的IDE停更,并不意味着直接宣判这类产品的死刑,而是将其整体打包到Win32生态兼容上。虽然,20多年后,再看VB的IDE,确显古老,但这并不意味着IDE无法被改造。VB从4.0开始全面拥抱COM,到了6.0时已经运用得炉火纯青。VB的IDE也自然不会放过COM,也正是因为如此,VB的IDE提供了大量的二开接口,用户可以很方便使用这些接口来扩展IDE。所以,笔者曾说,官方停更了,难道自己就不能DIY了吗?4、所以,才有前几篇提到的这些IDE插件。但是它们在扩展IDE时,都没有将本身的意义梳理清楚。微软官方提供的IDE(包括滚轮支持),对于该工具的市场定位是足够的。如果要扩展,有两个方面是不能避免的。一是,不能破坏易用性。如果将VB进化成Delphi那样的专业工具,VB就不是VB了。易用性,不仅包括用户易于使用,更在于在理解上没有很高的门槛。ThunderVB,虽然容易使用,但是它提高了理解的门槛,将VB变成了一个低端版的Delphi。所以,终也消失在了人们的视野中。二是,能够拓展VB的边界。VB的IDE够用,并非一句空话。语法智能提示不说,就代码自动补全上,虽不能和现代的VSCode的函数补全相提并论,但毕竟也是有的。其他不能自动补全的,手工输入,其实也并不是个事,反倒是编码素养的问题。代码块的定位,可能受诟病,但是鼠标滚轮+函数列表+资源模块列表+全模块和单函数显示模式,什么样的代码不能定位呢?非要折叠代码块吗?VB/VBA的IDE环境可是要支持解释运行源码的,折叠了还怎么运行?凡是那些能折叠代码块的,哪一个能支持逐行源码解释的?缩进格式,这个更是编码人员自身素养的问题。VB的IDE提供了代码块缩进支持,就是Tab/Shift Tab,缩进与恢复缩进代码块,格式什么的真不是问题。CodeSMART为了这些与编码人员素质相关的问题,不仅花费了大量的界面,也牺牲了IDE的性能和健壮性。所以,很多用户反馈,用了之后无法正常退出工程,莫名的卡顿,界面过于繁杂等等。究其原因,就是没能抓住拓展边界的属性。5、拓展VB的边界和不破坏易用性,往往自成一对矛盾。VB作为VS的一员,在开发过程中使用了大量系统性的资源,但终呈现给用户的却极少,这便是VB中的彩蛋。IDE的开发人员,其实不必自寻思路,仅需将这些彩蛋找出来,以一个合理的方式呈现给用户,就能极大地拓展VB的边界。而这个合理的方式,就是要像VB/VBA所呈现的那样,在概念上必须再次抽象,不能让用户直面那些专业的概念。要做到这一点,绝非易事。[心]欢迎关注BtOfficer[心](收藏、点赞、关注+转发) ,更多精彩仍在继续哦(专栏文章将更系统,更全面,但需要阁下支持哦),有严肃的技术,也有轻松的唠嗑,期待你的加入!
3、vb集合使用方法挖个VB/VBA数组的小秘密,颠覆下常规!1、对很多VB/VBA的用户来讲,数组是工具箱中的加特林。那什么是数组?VB/VBA是怎么告诉我们的呢?BtOfficer认为核心概念不外乎:多个相同数据类型的元素,排列在连续的内存里,可以通过索引进行读写。2、在VB/VBA中用Dim aArray() as XXX的形式声明数组,若指定元素数就是固定数组,若不指定就是动态数组。动态数组,可以用ReDim语句根据需要指定数组大小。借助LBound和Ubound函数确定索引的小和大值后,是不是就可以循环走起了?数组的用法,一般就这样了吧。但BtOfficer要说的这个秘密,就在于循环。3、大家是不是这样写循环:Do...Array(i)...Loop,或For i=Lbound to ubound ...Next?有没有尝试过For Each Item In aArray的方式?没错,VB/VBA的数组遍历,都可以使用For Each IN Next。是不是还记得这种方式更快呢?另外,还记得BtOfficer还说过,VB/VBA中没有真数组,而字符串可以勉强视为VB/VBA中的真数组。那好东西就来了,如果要处理字符串,将其按照数组的方式进行处理,是不是省了很多事的同时,就高效了不少?4、如果深入了解COM,我们就知道,要想实现For Each Next,就得实现IEnumIDList接口,那这就是妥妥的对象了哦。没错,VB/VBA中的数组,正确的叫法,就该叫数组对象。5、VB/VBA中处处都是COM的身影,BtOfficer在前期分享了变体、整数、浮点数、字符串的相关,更接近本质的知识。但一直未就数组、自定义类型、对象等类型进行展开,就是因为没有找到一个合适的切入口,否则会反惯性。所以,有兴趣的继续关注BtOfficer呀,重量级的运行时扩展,将更加深入,但一点儿都不难用哦。
4、vb简史Vb是上古语言,但现在继续得到微软的支持。Vb开发了大量的工业软件,目前主流的Erp系统,如用友的u8,金蝶的k3就是用Vb开发的,相关的接口开发,二次开发,依然需要用Vb。一门语言有长久的生命力,关键在客户市场的拥有量。Excel的开发脚本语言依然是Vb,这决定了它有海量的用户。这个世界,没有什么软件有Excel的用户多。#vb使用简介#
5、vb表格控件使用教程[用vb写c++]实现了On Error Goto ??语句。实现了Err对象的Number和Description。实现了自定义Integer的溢出捕捉。
6、vb工具使用教程说说VB家族的安全特性1、在上篇《VB/VBA中Declare声明API时,这样用效率又会增加一点点哦!》中提了下Delare机制隐藏函数指针,使得VB的程序只有1个导入库(MSVBVMXX.DLL)。有网友认为,这样可以增加破解的难度。关于VB的安全特性,其实早在《VB的无解,变现为首,质量其次,就这样了?》中就有所介绍了。本打算继续在《VB/VBA的虚拟机》系列中,逐步分享相关细节,但后面想了下,因为各大专用破解工具的存在,导致VB/VBA的破解门槛相当低,使得其安全性脆弱。尤其是广大VB/VBA的作者们,他们大多没有涉入比较深层次的反调试、反反反调试手段,如果再将相关细节披露出来,只会利好那些破解者。尽管市场上不乏各种贬损VB/VBA的言论,笔者也从各个层面尽可能客观地来看待,并展现给广大业余编程爱好者。对于时间精力有限的人士而言,VB/VBA的确是个好东西,就像很多非IT使用Python那样,并不太需要了解底层的逻辑。然而,好东西的行业,还是需要利益来维系的。VB/VBA具有极高的使用价值,却始终无法提升交易价值。所以,了解VB家族的安全特性,有助于进一步发挥VB/VBA/VBS产品的使用价值,当然也能提升这种使用价值的交换价值。笔者在本篇及以后,也会更多分享如何提升VB产品安安全性的方法,欢迎感兴趣的朋友继续关注哦。2、接着网友的说法,Declare机制在某种层面上,的确可以增加破解难度。因为,要破解VB的程序,必须对MSVBVMXX.DLL要有深入的了解才行。但是,这是VB淡出专业开发市场,越来越多懂行的人很少再涉猎VB导致的。无论怎么样,这都是事实,VB离专业人员越远,VB反而更安全。这是一种带有侥幸心理的假象,因为早些年VB的很多机制已经被人研究得很透彻了,那些成果尽管几近遗失,但终归还是存在的。专业破解人员很少涉猎这块,大概是VB产品本身价值的问题。更何况,自古编程皆开源,没有破解不了的软件。VB的很多机制,其实都靠近底层,但是表现上却又靠近人。尤其是那些屏蔽专业技术概念的机制,容易迷惑不懂VB的专业人士,比如“Dim a,b,c As Long”。笔者也曾在吾爱破解、看雪等论坛上,目睹破解VB的经验之谈,但大多错漏百出。所以笔者认为,无论是认知上,还是技术难度上,VB程序本身就自带巨壳。尤其是PCODE,能让专业调试器爱莫能助,鞭长莫及。尤其是本机指令和PCODE相结合,改改VB的公式化编译,有针对性地反下VB的专业破解工具,基本上就能让逆向者望而却步了。毕竟,VB擅长中小型产品,很难出现Office级别的桌面产品,破解的收益难以覆盖成本。所以,只需要注意那么一丢丢,VB的安全性就能天壤之别。3、要讲到一款开发工具的安全特性,更多的是指在编译器的兜底下,用户的犯错边界。比如C的指针,给了C用户极大的施展空间,稍有不慎就会危及系统安全。但是在VB/VBA中,用户很难写出让系统崩溃的产品。笔者要讲到安全特性,大抵就是指这个。就VB/VBA而言,使用是安全的,用户可以放心整,顶多把自己的进程搞废。但是,安全是有代价的,这个代价就是VB那些被吐槽了无数次的槽点,一言以概之,就是没有专业工具中的灵活性。这个是没有办法的,用户越灵活,拥有的决定权越大,就越难兜底用户的行为。为Office服务的VB,是不能容忍用户拥有大的决定权(专业灵活性)的,不然屎盆子都会扣到Office身上。收掉开发者的自由,不仅VB一家这么干,JAVA也这么干。但是,与JAVA自造概念体系不同,VB只是遮掩。一旦掀开VB的隐藏之门,VB就是另一幅凶神恶煞的样子。前面给大家介绍的ThunderVB插件也仅仅露了一个角落而已,就已经让人觉得不可思议了,但终究无人问津。因为,那样不安全,将一个不安全的东西交给不懂安全的人来掌控,体验是地狱式的。所以,ThunderVB用错了地方,它不该改变VB的安全特性,正如VB圣经《Advanced Visual Basic》的作者Matthew Curland所倡导的那样,尽管展现VB隐藏的机制,需要使用更底层的技术,但不应将其视为某种秘术,VB的价值在于效率和犯错少。[心]欢迎关注BtOfficer[心](收藏、点赞、关注+转发),更多精彩仍在继续哦(专栏文章将更系统,更全面,但需要阁下支持哦),有严肃的技术,也有轻松的唠嗑,期待你的加入!