一、程序介绍:能够将化学里 方程式或者化学式 中的数字、+、-智能识别为上下标,目前(测试阶段)本工具能够准确转化绝大多数的化学方程式、离子方程式、化合物、简单离子、复杂离子等中的上下标,可以大大减少化学教师手动输入上下标的麻烦。本工具完全开源,欢迎使用、复制、改装、传播,但在传播过程中请注明原作者:2laoshi(youxi01),另外,禁止将本工具用于商业用途!
二、注意事项:使用本工具不能保证方程式中所有的上下标都能够转化正确,如果你在使用过程发现有错误,请在本文下边留言告知,我会及时的对程序中的正则算法进行更新,谢谢!
三、程序编写:vbs+hta
四、运行界面:
转化前:
转化后:
保存:
五、作者:2laoshi(youxi01),个人博客:http://www.2laoshi.cn
六、程序下载:智能转化上下标工具
源代码:- <!--////////程序说明/////////====
- Intro 自动生成上下标
- FileName 自动
- Author 2laoshi(youxi01)
- Version Beta1.0
- Web http://www.2laoshi.cn
- MadeTime 2009-3-26~
- <!--//////////设置hta格式////////////-->
- <HTA:APPLICATION
- SCROLL="no"
- MaximizeButton="no"
- MinimizeButton="no"
- INNERBORDER="no"
- SHOWINTASKBAR="yes"
- SINGLEINSTANCE="yes"
- BORDER="thin"
- />
- <style type="text/css">
- a:link {color: blue}
- a:visited {color: blue}
- body {background: #EEEEEE}
- button {
- height:23px;
- padding:2px 0 2px 0;
- margin:0px 2px 0 0;
- }
- .footer {
- text-align:center;
- margin:4px;
- font-size:15px;
- }
- #MyEditor {
- height:200px;
- width:388px;
- border:1px solid buttonshadow;
- }
- #ShowTip {
- background-color:#006644;
- color:Yellow;
- width=200px;
- height:30px;
- line-height:30px;
- font-size:12px;
- text-align:center;
- position:absolute;
- left:100px;
- top:80px;
- border:1px solid red;
- filter:Alpha(opacity=0);
- }
- #MyLink {
- width=99%;
- height:20px;
- font-size:12px;
- text-align:center;
- }
- </style>
- <script language="vbscript">
- width=400
- height=290
- window.resizeTo width,height
- ileft=(window.screen.width-width)/2
- itop=(window.screen.height-height)/2
- window.moveTo ileft,itop
- Sub CopyText()
- MyEditor.document.execCommand("selectAll")
- MyEditor.document.execCommand("Copy")
- ShowTip.filters.alpha.opacity=100
- ShowTipinfo()
- MyEditor.document.selection.empty()
- End Sub
-
- Function RegExpRep(strng, patrn,patrn2)
- Set regEx =New RegExp ' 建立正则表达式。
- regEx.IgnoreCase =True' 设置是否区分字符大小写。
- regEx.Global =True' 设置全局可用性。
- regEx.Pattern=patrn
- RegExpRep=regEx.replace(strng,patrn2)
- set regEx=nothing
- End Function
- Sub GOGO()
- str=MyEditor.document.body.innertext&vbcrlf
- '处理特殊离子(带一个电荷的离子团,如:高锰酸根离子)
- ostr="MnO4-,ALO2-,NH4+,NO3-,HCO3-,HSO3-"
- ostr=split(ostr,",")
- for i=0 to Ubound(ostr)
- Tr=right(ostr(i),2)
- Tl=left(ostr(i),len(ostr(i))-2)
- Tr1=left(Tr,1)
- Tr2=Right(Tr,1)
- str=RegExpRep(str,ostr(i),Tl&"<sub>"&Tr1&"</sub><sup>"&Tr2&"</sup>")
- next
-
- '处理上标;
- str=RegExpRep(str,"(\d?[\+-])\s*([\+=\r\n、\.\u4e00-\u9fa5])","<sup>$1</sup> $2")
- '处理下标;
- str=RegExpRep(str,"([a-zA-Z))])([1-5])","$1<sub>$2</sub>")
- str=RegExpRep(str,"[\r\n]","<p>")
- str=replace(str,"<sup>+</sup><sup>+</sup>","<sup>+</sup>")
- MyEditor.document.body.innerhtml=str
- End Sub
- Function ShowTipinfo()
- if ShowTip.filters.alpha.opacity>0 then
- ShowTip.filters.alpha.opacity=ShowTip.filters.alpha.opacity-1
- settimeout "ShowTipinfo",50
- end if
- End Function
- </script>
- <body topmargin="2" leftmargin="2" oncontextmenu=self.event.returnvalue=false>
- <title>智能转化上下标-爱老师网 www.2laoshi.cn</title>
- <iframe id="MyEditor" onload="initeditor()"></iframe><br />
- <div id="ShowTip">已复制,请直接粘贴到word文档中</div>
- <p class=footer>
- <button onclick=GOGO><font color=red>生成上下标</font></button>
- <button onclick=CopyText>复制到剪贴板</button>
- <button onclick=self.close>退出</button></p>
- <div ID="Mylink"><a href="http://www.2laoshi.cn">欢迎光临爱老师网</a>¤<a href="http://www.2laoshi.cn/post/176.html">报告错误</a></div>
- <script language="javascript">
- function initeditor()
- {
- oStyle=MyEditor.document.createStyleSheet();
- oStyle.addRule("P","font-size:14px")
- oStyle.addRule("P","padding:0px")
- oStyle.addRule("P","margin:0px")
- oStyle.addRule("sub","font-family:Times new roman")
- oStyle.addRule("sup","font-family:Times new roman")
- MyEditor.document.designMode="on";
- }
- </script>
复制代码
|