当前位置:编程学习 > wap >>

第六章 WML Script标准函数库(上)

答案:这节会讨论标准的wml script函数库。
  6.1 wml script规则
  这些标准函数库提供一个扩展wml script语言的机制,这些特定的函数库必须遵循wml script的规则。
  支持的数据格式
  下面的wml script格式使用于程序的定义之中,这样能记录程序参数与回转值的格式。
  boolean
  integer
  float
  string
  invalid
  除此之外,如果整数与浮点数参数值格式都能接受的话,则能使用number来记录参数格式,如果使用的格式是所支持的格式,则能用any来记录。
  数据格式转换
  函数库程序发生错误的处理方式和wml script语言一样。
  invalid程序参数会产生invalid的回传值。
  程序的参数无法转成所需要使用参数格式,则会产生invalid的回传值。
  与程序相关的错误得出回传一个适当的错误码,至于这个值就要看每个程序如何定义。
  6.2 lang函数库
  名称:lang
  说明:这个函数库所含的程序同wml script语言的核心有很密切的关系。
  abs
  程序:abs(value)
  说明:回传给予数的绝对值。
  如果给予的数是整数,则回传整数。
  如果给予的数是浮点数,则回传浮点数。
  参数:value=数字。
  回传值:数字或invalid。
  例外状况:var a =-3;
  var b =lang.abs(a);//b=3
  min
  范例:var a = -3
  var b = lang.abs(a);
  var c = lang.min(a.b);
  var d = lang.min(45、76.3);//d=45(ingteger)
  var e = lang.min(45、76.3);//e=45(ingteger)
  max
  程序:max(value1,value2)
  说明:回传值给予的两个数之间的较大值,回传的值于格式同所选数值的值与格式相同,其选取的方式如下:
  wml script运算符数据格式的整数与浮点数转换法则可用来确认数据格式,以便执行比较的动作。
  参数:value1 =数字
  value2 =数字
  回传值:数字或invalid
  例外状况:无
  范例:var a =-3;
  var b =lang.abs(a);//b=3
  var c = lang.min(a.b);
  var d = lang.min(45、76.3);//d=45(ingteger)
  var e = lang.min(45、76.3);//e=45(float)
  parseint
  程序:parseint(value)
  说明:回传由字符串value所定义的整数值,合法的整数语法由wml script数值字符串文法或是近值整数是字所界定,下列为额外的解析法则:
  第一个字符不是由+、-或十进制数字当开头的话,解译结束。
  结果:解析过的字符串回转换整数值。
  范例:var i =lang.parseint("1234"); // i=1234
  var j =lang.parseint("100 m/s"); // j=100
  parsefloat
  程序:parsefloat(value)
  说明:回传由字符串value所定义的浮点数值,合法的浮点数语法由wml script数值字符串文法或是近值整数实字所界定,下列为额外的解析法则:
  第一个字符无法解析成浮点数表达式,解析结束。
  结束:解析过的字符串回转换成浮点数。
  参数:value=字符串
  回传值:浮点数或invalid
  例外状况:解析错误则传回invalid
  范例:var a =lang.parsefloat("123.7 hz"); // a=123.7
  var b =lang.parsefloat("7.34e2 hz"); // b=7.34e2
  var c =lang.parsefloat("70.0e-2 f"); // c=70.0e-2
  var d =lang.parsefloat("-1.c"); // d=0.1
  var e =lang.parsefloat("100"); // e=100.0
  var f =lang.parsefloat("number:5.5"); // f=invalid
  var g =lang.parsefloat("7.3e meters"); // g=invalid
  var h =lang.parsefloat("7.3e- m/s"); // h=invalid
  isint
  程序:isint(value)
  说明:如果各预的值value能使用parseint(value)转成整数则回传布尔值ture,否则传回false。
  参数:value=任意值
  回传值:布尔值或invalid
  例外状况:无
  范例:var a=lang.inint("-123"); //ture
  var a =lang.minint("123.33"); //ture
  var a =lang.minint("string"); //false
  var a =lang.minint("#123"); //false
  var a =lang.minint("invalid"); //invalid
  isfloat
  程序:isfloat(value)
  说明:如果各预的值value能使用parseint(value)转成整数则回传布尔值ture,否则传回false。
  参数:value=任意值
  回传值:布尔值或invalid
  例外状况:无
  范例:var a=lang.inint("-123"); //ture
  var a =lang.minint("123.33"); //ture
  var a =lang.minint("string"); //false
  var a =lang.minint("#123"); //false
  var a =lang.minint("invalid"); //invalid
  maxint
  程序:maxint()
  说明:传回最大的整数值。
  参数:无
  回传值:整数2147483647
  例外状况:无
  范例:var a =lang.minint();
  minint
  程序:minint()
  说明:传回最小的整数值
  参数:无
  回传值:整数-2147483647
  例外状况:无
  范例:var a =lang.minint();
  float
  程序:float()
  说明:如果有支持浮点数的话传回ture,没有的话传回false。
  参数:无
  回传值:布尔值
  例外状况:无
  范例:var floatssupported = lang.float();
  exit
  程序:exit(value)
  说明:结束wml script位码的解译然后回到调用wml script解译器者的控制,并回传指定值value,你可以使用这个程序来执行由一般程序的结束,而且wml script位码的执行必须停止。
  参数:valre=任意值
  回传值:无,这个程序结束解译
  例外状况:无
  范例:lang.exit("value:" + myval);//returns a string
  lang,exit(invalid);// returns invalid
  abort
  程序:abort(errordescription)
  说明:中止wml script位码的解译然后回到调用wml script解译器者的控制,并回传errordescription,你能使用这个程序执行不正常的中止,调用程序者检测到有严重错误,wml script的执行并须中断。
  如果errordescription的格式为invalid,字符串invalid用代替errordescription的使用。
  参数:errordescription =字符串
  回传值:无,这个程序结束解译
  例外状况:无
  范例:lang.abort("error:" + errval); // error value string
  radndom
  程序:random(value)
  说明:回传一个正数的整数值,也就是说要大于或等于零,但必须要小于给定值value,回传值是由近是正常分布所随机选取的值。
  

