﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-轮上飞-随笔分类-&lt;b&gt;WML&lt;/b&gt;</title><link>http://www.blogjava.net/zhyiwww/category/12771.html</link><description>zhyiwww</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 11:14:10 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 11:14:10 GMT</pubDate><ttl>60</ttl><item><title>第五章 WMLScript脚本程序设计（上）（转载）</title><link>http://www.blogjava.net/zhyiwww/archive/2006/07/05/56786.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Wed, 05 Jul 2006 07:52:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2006/07/05/56786.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/56786.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2006/07/05/56786.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/56786.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/56786.html</trackback:ping><description><![CDATA[
		<div align="center">
				<h1 class="aTitle">第五章 WMLScript脚本程序设计（上）</h1>
		</div>
		<table width="97%" align="center">
				<tbody>
						<tr>
								<td width="120">[日期：<span id="TimeLabel">2004-11-23</span>]</td>
								<td align="middle">来源：<span id="SourceLabel"><a href="http://www8.ccidnet.com/school/web/" target="_blank">赛迪网</a></span>  作者：<span id="AuthorLabel"></span></td>
								<td align="right" width="100">[字体：<a href="javascript:ContentSize(16)">大</a><a href="javascript:ContentSize(14)">中</a><a href="javascript:ContentSize(12)">小</a>] </td>
						</tr>
				</tbody>
		</table>
		<div class="content" id="BodyLabel" style="PADDING-RIGHT: 10px; DISPLAY: block; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px">作为一种编辑语言，WMLScript提供了强大的函数、语句和库功能，以及外部编辑、访问控制等支持，同时对程序运行中可能产生的错误给出了检测手段和具体的解决办法。这些内容属于WMLScript的脚本程序设计知识和进一步的编程规定，我们本章就对此进行详细介绍。<br /><br /><b>5.1 语句</b><br /><br />前面我们学习了变量、操作符和表达式，但仅由这些内容并不能完成某个完整的功能，因为他们不能形成完整的操作或处理程序。变量就如同与严重的单词，表达式如语言中的词组，他们都不能表达一个完整的意思；只有语句，是语言中完整的句子，能够表达完整的意思并实现某个完整的功能。WML Script提供了丰富的语句功能，使用这些语句我们可以在WML的卡片中建立交互功能和其他需要的复杂功能。<br /><br />在WML Script中，每条语句的后面都需要以一个分号（；）结尾。为了养成严谨的编程风格，建议大家编写脚本时，语句后一定要加上分号（；），这也有助于我们形成一种良好的编程习惯。<br /><br />WML Script语句的书写和排列格式比较自由。我们可以在同一程序行中连续写上多个语句，也可以把同一语句分成多行排列。WML Script将根据分号（；）来确定语句的具体内容。<br /><br />WML Script的语句主要包括两类。第一类是基本语句，如空语句、表达式语句、块语句、变量语句和return语句等；第二类是条件语句，如if语句；第三类是循环语句，如while语句、for语句、break语句和continue语句等。下面我们分别讲解这些语句的语法、功能和使用方法。<br /><br />5.1.1 基本语句<br /><br />WML Script基本语句主要用于程序格式控制和变量声明，其中有些语句我们已经不太陌生了。<br /><br />空语句<br /><br />空语句用于定义一个空的程序行，它没有任何标识符和操作符，也不执行任何操作。它只是以分号（；）结束。其语法格式为：<br /><br />；<br /><br />显然，空语句是一种十分特殊的语句。由是我们为了让程序具有更好的可读性，通常在程序中的适当地方加上几个空语句，以起到分隔或突出的作用。例如，下面的几行程序中就含有一个空语句：<br /><br />str="Hello";<br /><br />val=25;<br /><br />;<br /><br />MyVal=val*val+5;<br /><br />alert("Hi,Hi!!!");<br /><br />再如，while语句用于判断一个条件并在条件满足的时候执行相应的任务，但如果希望条件满足的时候什么也不作，那么就可以给它配上一个空语句，使之条件满足的执行空操作：<br /><br />while（！poll(device)）;<br /><br />这实际上是while语句和空语句组成的两条语句。其中的分号（；）在这里就代表了空语句。这两条语句的作用是在poll()函数为真（）之前一直等待。<br /><br />表达式语句<br /><br />表达式语句用于向变量赋值，或进行数学计算，或进行函数调用。表达式语句也是我们最常用的一种语句，语法格式为：<br /><br />表达式；<br /><br />下面几行程序都是合法的表达式语句：<br /><br /><table cellspacing="0" cellpadding="0" width="580" border="0"><tbody><tr><td class="code" bgcolor="#e6e6e6"><strong>str="Hey"+yourName;<br />val3=prevVal+4<br />counter++;<br />myValue1=counter,myValue2=val3<br />alert("Watch out!");<br />retVal=16*Lang.max(val3,counter);</strong></td></tr></tbody></table><br /><br />块语句<br /><br />块语句使用两个花括号（{ }）包含一个语句集，形成一个语句体。WML Script的许多语句都需要使用块语句来实现语句体，快语句的语法格式为：<br /><br />{<br /><br />语句列表；<br /><br />}<br />下面的简单程序就是使用块语句的例子：<br /><br /><br />}<br />vari=0;<br />var x=Lang.abs(b);<br />popUp("Remember!");<br /><br />}<br /><br />变量语句<br /><br />变量语句用于生命变量并可进行变量的初始化赋值。如果用户不赋值，那么WML Script会自动将变量语句生命的变量赋予一个空字符串（""）。基本的语法格式为：<br /><br />var 变量名;<br /><br />如果像一次生命多个变量，则相邻变量名之间使用逗号（，）间隔，其语法格式为：<br /><br />VAR 变量名1，变量名2......，变量名n;<br /><br />如果想在生命变量时同时初始化变量，则可按如下语法格式书写：<br /><br />var 变量名=初始化<br /><br />为便于大家更好的掌握变量语句，我们给出一个多出使用该语句的程序： 
