博文
正则表达式法计算字符串算术表达式1(vb2005)(2008-07-27 21:07:00)
摘要: 今天开始,学习如何用正则表达式来对字符串数学表达式进行处理的方法。主要学习参考资料为《vb2005技术内幕》一书。通过学习达到一些目的:一是初识正则表达式及其应用;二是掌握字符串数学表达式的处理方法;三是学习面向对象方法编程的一般方法。
正则表达式
正则表达式此时的作用有两个,一是分析表达式各个元素,分离出数字、函数(如Sin)和运算符等,二是为下一步的计算做好准备。
正则表达式举例
下面列举的正则表达式都是程序中必须用到的,我将逐个解释,请大家尽量搞明白。
1、"\s*[+-]?\d+\.?\d*\b\s*"
上面引号内就是一个正则表达式,它表达什么意义呢。根据正则表达式的语法规定,\s是转义字符,表示空白字符(如空格、制表符、换行符等);\s*中的*号是数量词(零个或多个),整体表示零个或多个空白符;[+-]表示字符串可能包含+或-其中之一,其后的?号也是数量词(零个或单个),[+-]?整体表示字符串中包含不多于一个的+或-;\d+表示字符串必须包含一个以上的数字,其中\d表示数字,+是数量词(一个或多个);\.?表示字符串可以包含至多一个小数点;\d*和上面的\d+区别是,表示字符串在小数点后可以有数字也可以没有,即零个或多个数字;\b表示字符边界。由以上的分析可以知道,上面的表达式其实表示一个浮点数,而且浮点数前后可以有空白字符。如下面的字符串就是匹配该正则表达式的字符串:" 12.222 ","-22"," -120.3333222","+100.90";但是"ss12000",就不符合该正则表达式。正则表达式有专门的语言,大家最好弄张表,随时查阅。
我们在程序中要用到浮点数,所以将其进行如下定义
Const num As String = "\s*[+-]?\d+\.?\d*\b\s*"
2、"\s*\((?<nump>\s*[+-]?\d+\.?\d*\b\s*)\)\s*"
仔细观察可以发现这个正则表达式其实包含了第一个表达式的内容,那么它当然也可以写为"\s*\((?<nump>" & num "\)\)\s*"。其中(?<nump&g......
网通拨号开机后等待时间长的问题解决(2008-07-27 08:14:00)
摘要:网通拨号上网的用户可能有这样的体会,开机后很长时间,机器一直处于繁忙状态,上网标准一直不出现,当然此时也无法连接网络。
偶然的机会我发现一个另类解决办法,但需要有一台路由器辅助解决。
首先,按照路由器的使用说明将电脑和路由器及网络联接好,并确认能够连上网。
然后,去掉路由器,把网线直接和电脑相连。
以后开机后就发现电脑很快就可以拨号了。至少节省时间90%。
原因分析:
网通对路由器的使用进行了千方百计地限制,一旦发现有路由器使用,就会采取一定的措施来防止。而我们就是利用了这一点,所以提高了速度。
真是有所得必有所失啊。......
C#编写的字符串算术表达式计算类(2008-07-26 15:57:00)
摘要:下面是文件的内容,将其全部复制到c#语言下的一个类中即可按上文要求的使用。
///<author>Emad Barsoum</author>
///<email>ebarsoum@msn.com</email>
///<date>March 23, 2002</date>
///<copyright>
///This code is Copyright to Emad Barsoum, it can be used or changed for free without removing the header
///information which is the author name, email and date or refer to this information if any change made.
///</copyright>
///<summary>
///This class <c>Function</c> use the transformation from infix notation to postfix notation to evalute most
///Mathematic expression, it support most operators (+,-,*,/,%,^), functions from 0 to any number of parameters
///and also a user defined function by using delegate, also it support variables in the expression, it will
///generate a symbol table that can be updated at run time.
///</summary>
using System;
using System.Collections;
namespace EB.Math
{
/// <summary>......
c#实现字符串算数表达式计算(2008-07-26 15:42:00)
摘要:Function Evaluator
Rating:
Emad Barsoum (view profile)
December 4, 2002
(continued)
function popWin(url){
spawn = window.open(url,'newWin','width=800,height=600,top=0,left=0,location=yes,toolbar=yes,status=true,scrollbars=yes,resizable=yes,fullscreen=no,menubar=no,directories=no');
spawn.focus();
}
Turbo Screen Sharing
Adobe Acrobat Connect Professional offers users the ability to have a more productive and engaging web conferencing experience while providing the IT department with a program that efficiently utilizes bandwidth and minimally impacts the infrastructure. Learn More! »
Informal Learning: Extending the Impact of Enterprise Ideas and Information
Forward-thinking organizations are turning to enterprise learning in their quest to be better informed, better skilled, better supported at the point of need, and more competitive in their respective marketplaces. Learn More! » ......
c#实现字符串表达式计算(2008-07-26 15:37:00)
摘要:
CodeDom Calculator - Evaluating C# Math Expressions dynamically
By Mike Gold August 08, 2005
This article describes how to use CodeDom and Reflection to Create a Calculator that can evaluate simple and complex math expressions on the fly.
Author Rank:
Technologies: .NET 1.0/1.1, Windows Forms,Visual C# .NET
Total downloads :
1223
Total page views :
34485
Rating :
5/5
This article has been rated :
6 times
Add to Technorati Digg This Add to del.icio.us
Download Files
CodeDomCalculator.zip
Sponsored by
Looking for a book on Windows Forms? Here is our book
Printing in C# Made ......
日本老兵忏悔:曾活体解剖少女了解性知识(2008-07-25 19:42:00)
摘要:对家住日本大阪附近的老人牧野秋良(音译)来说,过去的这62年是一段难熬的岁月,因为他心中深藏了一个无法向外人诉说的秘密--他曾在二战期间被派往菲律宾,并在那里参与了臭名昭著的人体实验行动。
隐藏秘密妻子不知
据英国《泰晤士报》2月25日报道,熟悉牧野秋良的人都知道他曾是一名老兵,但是牧野秋良本人却很少主动提及那段往事, 而是默默地做着一些慈善活动。他参与成立了纪念馆,给贫困的孩子捐赠衣物,为当地的棒球队购买整套的制服。去年,这位83岁的老人又突然决定要到全国88个寺庙里朝圣。不过,毕竟年事已高,在走到第40个寺庙后,牧野秋良因为疲劳过度而昏倒了。
此时的牧野突然想到了几年前去世的老伴。牧野秋良感慨地说,自己的这个秘密藏了一辈子,陪伴自己走过大半岁月的妻子到死都不知道他这段往事。可能看到自己所剩的时日无多,他才觉得有必要将此事"解密",让后辈了解战争的残酷。
1944年,牧野以海军医护人员的身份被派到菲律宾南部的棉兰老岛。在1945年3月日本被击败前的4个月时间里,年轻的牧野参与了日本在二战期间最残酷的人体实验活动,残害了大量被俘的囚犯。
牧野回忆说,他曾亲手剖开了10个活着的菲律宾囚犯的胸膛,其中还包括2个少女。他切除了他们的四肢,取走了他们身上的肝、肾、子宫和还在跳动的心脏,目的只是为了增长解剖学的知识。
时至今日,牧野回想起这段往事,仍不忘强调说,这的确很有教育意义。每当他去看医生时,后者总是会为他丰富的人体知识而钦佩不已。牧野辩解说,他当时真的相信,参与这样的实验活动是对那些为美国人充当间谍的菲律宾人最好的报复,对于被解剖的这些对象,他的确是仇恨多过遗憾,尽管现在他也为曾经使用的残忍手段而感到恐怖。
据悉,牧野秋良的这份证词是日本第一份指证海军曾在菲律宾实行过活体实验的证词。以往,较为人们所熟知的从事此类活动的日军是臭名昭著的731部队。在二战期间,他们曾在中国东北拿数千名中国人和俄罗斯人开刀,做人体实验。
听从命令参与解剖
牧野秋良生于1923年,长在日本著名的港口城市神户。1940年,他加......
Parse Math expressions, find roots in VB(2008-07-24 19:55:00)
摘要:Parse Math expressions, find roots in VB
' Visual Basic 6 module
'-------------------------- Math.bas ---------------------------
' Math expression parser that supports +, -, *, /, ^ (power),
' @ (logarithm), functions (exp, ln, sin, cos, tan, asin, acos,
' atan, sinh, cosh, tanh, int, frac, abs, sqrt), brackets
' Validate expression syntax, evaluate functions, derive functions
' Find roots using bisection method and Newton method
'-------------------------- Math.bas ---------------------------
' Copyright Ionut Alex. Chitu, http://deadline.3x.ro
'
' Public functions:
' Function Error_Message(ByVal N As Integer) As String
'
' N = Code number
' Returns the associated error message
'
' Sub Check_Syntax(ByVal S As String, ByVal WithX as Boolean,
' ByRef Function_Error As Integer, ByRef i1 As Integer)
'
' S = function text
' WithX = can contain x variable?
' Function_Error = error code, 0=no error
' i1 = position in function text ......
字符串表达式计算:vb.net语言编程(2008-07-24 19:51:00)
摘要:
Download source - 7.70 Kb
Introduction
A mathematical expression evaluator can be a useful piece of code if you often write applications which rely on any kind of scripting. Graphics applications which create composite images from templates, form filling or spreadsheet software which performs configurable calculations based on user input, or data analysis applications that perform calculations on batch data from scripts are just a few that come to my mind.
Some knowledge of lexical analysis, state machines and parsing would be helpful, but not necessary. The brief discussion here and a little experimentation with the code in the debugger, should hopefully provide adequate explanation to at least get started using the code.
Lexical scanning
The first step in evaluating an expression is to identify the individual components, or tokens, of the expression. This evaluator uses a finite state machine based lexical scanner to identify tokens, assigning each a category such as number,......
字符串算数表达式计算:VBscript调用(2008-07-24 19:44:00)
摘要:
' 别忘了引用 COM 对象Microsoft Script Control 1.0
Dim objScript As New MSScriptControl.ScriptControl
objScript.Language = "VBScript"
TextBox2.Text = objScript.Eval(TextBox1.Text).ToString
......
字符串表达式的计算方法:excel调用(2008-07-24 19:35:00)
摘要:如何计算数值表达式作为字符串存储
察看本文应用于的产品
function loadTOCNode(){}
查看机器翻译免责声明
文章编号
:
159974
最后修改
:
2004年7月1日
修订
:
3.1
本页
概要
更多信息
分步示例
var sectionFilter = "type != 'notice' && type != 'securedata' && type != 'querywords'";
var tocArrow = "/library/images/support/kbgraphics/public/en-us/downarrow.gif";
var depthLimit = 10;
var depth3Limit = 10;
var depth4Limit = 5;
var depth5Limit = 3;
var tocEntryMinimum = 1;
.toc{display: none;}
概要
loadTOCNode(1, 'summary');
给定字符串表达式, Val 函数返回字符串中包含数。 但是, 如果它遇到不是数字或一部分数字, 字符它忽略其余的字符串。 例如, Val("2") 返回数值 2, 但 Val("2+2") 还返回数值 2, 并 Val("(2+2)") 返回数 0。
本文介绍如何获得实际值的数值表达式通过 Excel 对象模型中使用现有功能存储当作 String。
回到顶端
更多信息
loadTOCNode(1, 'moreinformation');
您可能希望使用户得以键入文本框中自己数值表达式, 然后评估它在某些情况, 在其他情况, 可能需要读取 ASCII 文件包含一系列数值表达式并再产生其他 ASCII 文件包含这些表达式的结果。 如果这是唯一用途的 VisualBasic 应用程序, 它最可能适于, 速度和效率, 写入分析器。 但是, 对于简单和快速解决方案, 您可使用 OLE 自动化和 Excel 对象库来完成这些任务。
回到顶端
分步......