注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

chunwaihome 的博客

 
 
 

日志

 
 

String Function  

2009-11-29 13:47:20|  分类: PowerPro |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
  • Case

語法:s = case(keyword,string)

keyword參數如下:

 Keyword

 例子

 說明

 Lower case ("lower", "AbcDEf") 將AbcDEf整個文字轉為小楷,得出結果"abcdef"
 upper case ("upper", "AbcDEf")  將AbcDEf整個文字轉為大楷,得出結果"ABCDEF"
 title case ("title", "each WORD capital") 將全部的首字符轉為大楷,得出結果"Each Word Captial"
 sentence case ("sentence", "Just the firST")  將全部文字轉為小楷,除了第一個文字的首字符轉為大楷,得出結果"Just the first"
 tonum case ("tonum", "abc")

將文字轉為十進制ACSII碼,得出結果為

97 98 99

;除了英文字串符外,您也可以用中文字來獲取它的ACSII碼

 tonumx case ("tonumx", "abc")

將文字轉為十六進制ACSII碼,得出結果為61 62 63

;至於如何將十進制的97轉為十六進制61,按此

 fromnum case ("fromnum", "97 98 99")  將文字的十進制ASCII碼轉為字符,得出結果為"abc"
 fromnumx  case ("fromnumx", "61 62 63")  將文字的十六進制ASCII碼轉為字符,得出結果為"abc"
 acronym timezone = "Easter Standard time"
case ("acronym", timezone)
只需所有文字的首字符,得出結果為"EST"

  •  Env

語法:s = env(string)

獲取"環境變數"值例如s = env("temp"),得出S變量值是C:\Documents and Settings\%username%\Local Settings\Temp

您也可以用*exec setenv envarname value命令設立"環境變數",注意此"環境變數"只能應用在powerpro中或經powerpro開啟的程序。例如

exec.setenv("pp",?"k:\Program Files\PowerPro")
var= env("pp")
do(var++"/pow_tmp.bmp")        ;這語句相等於do(?"k:\Program Files\PowerPro"++"/pow_tmp.bmp")

*Exec RefreshEnvironment命令則可以重新整理位於註冊表[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment]儲存的環境變數。因此您無需重新開機或登出,您設立的"環境變數"會馬上生效。

想了解更多環境變數按此

  •  Fill

語法:s = fill(string1,string2)

Combines two strings. Used to pad a number or string using a padding string. Creates a string of length no less than the first string with the ending characters set by the second number or string.

例子1

fill("0000",12)

結果為0012,數字12可以加双引號或者不加。

例子2

fill("0000","a")

結果為000a,a一定要加上双引號,否則結果將是"0000"。

例子3

fill("0000","abcde")

結果為abcde

  • Find & Revfind / Index & Revindex              ;find什麼啊,index囉

語法:n = find(string1,string2,start)

Find/index

Find指出string2在string1的Index位置,Index位置以左边0作開始,如果找不到的話,回返值是-1,大小楷是被忽略的。(Index of second string within first)

Index則以左边1作計算

例子1:

find( "to be or not to be", "be")                      / index( "to be or not to be", "be")

Find結果為3,Index結果為4

例子2:

  find( "to be or not to be", "br")                     / Index( "to be or not to be", "br")

Find結果為-1,Index結果為0。表示在"to be or not to be"中找不到br的意思

RevFind/Revindex

語法:revfind(string1,string2,start)

Rev是倒轉(reverse)的意思,所以我們可以將RevFind讀成Reverse Find。RevFind指出string2在string1的所在最後的位置,位置以左边0作計算。Index位置以左边0作開始,如果找不到的話,回返值是-1,大小楷是被忽略的。

(Index of second string within first.)

RevIndex則以左边1作計算

例子:

 revfind( "c:/path/to/filname.txt", "/")

結果為10,輸出最後一個/的Index。

  • Esc

語法:s = esc(?+string+,?+c+)  

Applies escape character(轉義字符) processing based on c to string.  That is, the characters of string are processed as if c is the escape character.  For example esc(?+a_line$n+,?+$+) replaces the $n by a newline.

例如:

 var = esc(?+a_line$nb_line+,?+$+)          ;將"$"暫時設為"轉義字符"來代替默認的"\"轉義字符

 var = esc(?"a_line$nb_line",?"$")

將$暫時設成轉義字符,$n將表示新一行的意思,相等於默認的"\n"。Var變量的輸出結果是

a_line

b_line

除了可以將符號轉為"轉義字符"外,您也可以將任何文字轉為"轉義字符",例如:

s = esc(?+a_linestring+,?+s+)

 將"s"暫時設為"轉義字符"來代替默認的"\"轉義字符,因此st表示空格的意思,相等於默認的"\t"。。

S變量的輸出結果是line ring

  •  Eval

語法:s = eval(string)

獲取string的expression值作進一步的處理,例如其中一個叫"Time"的Expression,它可以顯示當前時間,格式是

hhmmss,那我們運用eval將time Function視為一般數字作運算。例如

win.debug(eval(time) + 1000))

以上的語句相等於

Local s = eval(time)                 ;其實此語句也可以寫成Local s = time

win.debug(s+1000)

  • Join

 語法s = join(string1,string2)

連接string1和string2的字串符

s = join("abc","def")

相等於