[page_break] 参数:value=整数
  回传值:整数或invalid
  例外状况:如果value等于0,则程序回传0
  如果value小于0,则程序回传invalid
  范例:var a =10;
  var b =lang.random(5.1)*a;//b=0..50
  var c = lang.random("string"); // c=invalid
  reed
  程序:seed(alue)
  说明:初始化需随机数字顺序并回传一个空字符串
  如果value为0或正整数,给予的value则用来初始化,反之则使用随机初始化的值。
  如果value为浮点数,则会先使用float.int()来计算确切的整数值。
  参数:value=整数
  回传值:字符串或invalid]
  例外状况:无
  范例:var a =lang.reed(123);// a=""
  var b =lang.random(20); // b=0..20
  var c = lang.seed("seed"); // c=invalid (random seed //left unchanged)
  characterset
  程序:characterset()
  说明:回传wml script解译器所支持的字集,回传只是个整数用来记录由iana所设定的mib enum值,这个只能表示所有的字集。
  参数:无
  回传值:整数
  例外状况:无
  范例:var charset = lang.characterset(); //charset = 4 for latinl

  6.3 float函数库
  名称:float
  说明:这个函数库包含了典型与常用的浮点数算术程序。
  int
  程序:int(value)
  说明:回传给予值的整数部分。
  参数:value=数字
  回传值:整数或invalid
  例外状况:无  范例:var a =3.14;
  var b =float.in(a); //b=3
  var c =float.in(-2.8); //c=-2
  floor
  程序:floor(value)
  说明:回传整数值,这个只要最接近给予值但不能大于它。
  如果value已经是个整数,其结果就是这个值本身。
  参数:value=数字
  回传值:整数或invalid
  例外状况:无
  范例:var a =3.14;
  var b =float.in(a); //b=3
  var c =float.in(-2.8); //c=-3
  ceil
  程序:ceil(value)
  说明:回传一个只要最接近给予值但不能小于它的整数值。
  如果value已经是个整数,其结果就是这个值本身。
  参数:value=数字
  回传值:整数或invalid
  例外状况:无
  范例:var a =3.14;
  var b =float.in(a); //b=4
  var c =float.in(-2.8); //c=-2
  pow
  程序:pow(x,y)
  说明:回传x的y次方值。
  如果x是负数,则y必须为正数。
  参数:x=数字
     y=数字
  回传值:浮点数或invlid
  例外状况:如果x= =0而且y<0,则回传invalid
  如果x<0而且y不是个整数,则回传invalid
  范例:var a =3
  var b =float.pow(a,2); //b=9
  round
  程序:round(value)
  说明:传回最接近给予值的整数
  若两个整数值跟value接近的程序相等,则选择比较大的数。
  若value已经是个正数,其结果就是value本身。
  参数:value=数字
  回传值:整数或invalid
  例外状况:无
  范例:var a=float.round(3.5);// a=4
  var b=float.round(-3.5); //b=-3
  var c=float.round(0.5);// c=1
  var d=float.round(-0.5); //d=0
  squt
  程序:sqrt(value)
  说明:传回给予值value的平方根近似值。
  参数:value=浮点数
  回传值:浮点数或invalid
  例外状况:如果value负数,则回传invlid
  范例:var a=4;
  var b=float.squt(a); //b=2.0
  var c=float.squt(5); //c=2.2360679775
  maxfloat
  程序:maxfloat()
  说明:传回ieee 754所支持的但准浮点数格式中最大的浮点数值。
  参数:无
  回传值:浮点数3.40282347e+38
  例外状况:无
  范例:var a=float.maxfloat();
  minfloat
  程序:minfloat()
  说明:传回ieee 754所支持的但准浮点数格式中最小的浮点数值。
  参数:无
  回传值:浮点数1.17549435e-38
  例外状况:无
  范例:var a=float.minfloat();
  6.4 string函数库
  名称:字符串
  说明:这个函数库包含了字符串程序的集合,一个字符串可以是字符数组,每个字符都有个索引,字符串的第一个字浮的索引为0,字符串的长度是字符在数组中的数目。
  你能使用一些特殊的分隔符号来界定不同的字符串,这样你就能存取这些有分隔符号予元素索引所界定出的元素,字符串中第一个元素的索引值为0,每个字符串分隔符号回分隔出两个元素,但字符是不能用来做分隔符号。
  一个空格的字符可能是下列字符其中之一:
  tab:水平跳格定位(horizontal tabulation)
  vt:垂直跳格定位(ertival tabulation)
  ff:跳页(from feed)
  sp:空格(space)
  lf:跳行(line feed)
  cr:归位(carriage return)
  length
  程序:length(string)
  说明:传回给予字符串的长度(字符的数目)。
  参数:string=字符串
  回传值:整数或invalid
  例外状况:无
  范例:var a="abc";
  var b=string.length(a); //b=3
  var c=string.length(""); //c=0
  var d=string.length(342); //d=3
  is empty
  程序:is empty(string)
  说明:如果字符串长度为零则传回布尔值true,反之传回false。
  参数:string=字符串
  回传值:布尔值或invalid
  例外状况:无
  范例:var a="hello;
  var b="";
  var c=sting.isempty(a); //c=false
  var c=sting.isempty(b); //d=ture
  var c=sting.isempty(ture); //e=false
  charat
  程序:charat(sting.index)
  说明:回传string中index值所指定的字符。
  参数:string=字符数
  index=数字(回传回index所指定的字符)
  回传值:字符串或invalid
  例外状况:如果index的值超过字符串的范围,则回传空字符串("")
  范例:var a="my name is joe"
  var b=sting.charat(a,0); //b= "m"
  var c=sting.charat(a,100); //c= ""
  var d=sting.charat(34.0); //d="3"
  var e=sting.charat(a,"first"); //e=invalid
  substring
  程序:substring(string,startindex,length)
  说明:传回一个新的字符串来代替所给予的字符串,这个新字符串给定的索引值开始,它的长度有所给予的length决定。
  如果startindex小于0,则会0来当作索引值。
  如果length大于剩余字符的数目,则lenght会由剩余的字符数来代替。
  如果startindex予lenght是浮点数,则会先使用floa