<table cellspacing="0" cellpadding="0" width="580" border="0"><tbody><tr><td class="code" bgcolor="#e6e6e6"><strong><br /><br />function count(stu){<br /><br />var result=0; //声明变量的同时初始化变量<br /><br />while(str!=""){<br /><br />var ind=0; //每次循环都初始化一次<br /><br />// 为退出循环，本块语句内应当提供修改变量str值的语句<br /><br />}；<br /><br />return result<br /><br />};<br /><br />function example(param){<br /><br />var a=0;<br /><br />if(param&gt;a){<br /><br />var b=a+1; //声明b变量的同时使用a变量初始化b变量<br />}else{<br /><br />var b=a+2； //声明c变量的同时使用a变量初始化c变量<br />};<br /><br />return a; //返回a变量的值<br /><br />}； </strong></td></tr></tbody></table><br /><br />注释语句<br /><br />严格来讲，注释语句在WML Script中还不算是真正的语句，它只是一种前指向的规定。不过它也有严格的语法和标注方法，所以我们这里还是像其他编程语言处理的一样，把WML Script注释方法以语句的形式介绍一下。<br /><br />注释在程序执行的时候没有任何作用，但是可以用于对程序进行解释，则增强程序的可读性。为了形成良好的编程风格，我们应该养成书写注释的良好习惯，注释有两种表达方式：<br /><br />（1）通过双斜线注释一行，这样在双斜先后的字符将成为注释而不被执行。该注释行可以单独一行书写，也可以放在其他语句的后面。<br /><br />例如，可以进行如下所示的注释：<br /><br />//变量j用于小数每月的天数<br /><br />j=0； //我们这里将j赋值为0<br /><br />（2）通过符号“/*”和“*/”来规定注释语句，这种注释方式可以进行多行注释，符号“/*”和“*/”之间的内容就是注释语句。例如，可以进行如下所示的多行注释：<br /><br />/*我们定义了两个变量：i和j。其中：<br /><br />i用于描述每年中的月数，<br /><br />而j用于描述每月的天数*/<br /><br />j=0； /*我们这里将j赋值为0*/<br /><br />return语句<br /><br />return语句主要用在函数体中，在函数结束前，可以通过return语句，把函数处理的结果返回给调用函数的语句。它的语法格式如下：<br /><br />return表达式；<br /><br />下面的函数给出了应用return语句的例子： 
<table cellspacing="0" cellpadding="0" width="580" border="0"><tbody><tr><td class="code" bgcolor="#e6e6e6"><strong><br /><br />function square(x){<br /><br />if(!(Lang.isFloat(x)))return invalid;<br /><br />return x*x<br /><br />}; </strong></td></tr></tbody></table><br /><br />5.1.2 条件语句<br /><br />在条件语句中，当满足某种条件时 ，就会执行指定的一些代码，而在代码组另外某种条件时，则会执行另外一些代码。WML Script的条件语句就是if...else语句，它的一般表达相识如下：<br /><br /><table cellspacing="0" cellpadding="0" width="580" border="0"><tbody><tr><td class="code" bgcolor="#e6e6e6"><strong>if(条件){<br /><br />代码块1<br /><br />}<br /><br />else{<br /><br />代码块2<br /><br />} </strong></td></tr></tbody></table><br /><br />这样，当条件满足时，就执行代码块1；如果条件不满足则执行代码块2。代码块和代码块2中如果只有一个条语句，那么，花括号（{ }）就可以省略；而如果有多条语句，则必须实用花括号将代码块包括在其中。在if...else语句种，其中的else部分是可选的，也就是说，我们可以使用如下的表达形式：<br /><br />if(条件){<br /><br />代码块<br /><br />}<br /><br />这样，当条件满足时，就执行代码块，如果条件不满足则什么也不做。<br /><br />例如，如果我们需要对一个学生的成绩进行判定，如果大于等于60分，那么我们就认为该学生成绩合格了，反之则认为不合格，同时一并将状态记录到变量status种，相应的WMLScript语句如下所示：<br /><br />if(score&gt;=60) status="pass";<br /><br />else status="fail";<br /><br />再如，我们可以通过对天气是否阳光普照（sunShines）的情况进行判断，来给变量myDay赋值，并累计好天气（goodDays）的天数。程序如下：<br /><br /><table cellspacing="0" cellpadding="0" width="580" border="0"><tbody><tr><td class="code" bgcolor="#e6e6e6"><strong>if(sunShines) {<br />myDay="Good";<br /><br />goodDays++;<br /><br />}else<br /><br />myDays="Oh well..."; </strong></td></tr></tbody></table><br /><br />5.1.3 循环语句<br /><br />使用循环语句可以反复执行某个代码块，直到循环结束条件满足后才停止执行。WML Script中有两种循环语句：for语句和while语句,同时还有两终于循环密切相关的操作语言：break语句和continue语句。<br /><br />for语句<br /><br />for语句可以创建一个带条件的循环，它还有3个可选的条件表达式，用于控制循环。这3个条件表达式放在一个括号里，并以分号（；）间隔。for语句的一般语法形式如下：<br /><br />for（初始表达式；循环条件；递增表达式）{<br /><br />代码块<br /><br />}<br /><br /><br />for语句的执行主要包括以下几个步骤:<br /><br />（1）执行初始表达式。在一般情况下，初始表达式完成的功能是在循环中对循环计数器赋初值。所以在这种意义上，初始表达式也可以采用“var 变量声明列表；”的形式来定义。<br /><br />（2）判断循环条件。如果循环条件为真（ture），则执行循环体中的语句，即至步骤（3）；否则，循环条件为假（false）或者invalid,就结束循环；<br /><br />（3）执行循环代码。然后，在执行递增表达式。一般情况下，我们在递增表达式中对循环计数器进行处理，最后在返回步骤2执行。<br /><br />例如，下面的for语句建立了一个循环。初始表达式为定义变量index并付初值0，循环条件为index＜100，递增表达式为每循环一次index增加1。当index增加到100时候，循环结束。程序如下： 
<table cellspacing="0" cellpadding="0" width="580" border="0"><tbody><tr><td class="code" bgcolor="#e6e6e6"><strong><br /><br />for(var index=0;index＜100;index++){<br /><br />count+=index;<br /><br />myFunc(count);<br /><br />}; </strong></td></tr></tbody></table><br /><br />while 语句<br /><br />while语句也可常见一个循环，它的一般语法表达式如下：<br /><br /><table cellspacing="0" cellpadding="0" width="580" border="0"><tbody><tr><td class="code" bgcolor="#e6e6e6"><strong>while（循环条件）{<br /><br />代码块<br /><br />} </strong></td></tr></tbody></table><br /><br />while语句的执行过程包括以下几个步骤：<br /><br />(1)判断循环条件是否为真。如果循环条件为真，则执行循环；如果为假或为invalid，则跳出循环。<br /><br />（2）执行循环中的代码块，然后返回步骤（1）<br /><br />下面的程序就是使用while语句的简单例子：<br /><br /><table cellspacing="0" cellpadding="0" width="580" border="0"><tbody><tr><td class="code" bgcolor="#e6e6e6"><strong>var counter=0<br /><br />var total=0<br /><br />while(counter&lt;3){<br /><br />counter++;<br /><br />total+=c;<br /><br />}; </strong></td></tr></tbody></table><br /><br />其中建立的循环仅当变量counter的值小于3时执行，否则就结束循环。<br /><br />显然，如果循环条件不能为假或为invalid,那么while循环就会无休止的反复执行下去。因此，我们在代码块中一定要有能够改变循环条件的变量，否则，就很有可能会陷入死循环而不能终止程序，下面就是一个死循环的例子：<br /><br /><table cellspacing="0" cellpadding="0" width="580" border="0"><tbody><tr><td class="code" bgcolor="#e6e6e6"><strong>var x=1;<br /><br />var y=0;<br /><br />while(x&lt;=1){<br /><br />y=x+1;<br /><br />} </strong></td></tr></tbody></table><br /><br />这个程序中，因为变量x的值在循环中不能发生变化，所以循环条件在判断的时候永远为真，所以成为了死循环。因此，对于while语句我们往往使用如下所示的语法形式：<br /><br />初始表达式<br /><br />while（循环条件）{<br /><br />代码块<br /><br />递增表达式<br /><br />}<br /><br />这种情况下，while语句的功能和for语句的功能就一样了，不过用while语句编写的程序可读性更强一些。所以我们也可以采用while语句来完成index增加到100的循环。<br /><br />程序如下:<br /><br /><table cellspacing="0" cellpadding="0" width="580" border="0"><tbody><tr><td class="code" bgcolor="#e6e6e6"><strong>var index=0<br /><br />while (index&lt;100){<br /><br />counter+=index;<br /><br />myFunc(count);<br /><br />index++;<br /><br />}; </strong></td></tr></tbody></table><br /><br />break语句<br /><br />为了更好的解决死循环问题，WML Script项大多数编成语言一样提供了break语句。break语句可以使程序执行跳出循环。不论是for语句还是while语句，只要在循环中使用了break语句，那么程序执行到break语句后就立即跳出当前循环，然后继续执行下去。<br /><br />break语句的予发行时如下：<br /><br />break;<br /><br />例如，在下面的函数中我们使用了break语句，它是当index=3时跳出循环。如果不是用该语句，函数中的while循环直到index=6时才可以结束。程序如下：<br /><br /><table cellspacing="0" cellpadding="0" width="580" border="0"><tbody><tr><td class="code" bgcolor="#e6e6e6"><strong>funcition testBreak(x){<br /><br />var index=0;<br /><br />while(index&lt;6){<br /><br />if(index==3)break;<br /><br />index++<br /><br />}；<br /><br />retrun index*x;<br /><br />；</strong></td></tr></tbody></table><br /><br />continue语句<br /><br />continue语句的功能和break语句的功能看起来有些类似，但实际上却不一样。循环执行时遇到break语句通常是跳出当前循环，但循环执行到continue语句并不跳出当前循环，而是不执行循环中在continue语句后面的代码块，直接结束循环的本轮运行，然后马上开始下一轮循环的运行。<br /><br />在while语句的循环中，遇到continue语句后，程序会直接判断循环条件从而开始下一轮循环。在for语句的循环中，遇到continue语句后程序会直接执行递增表达式，然后判断循环条件从而开始下一轮循环。<br /><br />例如，我们想利用for循环求1到10之间偶数的和，其WML Script语句如下：<br /><br /><table cellspacing="0" cellpadding="0" width="580" border="0"><tbody><tr><td class="code" bgcolor="#e6e6e6"><strong>var sum=0;<br /><br />for (var j=1;j&lt;=10;j++){<br /><br />if(j%2!=0)<br /><br />continue;<br /><br />sun+j;<br /><br />};</strong></td></tr></tbody></table><br /><br />在这个例子中，在j%2!=0的情况下，也就是j为奇数的情况下，程序执行continue语句，这时，并没有如同break语句一样跳出循环的运行，而是不执行循环中后面的语句而直接执行递增表达式开始下一轮循环的执行，这样，就可以不将其数j的之类即如总和中。<br /><br />再如，我们想利用while循环求0到4之间出3以外几个数的和，则可以使用continue语句进行控制。程序如下；<br /><br /><table cellspacing="0" cellpadding="0" width="580" border="0"><tbody><tr><td class="code" bgcolor="#e6e6e6"><strong>var index=0；<br /><br />var count=0；<br /><br />while (index&lt;5){<br /><br />index++;<br /><br />if(index==3)<br /><br />continue;<br /><br />cont+=index;<br /><br />};</strong></td></tr></tbody></table><br /><br />这以程序中，当index等于3时，“index==3”为真,所以执行continue语句，不再把此时index的值加大count中，而是开始下一轮的循环。</div>
<img src ="http://www.blogjava.net/zhyiwww/aggbug/56786.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2006-07-05 15:52 <a href="http://www.blogjava.net/zhyiwww/archive/2006/07/05/56786.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第六章 WML Script标准函数库（上）(转载)</title><link>http://www.blogjava.net/zhyiwww/archive/2006/07/05/56785.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Wed, 05 Jul 2006 07:50:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2006/07/05/56785.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/56785.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2006/07/05/56785.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/56785.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/56785.html</trackback:ping><description><![CDATA[
		<div align="center">
				<h1 class="aTitle">第六章 WML Script标准函数库（上）</h1>
		</div>
		<table width="97%" align="center">
				<tbody>
						<tr>
								<td width="120">[日期：<span id="TimeLabel">2004-11-23</span>]</td>
								<td align="middle">来源：<span id="SourceLabel"><a href="http://www8.ccidnet.com/school/web/" target="_blank">赛迪网</a></span>  作者：<span id="AuthorLabel"></span></td>
								<td align="right" width="100">[字体：<a href="javascript:ContentSize(16)">大</a><a href="javascript:ContentSize(14)">中</a><a href="javascript:ContentSize(12)">小</a>] </td>
						</tr>
				</tbody>
		</table>
		<div class="content" id="BodyLabel" style="PADDING-RIGHT: 10px; DISPLAY: block; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px">这节会讨论标准的WML Script函数库。<br /><br /><b>6.1 WML Script规则</b><br /><br />这些标准函数库提供一个扩展WML Script语言的机制，这些特定的函数库必须遵循WML Script的规则。<br /><br />支持的数据格式<br /><br />下面的WML Script格式使用于程序的定义之中，这样能记录程序参数与回转值的格式。<br /><br />Boolean<br />Integer<br />Float<br />String<br />Invalid<br /><br />除此之外，如果整数与浮点数参数值格式都能接受的话，则能使用number来记录参数格式，如果使用的格式是所支持的格式，则能用any来记录。<br /><br />数据格式转换<br /><br />函数库程序发生错误的处理方式和WML Script语言一样。<br /><br />invalid程序参数会产生invalid的回传值。<br /><br />程序的参数无法转成所需要使用参数格式，则会产生invalid的回传值。<br /><br />与程序相关的错误得出回传一个适当的错误码，至于这个值就要看每个程序如何定义。<br /><br /><b>6.2 Lang函数库</b><br /><br />名称：Lang<br /><br />说明：这个函数库所含的程序同WML Script语言的核心有很密切的关系。<br /><br />abs<br /><br />程序：abs（value）<br />说明：回传给予数的绝对值。<br />如果给予的数是整数，则回传整数。<br />如果给予的数是浮点数，则回传浮点数。<br />参数：value=数字。<br />回传值：数字或invalid。<br />例外状况：var a =-3;<br />var b =Lang.abs(a)；//b=3<br /><br />min <br /><br /><br />范例：var a = -3<br />var b = Lang.abs(a); <br />var c = Lang.min(a.b);<br />var d = Lang.min(45、76.3);//d=45(ingteger)<br />var e = Lang.min(45、76.3);//e=45(ingteger)<br /><br />max<br /><br />程序：max（value1,value2）<br />说明：回传值给予的两个数之间的较大值，回传的值于格式同所选数值的值与格式相同，其选取的方式如下：<br />WML Script运算符数据格式的整数与浮点数转换法则可用来确认数据格式，以便执行比较的动作。<br />参数：value1 =数字<br />value2 =数字<br />回传值：数字或invalid<br />例外状况：无<br />范例：var a =-3;<br />var b =Lang.abs(a)；//b=3<br />var c = Lang.min(a.b);<br />var d = Lang.min(45、76.3);//d=45(ingteger)<br />var e = Lang.min(45、76.3);//e=45(float)<br /><br />parseInt<br /><br />程序：parseInt(value)<br />说明：回传由字符串value所定义的整数值，合法的整数语法由WML Script数值字符串文法或是近值整数是字所界定，下列为额外的解析法则：<br />第一个字符不是由+、-或十进制数字当开头的话，解译结束。<br />结果：解析过的字符串回转换整数值。<br />范例：var i =Lang.parseInt("1234"); // i=1234<br />var j =Lang.parseInt("100 m/s"); // j=100<br /><br />parseFloat<br /><br />程序：parseFloat(value)<br />说明：回传由字符串value所定义的浮点数值，合法的浮点数语法由WML Script数值字符串文法或是近值整数实字所界定，下列为额外的解析法则：<br />第一个字符无法解析成浮点数表达式，解析结束。<br />结束：解析过的字符串回转换成浮点数。<br />参数：value=字符串<br />回传值：浮点数或invalid<br />例外状况：解析错误则传回invalid<br />范例：var a =Lang.parseFloat("123.7 Hz"); // a=123.7<br />var b =Lang.parseFloat("7.34e2 Hz"); // b=7.34e2<br />var c =Lang.parseFloat("70.0e-2 F"); // c=70.0e-2<br />var d =Lang.parseFloat("-1.c"); // d=0.1<br />var e =Lang.parseFloat("100"); // e=100.0<br />var f =Lang.parseFloat("Number:5.5"); // f=invalid<br />var g =Lang.parseFloat("7.3e meters"); // g=invalid<br />var h =Lang.parseFloat("7.3e- m/s"); // h=invalid<br /><br />isInt<br /><br />程序：isInt(value)<br />说明：如果各预的值value能使用parseInt(value)转成整数则回传布尔值ture，否则传回false。<br />参数：value=任意值<br />回传值：布尔值或invalid<br />例外状况：无<br />范例：var a=Lang.inInt("-123"); //ture<br />var a =Lang.minInt("123.33"); //ture<br />var a =Lang.minInt("string"); //false<br />var a =Lang.minInt("#123"); //false<br />var a =Lang.minInt("invalid"); //invalid<br /><br />isFloat<br /><br />程序：isFloat(value)<br />说明：如果各预的值value能使用parseInt(value)转成整数则回传布尔值ture，否则传回false。<br />参数：value=任意值<br />回传值：布尔值或invalid<br />例外状况：无<br />范例：var a=Lang.inInt("-123"); //ture<br />var a =Lang.minInt("123.33"); //ture<br />var a =Lang.minInt("string"); //false<br />var a =Lang.minInt("#123"); //false<br />var a =Lang.minInt("invalid"); //invalid<br /><br />maxInt<br /><br />程序：maxInt()<br />说明：传回最大的整数值。<br />参数：无<br />回传值：整数2147483647<br />例外状况：无<br />范例：var a =Lang.minInt（）;<br /><br />minInt<br /><br />程序：minInt()<br />说明：传回最小的整数值<br />参数：无<br />回传值：整数-2147483647<br />例外状况：无<br />范例：var a =Lang.minInt();<br /><br />float<br /><br />程序：float()<br />说明：如果有支持浮点数的话传回ture,没有的话传回false。<br />参数：无<br />回传值：布尔值<br />例外状况：无<br />范例：var floatsSupported = Lang.float();<br /><br />exit<br /><br />程序：exit(value)<br />说明：结束WML Script位码的解译然后回到调用WML Script解译器者的控制，并回传指定值value,你可以使用这个程序来执行由一般程序的结束，而且WML Script位码的执行必须停止。<br />参数：valre=任意值<br />回传值：无，这个程序结束解译<br />例外状况：无<br />范例：Lang.exit("Value:" + myVal);//Returns a string<br />Lang,exit(invalid);// Returns invalid<br /><br />abort<br /><br />程序：abort(errorDescription)<br />说明：中止WML Script位码的解译然后回到调用WML Script解译器者的控制，并回传 errorDescription,你能使用这个程序执行不正常的中止，调用程序者检测到有严重错误，WML Script的执行并须中断。<br />如果errorDescription的格式为invalid,字符串invalid用代替errorDescription的使用。<br />参数：errorDescription =字符串<br />回传值：无，这个程序结束解译<br />例外状况：无<br />范例：Lang.abort("Error:" + errVal); // Error value string<br /><br />radndom<br /><br />程序：random(value)<br />说明：回传一个正数的整数值，也就是说要大于或等于零，但必须要小于给定值value,回传值是由近是正常分布所随机选取的值。<br />参数：value=整数<br />回传值：整数或invalid<br />例外状况：如果value等于0，则程序回传0<br />如果value小于0，则程序回传invalid<br />范例：var a =10;<br />var b =Lang.random(5.1)*a；//b=0..50<br />var c = Lang.random("string"); // c=invalid<br /><br />reed<br /><br />程序：seed(alue)<br />说明：初始化需随机数字顺序并回传一个空字符串<br />如果value为0或正整数，给予的value则用来初始化，反之则使用随机初始化的值。<br />如果value为浮点数，则会先使用Float.int()来计算确切的整数值。<br />参数：value=整数<br />回传值：字符串或invalid]<br />例外状况：无<br />范例：var a =Lang.reed(123);// a=""<br />var b =Lang.random(20); // b=0..20<br />var c = Lang.seed("seed"); // c=invalid (random seed //left unchanged)<br /><br />characterSet<br /><br />程序：characterSet()<br />说明：回传WML Script解译器所支持的字集，回传只是个整数用来记录由IANA所设定的MIB Enum值，这个只能表示所有的字集。<br />参数：无<br />回传值：整数<br />例外状况：无<br />范例：Var charset = Lang.characterSet(); //charset = 4 for latinl<br /><br /><b>6.3 Float函数库</b><br /><br />名称：Float<br />说明：这个函数库包含了典型与常用的浮点数算术程序。<br /><br />int<br /><br />程序：int(value)<br />说明：回传给予值的整数部分。<br />参数：value=数字<br />回传值：整数或invalid<br />例外状况：无<br />范例：var a =3.14;<br />var b =Float.in(a); //b=3<br />var c =Float.in(-2.8); //c=-2<br /><br />floor<br /><br />程序：floor(value)<br />说明：回传整数值，这个只要最接近给予值但不能大于它。<br />如果value已经是个整数，其结果就是这个值本身。<br />参数：value=数字<br />回传值：整数或invalid<br />例外状况：无<br />范例：var a =3.14;<br />var b =Float.in(a); //b=3<br />var c =Float.in(-2.8); //c=-3<br /><br />ceil<br /><br />程序：ceil(value)<br />说明：回传一个只要最接近给予值但不能小于它的整数值。<br />如果value已经是个整数，其结果就是这个值本身。<br />参数：value=数字<br />回传值：整数或invalid<br />例外状况：无<br />范例：var a =3.14;<br />var b =Float.in(a); //b=4<br />var c =Float.in(-2.8); //c=-2<br /><br />pow<br /><br />程序：pow(x,y)<br />说明：回传x的y次方值。<br />如果x是负数，则y必须为正数。<br />参数：x=数字<br />　　　y=数字<br />回传值：浮点数或invlid<br />例外状况：如果x= =0而且 y&lt;0,则回传invalid<br />如果x&lt;0而且y不是个整数，则回传invalid<br />范例：var a =3<br />var b =Float.pow(a,2); //b=9<br /><br />round<br /><br />程序：round(value)<br />说明：传回最接近给予值的整数<br />若两个整数值跟value接近的程序相等，则选择比较大的数。<br />若value已经是个正数，其结果就是value本身。<br />参数：value=数字<br />回传值：整数或invalid<br />例外状况：无<br />范例：var a=Float.round(3.5)； // a=4<br />var b=Float.round(-3.5); //b=-3<br />var c=Float.round(0.5)； // c=1<br />var d=Float.round(-0.5); //d=0<br /><br />squt<br /><br />程序：sqrt(value)<br />说明：传回给予值value的平方根近似值。<br />参数：value=浮点数<br />回传值：浮点数或invalid<br />例外状况：如果value负数，则回传invlid<br />范例：var a=4;<br />var b=Float.squt(a); //b=2.0<br />var c=Float.squt(5); //c=2.2360679775<br /><br />maxFloat<br /><br />程序：maxFloat（）<br />说明：传回IEEE 754所支持的但准浮点数格式中最大的浮点数值。<br />参数：无<br />回传值：浮点数3.40282347E+38<br />例外状况:无<br />范例：var a=Float.maxFloat();<br /><br />minFloat<br /><br />程序：minFloat（）<br />说明：传回IEEE 754所支持的但准浮点数格式中最小的浮点数值。<br />参数：无<br />回传值：浮点数1.17549435E-38<br />例外状况：无<br />范例：var a=Float.minFloat();<br /><br /><b>6.4 string函数库</b><br /><br />名称：字符串<br />说明：这个函数库包含了字符串程序的集合，一个字符串可以是字符数组，每个字符都有个索引，字符串的第一个字浮的索引为0,字符串的长度是字符在数组中的数目。<br /><br />你能使用一些特殊的分隔符号来界定不同的字符串，这样你就能存取这些有分隔符号予元素索引所界定出的元素，字符串中第一个元素的索引值为0，每个字符串分隔符号回分隔出两个元素，但字符是不能用来做分隔符号。<br /><br />一个空格的字符可能是下列字符其中之一：<br /><br />TAB:水平跳格定位（horizontal tabulation）<br />VT:垂直跳格定位(ertival tabulation)<br />FF:跳页（from feed）<br />SP:空格（space）<br />LF:跳行（line feed)<br />CR:归位（carriage return）<br /><br />length<br /><br />程序：length(string)<br />说明：传回给予字符串的长度（字符的数目）。<br />参数：string=字符串<br />回传值：整数或invalid<br />例外状况：无<br />范例：var a="ABC";<br />var b=string.length(a); //b=3<br />var c=string.length(""); //c=0<br />var d=string.length(342); //d=3<br /><br />is Empty<br /><br />程序：is Empty(string)<br />说明：如果字符串长度为零则传回布尔值true,反之传回false。<br />参数：string=字符串<br />回传值：布尔值或invalid<br />例外状况：无<br />范例：var a="Hello;<br />var b="";<br />var c=sting.isEmpty(a); //c=false<br />var c=sting.isEmpty(b); //d=ture <br />var c=sting.isEmpty(ture); //e=false <br /><br />charAt<br /><br />程序：charAt(sting.index)<br />说明：回传string中index值所指定的字符。<br />参数：string=字符数<br />index=数字（回传回index所指定的字符）<br />回传值：字符串或invalid<br />例外状况：如果index的值超过字符串的范围，则回传空字符串（""）<br />范例：var a="My name is Joe"<br />var b=sting.charAt(a,0); //b= "M"<br />var c=sting.charAt(a,100); //c= ""<br />var d=sting.charAt(34.0); //d="3"<br />var e=sting.charAt(a,"first"); //e=invalid<br /><br />subString<br /><br />程序：subString(string,startIndex,length)<br />说明：传回一个新的字符串来代替所给予的字符串， 这个新字符串给定的索引值开始，它的长度有所给予的length决定。<br />如果startIndex小于0，则会0来当作索引值。<br />如果length大于剩余字符的数目，则lenght会由剩余的字符数来代替。<br />如果startIndex予lenght是浮点数，则会先使用Float.int()来计算正确的整数值。<br />参数：string=字符数<br />startIndex=数字<br />lenght=数字<br />回传值：字符串或invalid<br />例外状况：如果startIndex大于最后的索引值，则回传会空字符串（""）<br />如果lenght&lt;=0，传会空字符串（""）<br />范例：var a="ABCD";<br />var b=String.subString(a,1,2); //b="BC"<br />var c=String.subString(a,2,5); //c="CD"<br />var d=String.subString(1234,0,2); //d="12"<br /><br />find<br /><br />程序：find(string,substring)<br />说明：传会所要寻找的字符串substring和原始字符串string相符的第一个字符的索引值。<br />如果没有相符，则传会整数值-1。<br />两个字符传如果是相等的话，是定义为不符合。<br />参数：string=字符串 <br />substring=字符串<br />回传值：整数或invalid<br />例外状况：无<br />范例：var a="abcde";<br />var b=String.find(a,"cd"); //b=2<br />var c=String.find(34.2,"de"); //c=-1<br />var d=String.find(a,"gz"); //d=-1<br />var e=String.find(34,"3"); //e=0<br /><br />replace<br /><br />程序：eplace(tring,oldSubString,newSubString)<br />说明：传会新字符串，这个新字符串是由和所给予字符串string相符的旧字符传oldSubString使用新字符串newSubString字符串加以代替。如果两字符串相等的话，定义为相符。<br />参数：string=字符串<br />oldSubString=字符串<br />newSubString=字符串<br />回传值：字符串或invalid<br />例外状况：无<br />范例：var a="Hello Joe.What is up Joe?";<br />var newName="Don";<br />var oldName="Joe";<br />var c=String.replace(a,oldName,newName); //c="Hello Don.What is up Don?"<br />var d=String.replace(a,oldName,newName); //c="Hello Don.What is up Don?"<br /><br />element<br /><br />程序：element(string,separator)<br />说明：回传分隔符号separator所分隔的字符串string的元素数目，空字符串（""）是有效的元素，这表示了这程序永远不会回传一个小于或等于0得值。<br />参数：string=字符串<br />separator=字符串<br />回传值：整数或invalid<br />例外状况：如果separator是个空字符串，则回传invalid<br />范例：var a="My name is Joe;Age 50";<br />var b=String.elements(a,"");//b=6<br />var c=String.elements(a,";");//c=3<br />var d=String.elements("",";");//d=1<br />var e=String.elements("a","");//e=1<br />var f=String.elements(";",";");//f=2<br />var g=String.elements(";;,;",";,");//g=4<br />separator=;<br /><br />elementAt<br /><br />程序：elementAt(string,index,separator)<br />说明：寻找字符串string的第index个元素，这些元素是由分隔符号separator所加以分开，并回传相对应的元素。<br />如果index值小于0，则回传第一个元素。<br />如果index值大于元素的数目，则回传最后一个元素。<br />如果字符串为空字符串，则回传空字符串。<br />如果index值为浮点数，则须先使用Float.int()来计算出正确的索引值。<br />参数：string=字符串<br />index=数字<br />separator=字符串<br />回传值：字符串或invalid<br />例外状况：如果separator是个空字符串，则回传invalid<br />范例：var a="Hello Joe.What is up Joe?";<br />var b=String.elementAt(a,0,""); //b="My"<br />var b=String.elementAt(a,14,";"); //c=" "<br />var b=String.elementAt(a,1,";"); //d="Age 50"<br /><br />removeAt<br /><br />程序：removeAt(string,index,separator)<br />说明：将符合索引值index的分隔号separator与元素有字符串string中移出，并回传这个新字符串。<br />如果index值小于0，则回传第一个元素。<br />如果index值大于元素的数目，则回传最后一个元素。<br />如果字符串为空字符串，则回传空字符串。<br />如果index值为浮点数，则须先使用Float.int()来计算出正确的索引值。<br />参数：string=字符串<br />element=字符串<br />index=数字<br />separator=字符串<br />回传值：字符串或invalid<br />例外状况：如果separator是个空字符串，则回传invalid<br />范例：var a=" A A;B C D";<br />var s= "";<br />var c=String.removeAt(a,1,s); //b="A B C D"<br />var d=String.removeAt(a,0,";"); //c=" B C D"<br />var e=String.removeAt(a,14,";"); //d="A A"<br /><br />replaceAt<br /><br />程序：replaceAT(string,index,separator)<br />说明：在特定的index中的元素，使用所给予的元素element来代替，并回传这个新字符串。<br />如果index值小于0，则回传第一个元素。<br />如果index值大于元素的数目，则回传最后一个元素。<br />如果字符串为空字符串，则回传空字符串。<br />如果index值为浮点数，则须先使用Float.int()来计算出正确的索引值。<br />参数：string=字符串<br />element=字符串<br />index=数字<br />separator=字符串<br />回传值：字符串或invalid<br />例外状况：如果separator是个空字符串，则回传invalid<br />范例：var a= "B C; E";<br />var s="";<br />var d=String.replaceAT(a,"A",0,s); //b="A C;E"<br />var e=String.replaceAT(a,"F",5,";"); //d="B C;F"<br /><br />InsertAt<br /><br />程序：insertAt(string,index,separator)<br />说明：将元素element与相对应的分隔符号separator插入与原始字符串string,在特定的element中的元素<br />如果index值小于0，则0会用来当索引值。<br />如果index值大于元素的数目，则元素element会附加上字符串string的为端。<br />如果字符串string为空字符串，则回传包含所给予元素element的新字符串。<br />如果index值为浮点数，则需先使用Float.int()来计算出正确的索引值。<br />参数：string=字符串<br />element=字符串<br />index=数字<br />separator=字符串<br />回传值：字符串或invalid <br />例外状况：如果separator是个空字符串，则回传invalid<br />范例：var a= "B C; E";<br />var s="";<br />var b=String.insertAt(a,"A",0,s); //b="A B C;E"<br />var c=String.insertAt(a,"X",3,s); //c="B C;E X"<br />var d=String.insertAt(a,"D",1,";"); //d="B C;D;E"<br />var e=String.insertAt(a,"F",5,";"); //e="B C;E;F"<br /><br />squeeze<br /><br />程序：squeeze(string)<br />说明：将字符串string中所有连续的空格减少为一个空格。<br />参数：stromg=字符串<br />回传值：字符串或invalid<br />例外状况：无<br />范例：var a="Hello";<br />var b="Bye Jon.See you!";<br />var c=String.squeeze(a); //c="Hello"<br />var d=String.squeeze(b); //d="Bye Jon.See you!"<br /><br />trim<br /><br />程序：trim(string)<br />说明：将字符串string中所有开头与连续的空格删除。<br />参数：string=字符串<br />回传值:字符串或invalid<br />例外状况：无<br />范例：var a="Hello";<br />var b="Bye Jon.See you!";<br />var c=String.squeeze(a); //c="Hello"<br />var d=String.squeeze(b); //d="Bye Jon.See you!"<br /><br />compare<br /><br />程序：compare(string,string2)<br />说明：这个程序的回传值会指出string1与string2在语汇上关系，这个关系是基于自然字集的字符码之间，其回传值如下：<br />如果string1小于string2，传会-1。<br />如果string1等于string2，传会-1。<br />如果string1大于string2，传会-1。<br />参数：string1=字符串<br />string2=字符串<br />回传值：整数或invalid<br />例外状况：无<br />范例：var a="Hello";<br />var b="Hello";<br />var c=String.compare(a,b); //c=0<br />var d=String.compare("Bye","Jon"); //d=-1<br />var e=String.compare("Jon","Bye"); //e=1<br /><br />toString<br /><br />程序：toString(value)<br />说明：回传一个能表示所给予的值value的字符串，这个程序跟WML Script的转换是一样的，除了invlaid值会回传一个"invalid"字符串。<br />参数：value=任意值<br />回传值：字符串<br />例外状况：无<br />范例：var a=string.toString(12); // a="12"<br />var a=string.toString(true); // b="true"<br /><br />format<br /><br />程序：format(format,value)<br />说明：将给予的值value转换成字符串，并依照所给予的格式format提供的格式化的字符串，这个格式字符串只能由一种特定格式，并能放置于字符串的任何地方，如果超过一种以上的格式需要使用，则能会使用最左边的格式，至于其他格式则有空字符串代替，这些格式如下：<br /><br />[width][.precision]type<br />width参数为非负的是近制整数，这个参数控制与显现字符的最小数目，如果输出的字数小于指定的宽度width，则会在字符串的左边加上空白，直到符合最小宽度的要求，width参数永远不会是值value被删减，如果输出的字数大于特定的宽度或并没指定宽度的话，value中所有的字符都会被显现。<br /><br />precision参数是个非负的十进制整数，这个引号之前必须限价上（.）的符号，其目的是用来设定输入值的精确度，这个值的解议会跟给予的格式有关：<br /><br />d 界定数字最小的显现数目，如果value中数字的数目超过precision的值，输入值会在其左边加上0，如果数字的数目超过precision值，value的值并不会被删减，预设的precision值为1，如果precision值设定为0，而且value页被转换成0，则结果将是一个空字符串。<br /><br />f 界定十进制小数后的数字数目，如果十进制的小数点出现了，在小数点之后至少要有一位数，这个值会被四舍五入到近似的数字数值，预设的precision为6，如果precision为0或小数点（.）后没有数字，则不会显现小数点，当value值的小数点后数字数目小于precision的值，字母0为被加入直到填满栏位（如：String.format("%2.3f",1.2)会是"1.200"）<br /><br />s 界定字符所要显现的最大数目，预设值是显现所有的字符，当width值大于precision值，width值是可以忽略的，跟width值不同的是，precision只可能会造成浮点数值的四舍五入或输入值的删减。<br /><br />type参数是唯一格式的参数，他出现在任何的格式栏为选项之后，type字符决定了所给予的value将会解译成整数，浮点数或字符串，支持的type参数如下:<br />d 整数：输入值的格式[-]dddd，这里的dddd是一个或以上的十进制数字。<br />f 浮点数：输入值的格式[-]dddd.dddd,这里的dddd是一个或以上的十进制数字，在小数点之前的数字数目和数字的大小有关，小数点之后的数字数目和精确度有关。<br />s 字符串：字符的显现跟精确度有关。<br />百分比字符（%）在格式字符串中能使用额外的百分比字符加以表示（%%）。<br />参数：format=字符串<br />value=任意值<br />回传值：字符串或invalid<br />例外状况；无效的格式会回传invalid值。<br />范例：var a=45;<br />var b=-45;<br />var c="now";<br />var d=1.2345678;<br />var e=String.format("e:%6d",a); //e="e:45"<br />var e=String.format("%6d",b); //f="-45"<br />var e=String.format("e:%6d",a); //g="0045"<br />var e=String.format("%6.4d",b); //h="-0045"<br />var e=String.format("Do it %s",c); //i="Do it now"<br />var e=String.format("%3f",d); //j="1.2345678"<br />var e=String.format("%10.2f%%",a); //k="1.23%."<br />var e=String.format("%3f %2f",a); //l="1.234567."<br />var e=String.format("%.0d",0); //m=""<br />var e=String.format("%.7d","Int"); //n="invalid"<br />var e=String.format("%s",ture); //o="ture"<br /></div>
<img src ="http://www.blogjava.net/zhyiwww/aggbug/56785.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2006-07-05 15:50 <a href="http://www.blogjava.net/zhyiwww/archive/2006/07/05/56785.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第六章 WML Script标准函数库（下）(转载)</title><link>http://www.blogjava.net/zhyiwww/archive/2006/07/05/56784.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Wed, 05 Jul 2006 07:47:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2006/07/05/56784.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/56784.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2006/07/05/56784.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/56784.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/56784.html</trackback:ping><description><![CDATA[
		<div align="center">
				<h1 class="aTitle">第六章 WML Script标准函数库（下）</h1>
		</div>
		<table width="97%" align="center">
				<tbody>
						<tr>
								<td width="120">[日期：<span id="TimeLabel">2004-11-23</span>]</td>
								<td align="middle">来源：<span id="SourceLabel"><a href="http://www8.ccidnet.com/school/web/" target="_blank">赛迪网</a></span>  作者：<span id="AuthorLabel"></span></td>
								<td align="right" width="100">[字体：<a href="javascript:ContentSize(16)">大</a><a href="javascript:ContentSize(14)">中</a><a href="javascript:ContentSize(12)">小</a>] </td>
						</tr>
				</tbody>
		</table>
		<div class="content" id="BodyLabel" style="PADDING-RIGHT: 10px; DISPLAY: block; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px">
				<strong>6.5 URL函数库<br /><br /></strong>名称：URL<br />说明：这个函数库包含了处理绝对的URL与相对URL的程序，一般的URL语法如下：<scheme>：//<host>:<port>/<path>;<parames>?<query>#<br /><br />isValid<br /><br />程序：isValid(url)<br />说明：如果给予的url值是正确的URL语法，则回传ture，否则回传false<br />绝对与相关URL都能支持<br />相关URL不会被转成绝对URL<br />参数：url=字符串<br />回传值：布尔值或invalid<br />例外状况：无<br />范例：var a=URL.isValid<br />("http://www.acme.com/script#func()"); //a=ture<br />var b=URL.isValid("../common#test()"); //b=ture<br />var c=URL.isValid<br />("experimental?://www.acme.com/pub"); //c=false <br /><br />getScheme<br /><br />程序:getScheme(url)<br />说明：回传给予url的调用方式scheme<br />绝对与相关URL都能支持<br />相关URL不会被转成绝对URL<br />参数：url=字符串<br />回传值：字符串或invalid<br />例外状况：如果遇到不正确的URL语法，则回传invalid<br />范例：var a=URL.geScheme("http://w.a.com"); //a="http"<br />var b=URL.getSceme("w.a.com"); //b=""<br /><br />getHost<br /><br />程序：getHost(url)<br />说明：回传给予url的主机<br />绝对与相关URL都能支持<br />相关URL不会被转成绝对URL <br />参数：url=字符串<br />回传值：字符串或invalid<br />例外状况：如果遇到不正确的URL语法，则回传invalid<br />范例：var a=URL.geHost("http://www.acom.com/pub"); //a="www.acm.com"<br />var b=URL.getHost("path#fray"); //b=""<br /><br />getPort<br /><br />程序：getPort(url)<br />说明：回传给予url的端口（port）<br />如果port没有制定，则回传空字符串<br />绝对与相关URL都能支持<br />相关URL不会被转成绝对URL <br />参数：url=字符串<br />回传值：字符串或invalid<br />例外状况：如果遇到不正确的URL语法，则回传invalid<br />范例：var a=URL.getPort("http://www.acom.80/path"); //a="80"<br />var b=URL.getPort("http://www.acom./path"); //b=""<br /><br />getPath<br /><br />程序：getPath(url)<br />说明：回传给予url的路径（path）<br /><br />参数：url=字符串<br />回传值：字符串或invalid<br />例外状况：如果遇到不正确的URL语法，则回传invalid<br />范例：var a=URL.getPath("http://w.a.com/home/sub/comp#frag"); //a="/home/sub/comp"<br />var b=URL.getPath("../home/sub/comp#frag"); //b="../home/sub/comp"<br /><br />getParameters<br /><br />程序：getParameters(url)<br />说明：回传给予url的路径（parameter）<br />如果没有指定参数，则回传空字符串<br />绝对与相关URL都能支持<br />相关URL不会被转成绝对URL <br />参数：url=字符串<br />回传值：字符串或invalid<br />例外状况：如果遇到不正确的URL语法，则回传invalid<br />范例：var a=URL.getParameters("http://w.a.c/scr;3;2?x=1&amp;y=3"); //a="3;2"<br />var b=URL.getParameters("../scr3;2?x=1&amp;y=3"); //b="../home/sub/comp"<br /><br />getQuery<br /><br />程序：getQuery(url)<br />说明：回传给予url的询问部分（query） <br />如果没有指定的询问部分，则回传空字符串<br />绝对与相关URL都能支持<br />相关URL不会被转成绝对URL <br />参数：url=字符串<br />回传值：字符串或invalid<br />例外状况：如果遇到不正确的URL语法，则回传invalid<br />范例：var a=URL.getParameters("http://w.a.c/scr;3;2?x=1&amp;y=3"); //a="3;2"<br /><br />getFragment<br /><br />程序：getFragment(url)<br />说明：回传给予url的片断（fragment）<br />如果没有指定片断，则回传空字符串<br />绝对与相关URL都能支持<br />相关URL不会被转成绝对URL <br />参数：url=字符串<br />回传值：字符串或invalid<br />例外状况：如果遇到不正确的URL语法，则回传invalid<br />范例：var a=URL.getFragment("http://www.acom.com/cont#fray"); //a="fray"<br /><br />getBase<br /><br />程序：getBase()<br />说明：回传次WML Script程序的绝对URL（没有fragment的部分）。<br />参数：无<br />回传值：字符串<br />例外状况：无<br />范例：var a=URL.getBase(); //Result;<br />"http://www.acme.com/test.scr"<br /><br />getReferer<br /><br />程序：getReferer()<br />说明：回传调用目前程序资源的最小相关URL（与目前程序的基本URL的相关）<br />内部程序调用并不会改变参照者<br />如果目前的程序并没有参照者，则回传空字符串<br />参数：无<br />回传值：字符串<br />例外状况：无<br />范例：var base=URL.getBase(); //base<br />="http://www.acme.com/current.scr"<br />var prferer=URL.getReferer(); //referer="app.wml"<br /><br />resolve<br /><br />程序：resolve(baseUrl,embeddedUrl)<br />说明：根据RFC2396的文件，由给予的基本base与插入embeddedUrl回传绝对URL<br />参数：baseUrl=字符串<br />embeddedUrl=字符串<br />回传值：字符串或invalid<br />例外状况：如果遇到不正确的URL语法，则回传invalid<br />范例：var a=URL.resolve(http://www.foo.com/,"foo.vcf"); //a="http://www.foo.com/foo.vcf"<br /><br />escapeString<br /><br />程序：escapeString(string)<br />说明：这个程序会将所给与string字符串之中的特殊字符使用十六进制逃脱序列来替代(你必须使用量为逃脱序列格式%xx),这些逃脱字符如下：<br />控制字符（control characters）：US-ASCII编码的字符00-1F与7F<br />空格（Space）:US-ASCII码编字符20十六进制<br />保留字（Reserved）:"；"|"/"|"?"|"："|"@"|"="|"+"|"$"|","<br />Unwise:"{"|"}"|"|"|"\"|""|"["|"]"|"`"<br />Delimes:"&lt;"|"&gt;"|"#"|"%"|"&lt;&gt;"<br />给予的字符串如果已经是使用逃脱自负，则不会执行URL解析<br />参数：string=字符串<br />回传值：字符串或invalid<br />例外状况：如果字符串string含有非US-ASCII的字符，则回传invalid<br />范例：var a=URL.escapeString<br />("http://w.a.c/dck?x=u007ef#crd");<br />// a="http%3a2f%2fw.a.c%2fdck%3fx%3def%23crd"<br /><br />unescapeString<br /><br />程序：unescapeString(string)<br />说明：这个程序会将所给与string字符串之中每个可能是由URL.escapeString() 程序所产生的逃脱序列使用它所代表的字符加以替代。<br />参数：string=字符串<br />回传值：字符串或invalid<br />例外状况：如果字符串string含有非US-ASCII的字符，则回传invalid<br />范例：var a="http%3a2f%2fw.a.c%2fdck%3fx%3def%23crd";<br />var b=URL.unescapeString(a); //b<br />="http://w.a.c/dck?x=12#crd"<br /><br />loadString<br /><br />程序：loadString(url,contentType)<br />说明：回传有所给予的绝对URL与contenttype所指出的内容。<br />如果内容格是不是下列法则所规范的话，则是错误的：<br />你只能界定一种内容格式，整个字符串必须和一种内容格式相符，而 且你不能有额外的前或后空格。<br />格式必须是正文，但次格式没有限制，格式的开头一定是"text/"。<br />这个程序的动作如下：<br />文件的内容会载入使用给予的contentType与url,其他所需的数形式有使用用户界面的预设面。<br />如果载入成功而且回传的内为格式与所给予的contentType相符,则内文会被转换成字符串再回传。<br />如果载入成功或回传的内文格式不正确的话，则会回传特定的错误码。<br />参数：url=字符串 <br />contentYype=字符串<br />回传值：字符串、整数或invalid<br />例外状况：如果载入失败其回传的错误码和所使用的URL Scheme有关<br />如果使用HTTP或WSP架构，会回传HTTP错误码。<br />如果给予的contentType错误的话，则会回传invalid<br />范例：var a="http%3a2f%2fw.a.c%2fdck%3fx%3def%23crd";<br />var b=URL.unescapeString(a); //b<br />="http://w.a.c/dck?x=12#crd"<br /><br />loadString<br /><br />程序：loadString(url,contentType)<br />说明：回传有所给予的绝对URL与contenttype所指出的内容。<br />如果内容格是不是下列法则所规范的话，则是错误的：<br />你只能界定一种内容格式，整个字符串必须和一种内容格式相符，而 且你不能有额外的前或后空格。<br />格式必须是正文，但次格式没有限制，格式的开头一定是"text/"。<br />这个程序的动作如下：<br />文件的内容会载入使用给予的contentType与url,其他内文所需的数形式有使用用户界面的预设面。<br />如果载入成功而且回传的内容为格式与所给予的contentType相符,则内文会被转换成字符串再回传。<br />如果载入成功或回传的内文格式不正确的话，则会回传特定的错误码。<br />参数：url=字符串 <br />contentYype=字符串<br />回传值：字符串、整数或invalid<br />例外状况：如果载入失败其回传的错误码和所使用的URL Scheme有关<br />如果使用HTTP或WSP架构，会回传HTTP错误码。<br />如果给予的contentType错误的话，则会回传invalid<br />范例：var myUrl="http://www.acme.com/vcards/myaddr.vcf";<br />myCard=URL.loadString(myUrl,"text/x-vcard");<br /><br /><b>6.6 WML浏览器函数库</b><br /><br />名称：WML Brower<br />说明:这个函数库所包含的程序是让WML Script用来存取与WML相关的内文，这些程序不能有任何的副作用，并在下列的状况下回传invalid值。<br />系统不支持WML浏览器。<br />WML浏览器无法使用WML Script解译器。<br /><br />getVar<br /><br />程序：getVar(name)<br />说明：回传目前浏览器内文的所给予名称name的变量值。<br />如果所指定的变量不存在，回传一个空字符串。<br />变量名称必须依照WML语法来使用。<br />参数：name=字符串<br />回传值：字符串或invalid<br />例外状况：如果变量名称不合语法，则回传invalid<br />范例：var a=WMLBrowser.getVar("name");<br />// a"Jon"或者变量的值<br /><br />setVar<br /><br />程序：setVar(name,value)<br />说明：在目前的浏览器之中，如果所给予名称name的变量，它的值同给予的值value设定的一样的话，回传ture，否则回传false。<br />变量名称必须依照WML语法来使用。<br />变量值必须是合法的XML CD ATA<br />参数：name=字符串<br />value=字符串<br />回传值：布尔值或invalid<br />例外状况：如果变量名称或它的值不合语法，则回传invalid<br />范例：var a=WMLBrowser.setVar("name",Mary); // a=true<br /><br />go<br /><br />程序：go(url)<br />说明：将给予的url所标记的内文载入，这个程序予WML的GO动作意思相同。<br />如果所给予的url字空字符串（""），则不会载入任何内文。<br />go()与prev（）函数库程序会互相推翻，在回传控制与WML浏览之前都可以加以调用多次。<br />只有最后的调用设定的会保持作用，如果最后的调用为go()或prev（）,其所设定的url为空字符串（""），所有的要求都会被取消。<br />这个程序回传空字符串。<br />参数：url=字符串<br />回传值：字符串或invalid<br />例外状况：无<br />范例:varcard="http://www.acme.com/loc/app.dck#start";WMLBrowser.go(card<br />)<br /><br />prev<br /><br />程序：prev()<br />说明:告诉WML浏览器回到先前的WML Card，这个程序的功能与WML中的prev动作一样。<br />go()与prev()函数库程序会互相推翻，在回传控制与WML 浏览之前都可以加以调用多次。<br />只有最后的调用设定是会保持作用，如果最后的调用为go()或prew(),其所设定的url为空字符串（""），所有的要求都会被取消。<br />这个程序回传空字符串。<br />参数：无<br />回传值：字符串或invalid<br />例外状况：无<br />范例：WMLBrowser.prev();<br /><br />newContext<br /><br />程序：newContext()<br />说明：将目前WML浏览器的内文清除并回传一个空字符串，这个程序的公用与WML的NEWCONTEXT属性一样。<br />参数：无<br />回传值：字符串或invalid<br />例外状况：无<br />范例：WMLBrowser.newContext（）；<br /><br />getCurrentCard<br /><br />程序：getCurrentCard()<br />说明：回传目前WML浏览器所处理card的最小相关URL，如果WML deck所包含目前程序的基本地址不同的话，则此程序会回传绝对URL。<br />参数：无<br />回传值：字符串或invalid<br />例外状况：如果没有目前的card，则回传invalid。<br />范例：var a=WMLBrowser.getCurrentCard();// a="deck#input"<br /><br />refresh<br /><br />程序：refresh()<br />说明：强制WML浏览器更新它的内文并回传一个空字符串，而用户界面会加以更新以反应更新后的内容，这个程序与WML中的refresh功能一样。<br />参数：无<br />回传值：字符串或invalid<br />例外状况：无<br />范例：WMLBrowser.setVar("name","Zorro");<br />WMLBrowser.refresh();<br /><br /><b>6.7 Dialog函数库</b><br /><br />名称：对话<br />说明：这个函数库包含典型的用户界面程序。<br /><br />prompt<br /><br />程序：prompt(message,defaultInput)<br />说明：显示给予的信息message与用户输入的提示符号，defaultInput参数包含了用户输入所需的初始内文，回传用户输入。<br />参数：message=字符串<br />defaultInput=字符串<br />回传值：字符串或invalid<br />例外状况：无<br />范例：var a="09-555 3456"; var b=Dialogs.prompt("Phome number";a);<br /><br />confirm<br /><br />程序：confirm(message,ok,cancel)<br />说明：显示所给予的信息message与两个选项：ok与cancel,等待用户选取其中一个，如果是ok则回传false。<br />参数：message=字符串<br />ok=字符串<br />cancel=字符串<br />回传值：布尔值invalid<br />例外状况：无<br />范例：function onAbort(){return Dialogs.confirm("Are you sure?"),"Yes","No";};<br /><br />alert<br /><br />程序：alert(message)<br />说明：显示所给予的信息message给用户，等待用户确定并回传一个空字符串。<br />参数：message=字符串<br />回传值：字符串或invalid<br />例外状况：无<br />范例：function testValue(textElement){<br />if (String.length(textElement)＞8) {<br />Dialogs.alert("Enter name ＜8 chars!");<br />};<br />};<br /><br /><b>6.8 函数库总结</b><p>函数库 </p><table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt" cellspacing="0" cellpadding="0" border="1"><tbody><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid" valign="top" width="568"><p class="MsoNormal"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">函数库名称：</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal" style="TEXT-ALIGN: left" align="left"><span lang="EN-US">Lang</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Float</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">String</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">URL</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">WML Browser</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Dialogs</span></p></td></tr></tbody></table><p class="MsoNormal"><span lang="EN-US"> <?XML:NAMESPACE PREFIX = O /?><o:p></o:p></span></p><p class="MsoNormal"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">函数库与他们的程序：</span></p><table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt" cellspacing="0" cellpadding="0" border="1"><tbody><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Lang</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">函数库</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Abs</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Min</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Max</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">ParseInt</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">ParseFloat</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">IsInt</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">IsFloat</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">MaxInt</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">MinInt</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Float</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Exit</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Abort</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Random</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Seed</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">CharacterSet</span></p></td></tr></tbody></table><p class="MsoNormal"><span lang="EN-US"> <o:p></o:p></span></p><table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt" cellspacing="0" cellpadding="0" border="1"><tbody><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Float </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">函数库</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Int</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Ploor</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Ceil</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Pow</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Round</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Sqrt</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">MaxFloat</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">MinFloat</span></p></td></tr></tbody></table><p class="MsoNormal"><span lang="EN-US"> <o:p></o:p></span></p><table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt" cellspacing="0" cellpadding="0" border="1"><tbody><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">String </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">函数库</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Length</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">IsEmpty</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">CharAt</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">SubString</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Pind</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Replace</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Elements</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">ElementAt</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">RemoveAt</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">ReplaceAt</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">InsertAt</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Squeeze</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Frim</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Compqre</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">ToString</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">format</span></p></td></tr></tbody></table><p class="MsoNormal"><span lang="EN-US"> <o:p></o:p></span></p><table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt" cellspacing="0" cellpadding="0" border="1"><tbody><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">URL </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">函数库</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">IsValid</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">GetScheme</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">GetHost</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">GetPort</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">GetPath</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">GetParameters</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">GetQuer</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">GetFragment</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">GetBase</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">GetReferer</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Resolve</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">EscapeString</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">UnescapeString</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">loadString</span></p></td></tr></tbody></table><p class="MsoNormal"><span lang="EN-US"> <o:p></o:p></span></p><table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt" cellspacing="0" cellpadding="0" border="1"><tbody><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">WML</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">　</span><span lang="EN-US">Browse</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">函数库</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Get Var</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">SetVar</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Go</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Prev</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">NewContext</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">GetCurrentCard</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Refresh</span></p></td></tr></tbody></table><p class="MsoNormal"><span lang="EN-US"> <o:p></o:p></span></p><table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt" cellspacing="0" cellpadding="0" border="1"><tbody><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Dialogs<span style="mso-spacerun: yes">  </span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">函数库</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Prompt</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Confirm</span></p></td></tr><tr><td style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 426.1pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 0.5pt solid; mso-border-top-alt: solid windowtext .5pt" valign="top" width="568"><p class="MsoNormal"><span lang="EN-US">Alert</span></p></td></tr></tbody></table><!---文章内容主体部分结- --></query></parames></path></port></host></scheme></div>
		<br />
<img src ="http://www.blogjava.net/zhyiwww/aggbug/56784.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2006-07-05 15:47 <a href="http://www.blogjava.net/zhyiwww/archive/2006/07/05/56784.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第五章 WMLScript脚本程序设计（下）(转载)</title><link>http://www.blogjava.net/zhyiwww/archive/2006/07/05/56780.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Wed, 05 Jul 2006 07:36:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2006/07/05/56780.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/56780.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2006/07/05/56780.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/56780.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/56780.html</trackback:ping><description><![CDATA[
		<div align="center">
				<h1 class="aTitle">第五章 WMLScript脚本程序设计（下）</h1>
		</div>
		<table width="97%" align="center">
				<tbody>
						<tr>
								<td width="120">[日期：<span id="TimeLabel">2004-11-23</span>]</td>
								<td align="middle">来源：<span id="SourceLabel"><a href="http://www8.ccidnet.com/school/web/" target="_blank">赛迪网</a></span>  作者：<span id="AuthorLabel"></span></td>
								<td align="right" width="100">[字体：<a href="javascript:ContentSize(16)">大</a><a href="javascript:ContentSize(14)">中</a><a href="javascript:ContentSize(12)">小</a>] </td>
						</tr>
				</tbody>
		</table>
		<div class="content" id="BodyLabel" style="PADDING-RIGHT: 10px; DISPLAY: block; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px">
				<strong>5.2 函数的声明与调用<br /><br /></strong>在WML Script中，函数是一种能够完成某种功能的代码块，并可以在脚本中被事件处理或被其他语句调用，也可以被WML程序所处理和调用。一般地，当我们编写WML Script脚本时，如果脚本中的代码长度还是很长，则一般还可以根据功能将函数再进行划分，分成为几个功能更加单一的函数。虽然说这样对长代码的处理方法并不是编写脚本程序的强制性要求，但通过函数的划分和运用，我们可以使得WML Script脚本具有更好的可读性，也便于我们对脚本程序的编写与调试。而且，如果在某些脚本中有多处完全相同的代码块，那么我们也可以将这些代码快些为一个函数，然后在脚本中调用这个函数，从而提高代码的重要性，简化代码的编写工作。<br /><br />WML Script的函数共用和Jave语言、C/C++语言的函数有所不同。我们知道，Jave语言、C/C++语言中有函数和过程之分，函数能够完成一定的功能并有返回值，而过程进可完成一定的功能但没有返回值。可是，WML Script中并不区分函数和过程，因为它只有函数，没有过程。WML Script的函数完成一定功能后始终有返回值，不过返回值分两种情况，即非空的返回值和空字符串（""）形式的返回值。前者是真正的返回值，后者其实相当于没有返回值。也就是说，WML Script中的函数同时具有其他语言中的函数和过程的功能。<br /><br />5.2.1 函数的声明<br /><br />使用函数时，要根据函数的调用使用，而调用函数前必须声明函数，也就是需要先定义函数。WML Script中定义函数的一般方式如下：<br /><br />function函数名（参数列表）<br /><br />{<br /><br />代码块<br /><br />}；<br /><br />另外，WML Script规定使用extern关键字来声明一个外部函数：<br /><br />extern function函数名（参数列表）<br /><br />{<br /><br />代码块<br /><br />}；<br /><br />从中可以看出，函数的定义有以下3部分组成：<br /><br />（1）函数名。即函数的名称，其命名规则应遵守WML Script的标识规则。调用函数时都是通过函数名进行调用的，所以函数必须要有函数名。<br /><br />函数命名时，一般要使用能够描述函数功能的但此来作为函数名，也可以使用多个单词组合进行命名，这样做的好处是能够提高WML Script脚本的可读性。<br /><br />函数名在同一个WML Script脚本文件里必须是唯一的。如若不然，则会导致函数定义混乱。<br /><br />（2）参数列表。即调用函数时需要的参数。参数列表通常是可选的，有的函数需要，有的函数可能不需要。参数列表的作用是向函数传递一些参数，使得函数可以直接使用这些参数的值。<br /><br />调用函数的时候，参数个数和类型必须和函数定义示所声明的参数个数即类型保持一致。而且函数的参数就如同似函数体内的局部变量，它们在函数调用的时候被初始化。<br /><br />（3）代码块。它是函数的主体部分。代码块中的代码包含在以对花括号（{ }）中，代码块可以执行并完成函数的功能。编写代码块是应当遵循WML Script的编程规则。<br /><br />有时，函数需要返回一个值给调用函数的语句，则应该在代码块的后面一行使用return语句，返回所需的数值。<br /><br />与C/C++等语言类似，WML Script的函数是可以嵌套的，以就是说，在一个函数中还可以调用其他函数。但是，函数声明是不能嵌套，这是WML Script的强制性规定。<br /><br />下面几行语句就是定义函数的简单例子：<br /><br />function currencyConverter(currency,exchangeRate)<br /><br />{<br /><br />return currency*exchangeRate;<br /><br />};<br /><br /><br />其中，该函数的名称为currencyConverter,参数有currency和exchangeRate两个，函数代码块包含一条语句，用于返回currency和exchangeRate的乘积。<br /><br />下面是一个使用extern定义外部函数的例子。其中函数名为textIt,它没有参数，函数体中定义了两个赋值变量，一个赋整数，一个赋函数值：<br /><br />extern function testIt(){<br /><br />var USD=10；<br /><br />var FIM =currencyConverter(USD,5.3)<br /><br />};<br /><br />5.2.2 函数的调用<br /><br />编写好的函数必须经过合法的调用，才可以发挥它应用的作用。函数调用将返回一个值，比如一个计算结果。WML Script中的函数主要可以分为内部函数、外部函数和库函数，下面我们就介绍这3类函数的调用方法。<br /><br />内部函数<br /><br />所谓内部函数是指函数的定义与其调用函数在同一个脚本文件内的函数，对内部函数的调用称为内部调用。内部函数的调用非常简单，只需提供函数名和所需参数值即可，参数值必须和函数定义时指定的参数个数即类型一致。而且函数调用需要使用操作符来接收或处理被调用的返回值。<br /><br />内部函数可以在其定义之前调用，也可以在其定义之后调用。例如，下面就是一个在函数定义之后调用的例子。 
<table cellspacing="0" cellpadding="0" width="580" border="0"><tbody><tr><td class="code" bgcolor="#e6e6e6"><strong><br /><br />function test1(val){<br /><br />return val*val;<br /><br />}；<br /><br />function test2(param){<br /><br />return test1(param+1);<br /><br />};</strong></td></tr></tbody></table><br /><br />这个例子中定义了两个函数test1和test2。test1函数用于计算给定参数值的平方并将结果返回；test2函数将给定的参数值加1，然后这个和为参数值，来调用test1函数，得到结果后在将给结果返回到调用test2函数的语句。<br /><br />注意，本例中test2函数调用了test1函数，这种在函数中调用其他函数的方法称为函数调用嵌套。WML Script的内部函数、外部函数和库函数都支持嵌套调用，后面我们专门介绍这方面的内容。<br /><br />外部函数<br /><br />外部函数使一个在WML Scrupt外部文件中定义的函数。调用外部函数的方法与调用内部函数的方法基本类似，不同之处在于调用处外部函数时一是要指定外部文件的地址即名称，二是要在调用的外部函数名的前面加上外部文件的名称。<br /><br />WML Script规则使用use url来指定外部文件，语法格式为：<br /><br />use url还有外部函数的外部文件名 外部文件所在的URL;<br /><br />这样，WML Script的预编译头就可以将外部文件映射为一个可以在内部使用的标识。然后，使用这个标识并加上井号键（#）和标准的函数调用即可实现外部函数调用，语法格式为：<br /><br />外部文件名#外部函数（参数列表）；<br /><br />例如，http://www.host.com/script下有我们需要的外部文件，名为OtherScript,所以我们可使用use url来指定该文件：<br /><br />use url OtherScript"http://www.host.com/script"<br /><br />这一外部文件中含有我们需要调用的外部函数testme,则可采用“外部文件名#外部函数（参数列表）”的形式来调用它：<br /><br />OtherScript#testme(param+1);<br /><br />这个例子完整的写出来，就是下面的程序：<br /><br />use url OtherScript"http://www.host.com/script"<br /><br />function test(param){ <br /><br />return OtherScript#testme(param+1);<br /><br />};<br /><br />库函数<br /><br />特别指定，WML Script的库函数一律是指它的标准库函数。因为与标准库函数对应，WML Script还有一些非标准的库函数。我们这里先介绍标准库函数，非标准库函数后面再介绍。<br /><br />所有库函数都有所数的库，函数的库中通常含有一类函数。因此，调用某个库函数时，一要指定它的库名，二要指定它的函数名。WML Script规定，调用标准库函数时可以通过在函数库的名字后面加上句点号（.）和库函数的标准调用来实现，语法格式为：<br /><br />函数库名.函数名（参数列表）；<br /><br />例如，WML Script的浮点库即Float库中有一个开根方的函数sqrt,该函数只有一个参数，那么调用squrt库函数的方法为：<br /><br />Float.sqrt(number);//这里要求number大于或等于0<br /><br />下面给出了调用库函数的简单例子。首先一param参数值调用Lang.abs()函数，返回结果加1后再作为参数调用Float.sqrt()函数，它的返回结果作为内部函数test的返回值：<br /><br />function test(param){<br /><br />return Float.sqrt(Lang.abs(param)+1)；<br /><br />}；<br /><br />2.3 函数的嵌套调用<br /><br />WML Script的函数定义都是互相平行、独立的，定义函数的时候我们不能在一个函数内定义另外一个函数，也就是说，函数定义是不能嵌套的。但是，函数调用确是可以嵌套的，也就是说，我们可以在调用一个函数的过程中调用另外一个函数。<br /><br />它的执行过程是：<br /><br />（1）执行a函数开头部分；<br /><br />（2）遇到调用b函数的操作语句，流程则专区执行b函数；<br /><br />（3）执行b函数开头部分；<br /><br />（4）遇到调用c函数的操作语句，流程则专区执行c函数；<br /><br />（5）执行b函数,如果没有其他嵌套的函数，则完成c函数的全部操作；<br /><br />（6）返回调用c函数的语句，即返回到b函数；<br /><br />（7）继续执行b函数中尚未执行的操作，直到b函数结束；<br /><br />（8）返回a函数中调用b函数的语句；<br /><br />（9）继续执行a函数的剩余操作，直到函数结束。<br /><br />function myFunC(param1){<br /><br />return param1*param1=Float.squt(Lang.abs(param)+1)；<br /><br />}；<br /><br />function myFunB(param0){<br /><br />return myFunC(param0+1)*|param0+12;<br /><br />};<br /><br />function myFunA(param){<br /><br />return myFunB(param*param+1);<br /><br />};<br /><br /><br /><b>5.3 预编译</b><br /><br />WML Script的预编译主要用于在编译阶段控制编译器的行为。与编译头一般在文件开头和函数声明之前指定，WML Script规定所有的预编译头都是一关键词use加上指定的预编译属性进行指定。<br /><br />在大多数的编程中，我们比较长用的预编译行为主要涉及外部文件声明、访问权和Meta信息设置。<br /><br />5.3.1 外部文件<br /><br />我们知道，使用URL地址可以定位一个WML Script文件。利用该URL地址；在WML Script编程中我们可以通过预编译来调用WML Script的外部文件，外部文件预编译头的声明方法是use url，其语法格式如下：<br /><br />use url外部文件名 "URL"地址<br /><br />这样，我们在当前文件的编程中就可以使用该预编译头声明的外部文件，从而可以调用该外部文件的函数。其语法格式为：<br /><br />外部文件名#函数名（参数列表）；<br /><br />例如，我们希望在当前的WML Script程序中调用OtherScript外部文件中的check()函数，而且我们知道OtherScript文件的URL地址为http://www.host.com/app/script。因此，我们可以使用use url来声明这一外部文件：<br /><br />use url OtherScript"http://www.host.com/script"<br /><br />随后，我们就可以在程序中调用OtherScript中的check()函数了：<br /><br />function test(par1,par2)<br /><br />{<br /><br />return OtherScript#check(par1,parr2);<br /><br />};<br /><br />其中调用执行的过程如下：<br /><br />（1）找到WML Script外部文件的URL地址；<br /><br />（2）当前函数从指定的URL地址值装载外部文件；<br /><br />（3）检测外部文件的内容，并执行其中的check（）函数。<br /><br />ure url 预编译头指定的外部文件名在当前程序中必须唯一，用户不能指定不同URL地址的同名外部文件，否则在调用外部文件时就会发生混乱。<br /><br />另外，use url预编译头中的URL地址也可以是相对URL地址。相对URL的起始位置是当前程序文件所在的位置，并在此基础上根据URL进行定位。<br /><br />如果URL地址中的字符包含有转义字符，则WML Script将根据转义要求进行转义。不过，程序在编译的时候编译器并不会对他们进行转义，而是在程序执行时完成，检查URL格式和URL地址的有效性。<br /><br />5.3.2 访问权限<br /><br />我们可以使用访问权限预编译设保护文件的内容，实现访问控制。WML Script编程中，必须在调用外部函数之前使用访问权限预编译头声明外部文件的访问权限。不过，WML Script访问权限检查的缺省值是不进行检查，即disabled.但访问权限一经声明，以后当调用外部函数的时候，编译器就会检查外部文件的访问权限，以决定调用这是否有权使用该文件及其内含函数。<br /><br />访问权限预编译头的声明方法是use access,其语法格式如下：<br /><br />use access domain操作域名 path操作路径：<br /><br />访问权限预编译头通过指定domain和path属性来决定编译器将要进行什么样的检查工作。如果文件有domain或者path属性，那么文件所在的URL就必须和属性中的值一致。比较时，域和路径都依据URL大写规则进行比较。具体的比较预则如下：<br /><br />（1）操作域与URL中的域后缀相匹配。与后缀匹配是值所有的子域从后向前都必须一致。例如：www.wapforum.org和wapforum.org相匹配，而与forum.org并不匹配。<br /><br />（2）操作路径和URL中的路径前缀相匹配。路径前缀匹配是值从前向后必须一致。例如：“/X/Y”与“/X”相匹配，而不是和“/XZ”相匹配。<br /><br />（3）却省的domain数行为当前的文件域，就是“/”。<br /><br />不过，为了简化编程，有时WMLScript并不需要直到外部文件的绝对路径，我们只需提供文件的相对URL即可，用户浏览器执行程序是卡相对路径自动转换为绝对路径，根据路径属性进行匹配。例如：如果访问权限预编译头及其指定属性为：<br /><br />use access domain"wapforum.org"path"/finance";<br /><br />则可以使用以下的路径来调用指定文件中的外部函数，它们都符合相对URL地址匹配规则：<br /><br />http://wapforum.org/finance/money.cgi<br /><br />http://www. wapforum.org/finance/money.cgi<br /><br />http://www. wapforum.org/finance/demos/packages.cgi?x+123&amp;y+456<br /><br />而以下的路径调用则非法的，因为它们或者操作域不对，或者URL地址不能与指定的相对URL相匹配：<br /><br />heep//www.test.net/finance<br /><br />http//www.qapforum.org/internal/foo.wml<br /><br />需要强调指出的是，WML Script规定，同一程序中只能定义一个访问权限与编译头，否则就会导致编译错误。<br /><br />5.3.3 Meta 信息<br /><br />我们还可以通过与编译头的形式声明WML Script文件的Meta信息。Meta信息主要用于指定文件所需Mete属性的属性名（Property name)、属性值(Content)以及文件的配置（信息），属性都属于字符串类型的数据。Mate信息域编译头使用use meta声明，其语法格式为：<br /><br />usr meta 属性 该属性Meta信息：<br /><br />Meta的属性主要包括Name、HTTP Equiv和User Agent三种，下面我们分别讲解它们的声明方法：<br /><br />（1）Name。该属性用于指定服务器使用的Meta信息。这些信息仅供服务使用，用户浏览器并不理会这些信息。<br /><br />例如，以下Name属性的Meta信息指定了服务器的创建时间：<br /><br />use meta name "Created""26-June-2000";<br /><br />该信息只会作用于服务器，而不会影响用户浏览器的操作。<br /><br />（2）HTTP Equiv。该属性用于指定需要解释为HTTP头的Meta信息。对于已经编译的文件来说，当它到达用户浏览器前，WML Script将根据HTTP Equiv属性指定的Meta信息将文件转换为WSP或HTTP的响应头,进行文件的解释和执行。<br /><br />例如，以下声明的http equiv属性指定按照脚本语言的关键字来解释当前文件：<br /><br />use meta http equiv"Keywords""Script,Language";<br /><br />(3)User Agent。该属性用于定义用户浏览器使用的数据类型。例如：<br /><br />use meta user agent"Type""Test";<br /><br />它指定当前数据必须立即发送给用户浏览器，然后马上清除掉。<br /><br /><b>5.4 执行时的错误检测与处理</b><br /><br />WML Script函数的功能提供用户服务，并希望用户界面能在任何的状况下运作顺利，因此错误的处理是最大的课题，这表示了语言可能不提供预期的机制，如他应该可以防止错误发生或提醒用户注意并采取适当的动作，种植储蓄执行是最后的手段。下面几个小节列出了当为码下载并执行时会发生的错误，一些程序上的错误并不在谈论的范围（如无穷循环），像这类的例子就需要手动来终止。<br /><br />5.4.1 错误检测<br /><br />错误检测工具能让你检测错误但会干扰系统的动作，因为WML Script是弱格式语言，所以由一些特殊功能的工具来检测有invalid数据格式所引起的错误:<br /><br />检测给定的变量包含的是正确值：WML Scritp含有格式确认函数库程序如：Lang.isInt()Lang.isFloat()、Lang.parseInt()、Lang.parseFloat。<br /><br />检测给定的变量包含的只是正确的格式：WMLScript含有运算符typeof与isvalid能让你使用。<br /><br />5.4.2错误处理<br /><br />错误处理是在发生错误之后，有些状况是错误检测无法防止的，如内存限制后外部信号等，或者是数据很难处理，如溢出（overflow）或亏失（underflow）,而这些状况可以分为两类：<br /><br />严重错误（fatalerror）:这种错误会造成程序终止，因为WML Scritp程序会让一些用户界面调用，程序终止通常会跟调用它的用户界面发出信号，用户界面就会告知用户这个错误。<br /><br />错误（non-fatalerrow）:这种错误会把信号传回程序，如一些特殊的值，然后由程序决定所要采取的行动。<br /><br />下列的错误是根据他们的严重性来区分。<br /><br />5.4.3 严重错误（fatalerror）<br /><br />下面的小节会讨论WML Script的严重错误。<br /><br />位码错误（bytedode error）<br /><br />这些错误跟位码与由WML Script位码解译器所执行的指令有关他们指出了错误的元素群、无效的指令、指令所使用的参数无效，或指令无法执行。<br /><br />验证错误（verification failed）<br /><br />说明：调用的程序中的特定位码无法通过验证。<br />如何发生：每次程序试着用外部程序。<br />范例：var a = 3*OtherScript#doThis(param)<br />严重性：严重。<br />判定状况：当检测位码验证式。<br />解决方法：终止程序与WML Script解译其调用者的错误信号。<br /><br />说明：调用一个函数库程序时发生严重错误。<br />如何发生：每次调用函数库程序。<br />范例：var a = string.format(param)<br />严重性：严重。<br />判定状况：无<br />解决方法：终止程序与WML Script解译其调用者的错误信号。 <br />说明:调用函数参数的数目跟被调用函数的参数数目不符合。<br />如何发生：调用外部程序。<br />范例：编译器参生一个无效的参数给予指令使用，或者被调用的程序参数数目改变了。<br />严重性：严重。<br />判定状况：无<br />严重性：严重。<br />解决方案：终止程序与WML Script解译器调用着的错误信号。<br /><br />说明: 在特定的程序中找不到所需要的外部程序。<br />如何发生：调用外部程序。<br />范例： var a =3*OtherScript#doThis（param）<br />严重性：严重。<br />判定状况：无<br />解决方案：终止程序与WML Script解译器调用着的错误信号。<br /><br /><br />说明: 由于在网络服务器的程序存取又无法修复的错误或特定程序并不在网络服务器中所引起的程序无法载入。<br />如何发生：调用外部程序。<br />范例： var a =3*OtherScript#doThis（param） <br />严重性：严重。<br />判定状况：无<br />解决方案：终止程序与WML Script解译器调用着的错误信号。<br /><br />说明: 存取错误，所调用的外部程序加了保护。<br />如何发生：调用外部程序<br />范例：var a =3*OtherScript#doThis（param） <br />严重性：严重。<br />判定状况：无<br />解决方案：终止程序与WML Script解译器调用着的错误信号。<br /><br />说明: 因为程序错误造成stack underflow。 <br />如何发生：程序要取出（pop）一个空堆<br />范例： 当组译器产生错误码。<br />严重性：严重。<br />判定状况：无<br />解决方案：终止程序与WML Script解译器调用着的错误信号。<br /><br />说明:执行调用Lang.abort（） 是发生的错误。<br />如何发生：每当程序调用Lang.abort（）函数。<br />范例： Lang.abort("unrecoverable error")<br />严重性：严重。<br />判定状况：无<br />解决方案：终止程序与WML Script解译器调用着的错误信号。<br /><br />说明:发生堆栈溢出。 <br />如何发生：程序资源太多或要推入太多的变量到运算之中。<br />范例： function f|（x）（f（x+1）；）；<br />严重性：严重。<br />判定状况：无<br />解决方案：终止程序与WML Script解译器调用着的错误信号。<br /><br /><br />说明:没有多余的内存可供解译器使用。<br />如何发生：作业系统无法配置多余的空间给解译器适使用。<br />范例： function f（x）{<br />x=x+"abcdefghijklmnopqrstuvxyz";<br />f(x) ;<br />};<br />严重性：严重。<br />判定状况：无<br />解决方案：终止程序与WML Script解译器调用着的错误信号。<br /><br />说明:用户终止程序的执行(如按下reset钮)<br />如何发生：随时。<br />范例： 当应用程序正在执行是用户按下reset钮。<br />严重性：严重。<br />判定状况：无<br />解决方案：终止程序与WML Script解译器调用着的错误信号。<br /><br />说明:当程序执行中，发生了外部严重的错误。<br />如何发生：随时。<br />范例： 电力微弱，系统自动。<br />严重性：严重。<br />判定状况：无<br />解决方案：终止程序与WML Script解译器调用着的错误信号。<br /><br />5.4.4 一般错误（Nonfatal error）<br /><br />下面说明了WML Script的一般错误：<br /><br />计算错误（computational error）<br /><br />这些错误是由于WML Script数学上的运算所造成。<br /><br />除以零（divide by zero）<br />说明：发生了除以零的状况<br />如何发生：当程序中有除以零的状况。<br />范例：var a= 10；<br />var b= 0；<br />var x= a/b；<br />var y= a div b；<br />var z= a%b；<br />a/=b；<br />严重性： 一般。<br />判定状况：高<br />解决方案：产生结果为invalid。<br /><br />说明：发生了除以零的状况<br />如何发生：程序要执行浮点数运算。<br />范例：var a = Float.precision();<br />var b = Float.precision();<br />var c = a* b<br />严重性：一般。<br />判定状况：高，在某些状况很困难。<br />解决方法：产生的结果为浮点数值0.0<br /><br />常数参考错误（constant reference error）<br /><br />说明：所参考的浮点数实字为not a number。<br />如何发生：程序试着存取一个浮点数实字但组译器产生了not a number的浮点数常数。<br />范例：参考浮点数常数。<br />严重性：一般。<br />判定状况：高<br />解决方法：这会产生invalid值。 <br /><br />说明：参考的浮点数实字不是正无穷大就是负无穷大的浮点数常数。<br />如何发生：程序试着存取一个浮点数实字但组译器产生了正无穷大或负无穷大的浮点数常数。<br />范例：参考浮点数常数。<br />严重性：一般。<br />判定状况：高<br />解决方法：这会产生invalid值。<br /><br />说明：需要参照浮点数值所发生的错误。<br />如何发生：程序需要使用浮点数值但环境值支持整数值。<br />范例：var a = 3.14;<br />严重性：一般<br />判定状况：高 <br />解决方法：这会产生invalid值。 <br /><br />转换错误<br /><br />这个错误的发生同WML Script所支持的自动转换有关。<br /><br />说明：欲转换成整数值，但这个值超过整数所能接受的范围（正或负）。<br />如何发生：程序试着自动转换成整数时。<br />范例： var a = -"99999999999999999999999999999999999999999";<br />严重性：一般 <br />判定状况：高<br />解决方法：这会产生invalid值。 <br />说明：欲转换成浮点数，但这个值小于浮点数所能接受的范围（正或负）。<br />如何发生：程序时值自动转换成浮点数时。 <br />范例：var a = -"99999999999999999999999999999999999999999"; <br />严重性：一般 <br />判定状况：高 <br />解决方法：这会产生invalid值。 <br /><br />说明：欲转换成浮点数，但这个值小于浮点数所能接受的范围（正或负）。<br />如何发生：程序时值自动转换成浮点数时。<br />范例：var a = -"99999999999999999999999999999999999999999"; <br />严重性：一般 <br />判定状况：高<br />解决方法：这会产生浮点数0.0。</div>
<img src ="http://www.blogjava.net/zhyiwww/aggbug/56780.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhyiwww/" target="_blank">zhyiwww</a> 2006-07-05 15:36 <a href="http://www.blogjava.net/zhyiwww/archive/2006/07/05/56780.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第四章 WML Script语法基础(转载)</title><link>http://www.blogjava.net/zhyiwww/archive/2006/07/05/56676.html</link><dc:creator>zhyiwww</dc:creator><author>zhyiwww</author><pubDate>Wed, 05 Jul 2006 03:28:00 GMT</pubDate><guid>http://www.blogjava.net/zhyiwww/archive/2006/07/05/56676.html</guid><wfw:comment>http://www.blogjava.net/zhyiwww/comments/56676.html</wfw:comment><comments>http://www.blogjava.net/zhyiwww/archive/2006/07/05/56676.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhyiwww/comments/commentRss/56676.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhyiwww/services/trackbacks/56676.html</trackback:ping><description><![CDATA[
		<p>第四章 WML Script语法基础<br />[日期：2004-11-23] 来源：赛迪网  作者： [字体：大 中 小] </p>
		<p>WML Script是属于无限应用协议WAP应用层的一部分，使用它可以向WML卡片组和卡片中添加客户端的处理逻辑，目前最新的版本是1.1版。WML Script1.1是在欧洲计算机制造商协议会制定的ECMAScript脚本语言的基础上，经过修改和优化而指定的。它能够更好的支持诸如移动电话类的乍带宽通信设备，在WML编程中使用WML Script可以有效的增强客户端应用的灵活性，而且，我们也可以把WML Script作为一个工具使用，开发出功能强大的WAP网络应用和无限网页。本章我们将详细讲解WML Script1.1编程的基础预法制时，如基本规则、变量预数据类型、操作赋予表达式等。为了叙述上的简便，以后我们将“WML Script1.1”简称“WMLScript ”。</p>
		<p>4.1 WML 程序中调用WML Script函数</p>
		<p>经过前两章的学习，熟悉C语言的读者可能会认识到，WML 的函数功能、逻辑运算功能等都是十分有限的。而WMLScript提供了丰富的函数功能，我们在WAP应用开发可以使用WMLScript来增强WML编程。因此，WMLScript成为扩展WML编程能力的主要开发工具。</p>
		<p>4.2 WMLScript的主要优点及其字节码解释器</p>
		<p>WMLScript具有一套定义好的字节码和一个解释器参考结构。无线网络传输中WMLScript的数据均以二进制格式进行传输，所以，用户可以使用乍带宽通信信道，从而能够保持客户端手机只需要最小限度的内存。ECMAScript修改后得到的WMLScript能够更快、更小、更容易的编译程序为字节码形式。所有这些特点，是WMLScript具备了WML所不能具备的很多优点和功能。</p>
		<p>4.2.1 使用WMLScript的主要优点</p>
		<p>WMLScript的设计宗旨是为WMLScript系统提供一般的脚本处理能力，使用WMLScript我们可以进一步补充基于XML的WML语言的编程功能，开发针对乍带宽的网络应用及内容，如文本、图像、选择列表等，我们可以使用简单的格式编写出更灵活和更具可读性的用户界面。WMLScript具备的WML所不能具备的优点和功能，主要包括如下几个方面： （1）检查用户输入的合法性：</p>
		<p>（2）扩展用户浏览器的功能，比如允许程序员开发手机的电话呼叫、发送短信息、存储电话号码、管理电话簿或SIM卡等；</p>
		<p>（3）生成用户端的确认、提示、警告信息或操作对话框，并使之快速显示在浏览器上；</p>
		<p>（4）在用户浏览器的更改后，能够对浏览器端的软件和参数进行扩展与配置；</p>
		<p>（5）最大程度克服客户端的乍带宽通信连接限制，并提供丰富的程序功能；</p>
		<p>（6）补充WML并使之实现针对微型移动终端设备的多种服务，如支持高级用户界面、增加客户端智能型、提供用户浏览器外围功能的访问能力，以及在服务器与客户端浏览传输数据是减少带宽占用等。</p>
		<p>4.2.2 WMLScript的字节码解释器</p>
		<p>在WMLScript的字节码解释器解释之前，WMLScript语言编写的文本格式的程序将被首先编译为二进制格式的代码。编译时，编译器通常先将WMLScript程序分成若干个编辑单位，每个单位的程序都包含一定数量的语句行和WMLScript函数，然后，WMLScript的编译器将按照这些编译单位，逐一将WMLScript程序作为输入内容，而把对应的字节码作为输出内容。当用户通过WAP手机调用WMLScript程序时，编译器的编码功能即被激活、执行。</p>
		<p>4.3 WMLScript基本规则</p>
		<p>WMLScript在许多基本规则方面沿用了WML的做法。不过，由于WMLScript是以C语言为蓝本而指定的，所以它的语法特征和C语言非常相像。如果大家对C语言比较熟悉，那么学习和掌握这部分内容应当是比较容易的。</p>
		<p>4.3.1 WMLScript与URL</p>
		<p>与WML一样，WMLScript也沿用了WWW和HTML访问资源的URL、HTTP等规范，并扩大了URL使用的范围。在WMLScript中，不仅超链接、文件路径即文件名可以作为URL处理，外部函数、访问控制信息等也可以作为URL处理。</p>
		<p>为此，WMLScript采用了WML的变通方法，即改进HTML命名资源为值的方式，采用程序段锚点（Fragment Anchor）的形式来处理资源定位。程序段锚点根据文档URL规则进行定义，并按照程序段标识符前加井字号（#)的方式书写。使用程序段锚点，WMLScript程序可以在WMLScript编译单位内可任意指定的函数，并可在调用该函数的同时传递所需的参数。</p>
		<p>4.3.2 词法结构</p>
		<p>WMLScript编程中的词法结构并不复杂，我们下面就从大小写敏感、空格、换行、注释即保留字等方面讲解相关的具体规则。</p>
		<p>（1）内容类型。WMLScript的内容类型主要针对文件形式和二进制形式两种情况，类型结构可以在服务器端进行指定，具体形式为：</p>
		<p>文本形式：text/vnd.wap.wmlscript;</p>
		<p>二进制形式：application/vnd.wap.wmlscriptc。</p>
		<p>具体指定方法我们在第4章已经介绍过，这里不再重述。</p>
		<p>（2）大小写敏感。WMLScript1.1是一种大小写敏感的脚本语言。它所设计的各种关键字、变量和函数名都必须合理的使用大小写。</p>
		<p>（3）空格和换行。一般情况下，WMLScript程序值形式将忽略所有的空格、制表符合换行符等。但如果把这些特殊字符通过代码进行表述，或者作为字符串进行处理时，WMLScript将不再忽略它们。了如，字符串"Oct 28,2001"中含有空格，该空格在执行时就不会被忽略，它与不含空格的字符串"Oct28,2001"是不同的。</p>
		<p>（4）注释。与WML编程一样，在WMLScript脚本程序中也可以加入注释内容。注释内容不被程序执行，且注释不能嵌套。WMLScript的注释方法有两种：</p>
		<p>其一，行注释。即使用双斜行号（//）引导以一行内容,这一行内容全部作为注释内容。如：</p>
		<p>//这是以行注释，由双斜杠号开始到