s = "abc"++"def"

S變量的輸出結果是"abcdef"

  • Length

語法: s = length(string)

計算string字串符的長度,例如:

s= length("abc")

S變量的輸出結果是"3"

  •  line

語法:s = ling (string,n)

讀取string字串符的第n行的文字,而行的開首以1作開始。如果n是0的話,S變量將會得到string的總行數。例如:

s = esc(?"abc\ndef",?"\")              ;將"\"設為"轉義字符"

var = line(s,"1")

Var變量的輸出結果是"abc"

Var = line(s,"2")

Var變量的輸出結果是"def"

Var = line(s,"0")

Var變量的輸出結果是2,表示s總共有兩行。

  • Min and Max

語法:s = min(val1,val2)

s = min("a","b")                ;Minimum of two values

結果是a,因為a比b小。

s = max("a","b")                ;Maximum of two values

結果是b,因為b比a大。

s = max("var1",7)

  •  pickstring

語法:s = pickstring(lines,title)

pickstring("alpha\rbeta\rgamma\rdelta","greek to me")

顯示一對話框標題為"greek to me",主窗口包括四個項目分別是alpha,rbeta,rgamma,rdelta

String Function - Y偉 - chunwaihome 的博客

pickstring亦可以用expression作參數例如

  1. pickstring("allglobals,"pick a global variable")
  2. pickstring(alldesknames,"choose a desktop"
  3. pickstring(file.readall("c:/store/quoteslist.txt"),"choose a quotation")
  • Remove

語法:s = remove(string,number)

刪除n字數string的文字,左边以1開始作計算,-1表示以右边開始作計算。

例子:

remove("abcd",2)              ;刪除"abcd"首兩個字元

得出結果是cd

remove("abcd",-2)              ;刪除"abcd"尾兩個字元

得出結果是ab

  • Repeat

語法:s = repeat(string,n)

Returns string formed by repeating first argument n times

S回返值是string的n次數,n表示重覆的次數。例如:

s=repeat("abc",3)

結果是"abcabcabc"

  • Reverse

語法:s= reverse(string)

將string由最後位置到開首重新排列

Returns string with sequence of characters reversed.

s= reverse("abcde")

結果是"edcba"

  •  Rotate

語法:s= rotate(str,n,pre,min)

s= rotate("ppwork",2)

結果是"workpp"

  • Replacechars

語法: s= replacechars(string1,string2)

String2至少包括兩個字符,而String2的最後字符將會取代在string1之前的值。例如:

s=replacechars ("xxyxabc=", "x=z" )
Z取代string1的所有"x"和"=",S變量輸出結果是"zzyzabcz"

s = replacechars("stringfrom", "from", "to") 

S變量輸出結果是"stringto"

  • Slice/Select

語法:s= slice(string,number)

 Selects n characters from the start, end, or middle of a string.

如果括號裏只包括2個參數的話,Slice和Select的Indexes都是左边"1"作開首

slice("abcde",3)    or        select("abcde",3)         

 兩者的輸出結果都是"abc"

slice("abcde",-1)      or       select("abcde",-1) 

兩者的輸出結果都是"e"

如果括號裏包括3個參數的話,Slice的Index是左边以0作開始計算,Select則以左边1作開始計算

slice( "abcde" , 3,4)            輸出結果是"de"

select( "abcde" , 3,4)          輸出結果是"cd"

  • squeeze

語法:s = squeeze(str1, str2)

For characters in str2, replaces runs of two or more repeated characters in str1 by a single character

s=squeeze("abbbbbbjjjjgg","bj")

輸出結果是"abjgg"

如果str2被省略的話,命令會刪除所有在str1重覆的字元

s=squeeze("abbbbbbjjjjgg")

輸出結果結果是"abjg"

  •  Strcoll & Stricoll

語法:n = strcoll(str1,str2 )              ;Stricoll則忽略大小楷

Compares two strings using local collating sequence

str1=str2        結果是0

str1>str2        結果是1

str1<str2        結果是-1.

 

  • translate

語法:s = translate(string, from, to)

Each character in string is checked.  If the character occurs in the from string, it is replaced by the corresponding character in the to string.  If it does not occur in the from string, it is left unchanged.

translate("alphabeta", "abc", "xyz")

結果是xlphxyetx

  • trim

語法:s = trim(s1,out,n)

Removes characters in out from start or end of s1.  If n is 1, removes from start.  If 2, removes from end.  If 3, removes from start and end

trim ("astringa", "a ", n)                     ;n參數可以是1,2,3

trim ("astringa", "a ", 1)

輸出結果是"stringa"                           ;1表示清除out在s1開首的字元

trim ("astringa", "a ", 2)

輸出結果是"astring"                            ;2表示清除out在s1結尾的字元

trim ("astringa", "a ", 3)             

輸出結果是"string"                              ;3表示清除out在s1開首和結尾的字元

  •  Word and Nextword

語法:s = word(string,n,delims)

n= word(string,0,delims)

Word可以得出用delims分隔開第n個的文字,如果delims被省略的話,delims被假設為Blank或Tab,例如

s = word("aaa bbb ccc","2")

win.debug(s)

得出結果為bbb

n = word("aaa bbb ccc","0")

win.debug(n)

得出結果為3

  

  评论这张
 
阅读(1122)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017