上一页  [1] [2] [3] [4]  下一页

[page_break] t.int()来计算正确的整数值。
  参数:string=字符数
  startindex=数字
  lenght=数字
  回传值:字符串或invalid
  例外状况:如果startindex大于最后的索引值,则回传会空字符串("")
  如果lenght<=0,传会空字符串("")
  范例:var a="abcd";
  var b=string.substring(a,1,2); //b="bc"
  var c=string.substring(a,2,5); //c="cd"
  var d=string.substring(1234,0,2); //d="12"
  find
  程序:find(string,substring)
  说明:传会所要寻找的字符串substring和原始字符串string相符的第一个字符的索引值。
  如果没有相符,则传会整数值-1。
  两个字符传如果是相等的话,是定义为不符合。
  参数:string=字符串
  substring=字符串
  回传值:整数或invalid
  例外状况:无
  范例:var a="abcde";
  var b=string.find(a,"cd"); //b=2
  var c=string.find(34.2,"de"); //c=-1
  var d=string.find(a,"gz"); //d=-1
  var e=string.find(34,"3"); //e=0
  replace
  程序:eplace(tring,oldsubstring,newsubstring)
  说明:传会新字符串,这个新字符串是由和所给予字符串string相符的旧字符传oldsubstring使用新字符串newsubstring字符串加以代替。如果两字符串相等的话,定义为相符。
  参数:string=字符串
  oldsubstring=字符串
  newsubstring=字符串
  回传值:字符串或invalid
  例外状况:无
  范例:var a="hello joe.what is up joe?";
  var newname="don";
  var oldname="joe";
  var c=string.replace(a,oldname,newname); //c="hello don.what is up don?"
  var d=string.replace(a,oldname,newname); //c="hello don.what is up don?"
  element
  程序:element(string,separator)
  说明:回传分隔符号separator所分隔的字符串string的元素数目,空字符串("")是有效的元素,这表示了这程序永远不会回传一个小于或等于0得值。
  参数:string=字符串
  separator=字符串
  回传值:整数或invalid
  例外状况:如果separator是个空字符串,则回传invalid
  范例:var a="my name is joe;age 50";
  var b=string.elements(a,"");//b=6
  var c=string.elements(a,";");//c=3
  var d=string.elements("",";");//d=1
  var e=string.elements("a","");//e=1
  var f=string.elements(";",";");//f=2
  var g=string.elements(";;,;",";,");//g=4
  separator=;
  elementat
  程序:elementat(string,index,separator)
  说明:寻找字符串string的第index个元素,这些元素是由分隔符号separator所加以分开,并回传相对应的元素。
  如果index值小于0,则回传第一个元素。
  如果index值大于元素的数目,则回传最后一个元素。
  如果字符串为空字符串,则回传空字符串。
  如果index值为浮点数,则须先使用float.int()来计算出正确的索引值。
  参数:string=字符串
  index=数字
  separator=字符串
  回传值:字符串或invalid
  例外状况:如果separator是个空字符串,则回传invalid
  范例:var a="hello joe.what is up joe?";
  var b=string.elementat(a,0,""); //b="my"
  var b=string.elementat(a,14,";"); //c=" "
  var b=string.elementat(a,1,";"); //d="age 50"
  removeat
  程序:removeat(string,index,separator)
  说明:将符合索引值index的分隔号separator与元素有字符串string中移出,并回传这个新字符串。

  如果index值小于0,则回传第一个元素。
  如果index值大于元素的数目,则回传最后一个元素。
  如果字符串为空字符串,则回传空字符串。
  如果index值为浮点数,则须先使用float.int()来计算出正确的索引值。
  参数:string=字符串
  element=字符串
  index=数字
  separator=字符串
  回传值:字符串或invalid
  例外状况:如果separator是个空字符串,则回传invalid
  范例:var a=" a a;b c d";
  var s= "";
  var c=string.removeat(a,1,s); //b="a b c d"
  var d=string.removeat(a,0,";"); //c=" b c d"
  var e=string.removeat(a,14,";"); //d="a a"
  replaceat
  程序:replaceat(string,index,separator)
  说明:在特定的index中的元素,使用所给予的元素element来代替,并回传这个新字符串。
  如果index值小于0,则回传第一个元素。
  如果index值大于元素的数目,则回传最后一个元素。
  如果字符串为空字符串,则回传空字符串。
  如果index值为浮点数,则须先使用float.int()来计算出正确的索引值。
  参数:string=字符串
  element=字符串
  index=数字
  separator=字符串
  回传值:字符串或invalid
  例外状况:如果separator是个空字符串,则回传invalid
  范例:var a= "b c; e";
  var s="";
  var d=string.replaceat(a,"a",0,s); //b="a c;e"
  var e=string.replaceat(a,"f",5,";"); //d="b c;f"
  insertat
  程序:insertat(string,index,separator)
  说明:将元素element与相对应的分隔符号separator插入与原始字符串string,在特定的element中的元素
  如果index值小于0,则0会用来当索引值。
  如果index值大于元素的数目,则元素element会附加上字符串string的为端。
  如果字符串string为空字符串,则回传包含所给予元素element的新字符串。
  如果index值为浮点数,则需先使用float.int()来计算出正确的索引值。
  参数:string=字符串
  element=字符串
  index=数字
  separator=字符串
  回传值:字符串或invalid
  例外状况:如果separator是个空字符串,则回传invalid
  范例:var a= "b c; e";
  var s="";
  var b=string.insertat(a,"a",0,s); //b="a b c;e"
  var c=string.insertat(a,"x",3,s); //c="b c;e x"
  var d=string.insertat(a,"d",1,";"); //d="b c;d;e"
  var e=string.insertat(a,"f",5,";"); //e="b c;e;f"
  squeeze
  程序:squeeze(string)
  说明:将字符串string中所有连续的空格减少为一个空格。
  参数:stromg=字符串
  回传值:字符串或invalid
  例外状况:无
  范例:var a="hello";
  va

上一页  [1] [2] [3] [4]  下一页

[page_break] r b="bye jon.see you!";
  var c=string.squeeze(a); //c="hello"
  var d=string.squeeze(b); //d="bye jon.see you!"
  trim
  程序:trim(string)
  说明:将字符串string中所有开头与连续的空格删除。
  参数:string=字符串
  回传值:字符串或invalid
  例外状况:无
  范例:var a="hello";
  var b="bye jon.see you!";
  var c=string.squeeze(a); //c="hello"
  var d=string.squeeze(b); //d="bye jon.see you!"
  compare
  程序:compare(string,string2)
  说明:这个程序的回传值会指出string1与string2在语汇上关系,这个关系是基于自然字集的字符码之间,其回传值如下:
  如果string1小于string2,传会-1。
  如果string1等于string2,传会-1。
  如果string1大于string2,传会-1。
  参数:string1=字符串
  string2=字符串
  回传值:整数或invalid
  例外状况:无
  范例:var a="hello";
  var b="hello";
  var c=string.compare(a,b); //c=0
  var d=string.compare("bye","jon"); //d=-1
  var e=string.compare("jon","bye"); //e=1
  tostring
  程序:tostring(value)
  说明:回传一个能表示所给予的值value的字符串,这个程序跟wml script的转换是一样的,除了invlaid值会回传一个"invalid"字符串。
  参数:value=任意值
  回传值:字符串
  例外状况:无
  范例:var a=string.tostring(12); // a="12"
  var a=string.tostring(true); // b="true"
  format
  程序:format(format,value)
  说明:将给予的值value转换成字符串,并依照所给予的格式format提供的格式化的字符串,这个格式字符串只能由一种特定格式,并能放置于字符串的任何地方,如果超过一种以上的格式需要使用,则能会使用最左边的格式,至于其他格式则有空字符串代替,这些格式如下:
  [width][.precision]type
  width参数为非负的是近制整数,这个参数控制与显现字符的最小数目,如果输出的字数小于指定的宽度width,则会在字符串的左边加上空白,直到符合最小宽度的要求,width参数永远不会是值value被删减,如果输出的字数大于特定的宽度或并没指定宽度的话,value中所有的字符都会被显现。
  precision参数是个非负的十进制整数,这个引号之前必须限价上(.)的符号,其目的是用来设定输入值的精确度,这个值的解议会跟给予的格式有关:
  d 界定数字最小的显现数目,如果value中数字的数目超过precision的值,输入值会在其左边加上0,如果数字的数目超过precision值,value的值并不会被删减,预设的precision值为1,如果precision值设定为0,而且value页被转换成0,则结果将是一个空字符串。
  f 界定十进制小数后的数字数目,如果十进制的小数点出现了,在小数点之后至少要有一位数,这个值会被四舍五入到近似的数字数值,预设的precision为6,如果precision为0或小数点(.)后没有数字,则不会显现小数点,当value值的小数点后数字数目小于precision的值,字母0为被加入直到填满栏位(如:string.format("%2.3f",1.2)会是"1.200")
  s 界定字符所要显现的最大数目,预设值是显现所有的字符,当width值大于precision值,width值是可以忽略的,跟width值不同的是,precision只可能会造成浮点数值的四舍五入或输入值的删减。
  type参数是唯一格式的参数,他出现在任何的格式栏为选项之后,type字符决定了所给予的value将会解译成整数,浮点数或字符串,支持的type参数如下:
  d 整数:输入值的格式[-]dddd,这里的dddd是一个或以上的十进制数字。
  f 浮点数:输入值的格式[-]dddd.dddd,这里的dddd是一个或以上的十进制数字,在小数点之前的数字数目和数字的大小有关,小数点之后的数字数目和精确度有关。
  s 字符串:字符的显现跟精确度有关。
  百分比字符(%)在格式字符串中能使用额外的百分比字符加以表示(%%)。
  参数:format=字符串
  value=任意值
  回传值:字符串或invalid
  例外状况;无效的格式会回传invalid值。
  范例:var a=45;
  var b=-45;
  var c="now";
  var d=1.2345678;
  var e=string.format("e:%6d",a); //e="e:45"
  var e=string.format("%6d",b); //f="-45"
  var e=string.format("e:%6d",a); //g="0045"
  var e=string.format("%6.4d",b); //h="-0045"
  var e=string.format("do it %s",c); //i="do it now"
  var e=string.format("%3f",d); //j="1.2345678"
  var e=string.format("%10.2f%%",a); //k="1.23%."
  var e=string.format("%3f %2f",a); //l="1.234567."
  var e=string.format("%.0d",0); //m=""
  var e=string.format("%.7d","int"); //n="invalid"
  var e=string.format("%s",ture); //o="ture"

上一页  [1] [2] [3] [4] 

上一个:基于蓝牙的WAP解决方案
下一个:第五章 WMLScript脚本程序设计(下)

更多图片编程知识:
更多wap疑问解答:
新人求助QPainter
为什么程序都退出了还可以收到推送?如果大多设备都可以推送那运营商怎么办?
qt 4.7 sqlserver2000 存储过程调用
关于ANDROID4.0.1编译问题!
Android FrameBuffer读屏幕30秒后mmap失败
联通粗定位用java程序如何来请求和接受数据
为什么QT运行Android平台的程序时,mouseMoveEvent事件响应的间隔时间很长??????????
android与PC蓝牙通讯
指定大小的label 内容可变,如果内容超出label的宽度,将未能显示的部分显示在另一个label上
Android调试
android如何通过wifi连接无线打印机
运行程序,release目录下产生一个乱码文件夹
分享个某机构最新安卓资料,自己验证了
service启动不起来,掉不了service connection
求助:QT5.0 没有QPrinter吗
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,