亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 媒體動畫 > 正文

Authorware基礎教程:authorware7程序設計基本的教學文章--字符串處理

2024-09-08 19:26:44
字體:
來源:轉載
供稿:網友

3.4.1  特殊字符

字符“/”是轉義符,用于轉換一些特殊字符的含義。這些特殊字符有:

1."

字符“ " ”用于標識字符串的開始和結尾。要使該字符在一個字符串中作為普通字符出現,則需要在它前面加一個字符“ / ”。例如要在一個字符串中包含以下內容:

"tom"是一個男孩的名字

則必須將該字符串描述為:

string:= "/"tom/"是一個男孩的名字"

如圖3-33所示。

 

圖3-33  顯示雙引號

2./

如果需要【演示】窗口中顯示出字符“ / ”,也必須使用轉義符,例如要在字符串中包括一個合法的路徑:

c:/program files/macromedia/authorware 7

則必須將路徑字符串描述為:

"c://program files//macromedia//authorware 7"。

3.r

如果需要在字符串中包含回車符,可以向字符串中插入“/r”或系統變量return(兩者作用相同)。例如字符串變量

string:= "authorware 7"^return^"is"^"/r"^"coming"

嵌入文本對象之后的顯示結果如圖3-34所示。

圖3-34  在字符串中插入回車符

4.t

如果需要在字符串中包含制表符,可以向字符串中插入“/t”或系統變量tab。

5.{ }

字符“{}”可以在字符串中直接使用。但如果需要在文本對象輸入并顯示該字符,必須以“/{”方式輸入,否則authorware會認為包含在花括號之中的內容是一個表達式并對其進行計算。

3.4.2  行與段落

通過使用行分隔符“/r”,在一個字符串變量中可以包含多行字符。但是在字符串變量作為文本對象顯示在【演示】窗口中時,情況會產生一些微妙的變化。

在文本對象中,由"/r"分隔的內容稱為段落(paragraph)。如果文本對象的寬度不足以將段落內容顯示在同一行(line)上,段落被自動分別多行顯示,此時字符串變量中的行與文本對象中的行就失去了對應關系。

例如在變量string中含有以下內容:

"authorware is the leading visual authoring tool for creating rich-media e-learning applications for delivery on corporate networks, cd/dvd, and the web./rdevelop accessible applications that comply with learning management system (lms) standards. "

將string嵌入到文本對象中之后,其顯示結果如圖3-35所示。原先僅僅2行的內容在文本對象中被劃分為2段共6行。單擊“web”這一單詞,然后在【變量】面板窗口中觀察系統變量lineclicked和paragraphclicked的值,可以發現authorware認為當前被單擊的行是第4行,被單擊的段落是第1段。但是無法通過函數getline(string, 4)得到任何內容,因為authorware認為變量string中僅僅包含2行內容。

 

圖3-35  【演示】窗口中的文本對象

理解這一點對于利用文本對象開展與用戶之間的交互過程是至關重要的。

在aws中,對行的處理方式非常靈活。通過定義新的行分隔符,可以將同一行中的字符劃分為邏輯上不同的行。例如變量string中包含了位于同一行中的兩句問候語:

"what's your name ? how old are you ?"

將字符"?"定義為新的行分隔符,就可以從邏輯上將該字符串劃分為2行,通過函數getline(string,2,2,"?")可以獲取第2句問候語的內容"how old are you"。

3.4.3  構造字符串處理過程

3.4.3.1  常用字符串處理函數

aws提供的character類系統函數主要用于對字符串進行處理,以下對其中一些常用函數進行簡要介紹。

1.char(key)

返回ascⅱ碼(數值key)對應的字符。例如char(65)返回"a",char(97)返回"a"。大寫英文字母的ascⅱ碼范圍是65至90,小寫英文字母的ascⅱ碼范圍是97至122。

2.charcount("string")

返回字符串string包含的字符個數。

3.code("character")

返回與指定字符對應的ascⅱ碼,例如code(" ")返回空格的ascⅱ碼32。參數character可以是字符,也可以是鍵名。如果是鍵名,例如tab或enter,則不使用雙引號。

4.find("pattern", "string")

在字符串string中查找pattern指定的字符串,并返回第一個被匹配字符串的首字符在string中的位置。如果pattern指定的字符串未被找到,該函數返回0。例如查找路徑字符串中的字符“/”,可以使用:

result:= find("http:////", "c://windows//system32")              --變量result的值為3

該函數嚴格區分大小寫,并且支持使用通配符:"*"代表0個或多個字符,"?"代表單個字符,"/"代表轉義符。如果需要針對通配字符進行查找,必須使用轉義符,例如:

result:= find("/?", "what's your name ? how old are you ?")  --變量result的值為18

5.rfind("pattern", "string")

與函數find功能相似,但是查找方向是從右向左。例如

result:= find("http:////", "c://windows//system32")              --變量result的值為11

result:= find("/?", "what's your name ? how old are you ?")   --變量result的值為36

6.getline("string", n [, m, delim])

返回字符串string中的第n行(或第n行到m行)的內容。return(回車)是默認的行分隔符,但可以通過參數delim重新指定行分隔符。

7.getword(n, "string")

返回字符串string中第n個單詞。由空格、回車、tab分隔的字符串被authorware認為是單詞。例如

result:= getword(2, "what's your name ? ")             --變量result的值為"your"

8.linecount("string" [, delim])

返回字符串string中的總行數,其中不包含字符串尾部的空行。return(回車)是默認的行分隔符,但可以通過參數delim重新指定行分隔符。

9.lowercase("string")

返回與string對應的字符串,其中所有字母全部轉換為小寫字母。例如

result:= lowercase ("what's your name ?")    --變量result的值為"what's your name ?"

10.string(value)

將value從當前數據類型轉換為字符串類型。例如

result:= string(65)                                   --變量result的值為"65"

11.substr("string", first, last)

返回字符串string的部分內容,起始位置和結束位置由參數first和last指定。例如

result:= substr ("what's your name ?", 8, 11)          --變量result的值為"your"

12.uppercase("string")

返回與string對應的字符串,其中所有字母全部轉換為大寫字母。例如

result:= uppercase ("what's your name ?") --變量result的值為"what's your name ?"

13.wordcount("string")

返回字符串string中包含的單詞總數。例如

result:= wordcount("what's your name ?")          --變量result的值為4

3.4.3.2  常用字符串處理過程

以下介紹由這些字符串處理函數構造的常用字符串處理過程,代碼的注釋部分解釋了相應程序語句的作用。

1.reverse:反轉字符串

以下過程將變量string中的字符順序進行反轉。

string:="authorware 7 is coming"

reverse:=""                                            --用于存放反轉后的字符串

repeat with i:=1 to charcount(string)         --根據字符串中的字符數量開展循環

--從源字符串左側開始處理字符,最左側的字符放在目標字符串的最右側

  reverse:=substr(string, i, i)^reverse           

end repeat

上述語句執行之后,變量reverse的值為:"gnimoc si 0.7 erawrohtua"。本過程同樣適用于中文字符串。

2.wordreverse:反轉單詞順序

以下過程將變量string中的單詞順序進行反轉。

wordreverse:=""                                      --用于存放反轉后的字符串

repeat with i:=1 to wordcount(string)               --根據字符串中的單詞數量開展循環

--從源字符串左側開始處理單詞,最左側的單詞放在目標字符串的最右側

 wordreverse:=getword(i, string)^" "^wordreverse

end repeat

--去除字符串末尾多余的空格

wordreverse:=substr(wordreverse, 1, charcount(wordreverse)-1)

上述語句執行之后,變量wordreverse的值為:"coming is 7.0 authorware"。

3.sortchar:字符排序

以下過程將變量string中的字符以升序進行排序。

string:="authorware 7 is coming"

charlist:=[]         --用于存放單獨的字符,便于利用sortbyvalue()函數進行排序

sorted:=""             --用于存放排序后的字符串

ascending:=true  --用于決定采用升序或降序排序

repeat with i:=1 to charcount(string)

--將字符串中的每個字符分別存放在不同的列表元素中

    addlinear(charlist, substr(string, i, i))

end repeat

sortbyvalue(charlist ,ascending)             --對列表元素進行排序

repeat with i:=1 to charcount(string)

    sorted:=sorted^charlist[i]              --將排序后的列表元素連接成為字符串

end repeat

上述語句執行之后,變量sorted的值為:"   .07acaeghiimnoorrstuw"。如果將變量ascending賦值為false,則上述過程將變量string中的字符以降序進行排序。

4.casereverse:反轉字母大、小寫狀態

以下過程將變量string中的大寫字母轉換為小寫字母,小寫字母轉換為大寫字母。

string:="authorware 7 is coming"

casereverse:=""         --用于存放轉換后的字符串

repeat with i:=1 to charcount(string)

--以下三行內容屬于同一行程序代碼,根據每個字符的ascⅱ碼判斷是否進行大

--小寫轉換。大寫字母的ascⅱ碼范圍是65~90,小寫字母的ascⅱ碼范圍是97~122

casereverse:=casereverse^test(code(substr(string, i, ﹁

i))>64&code(substr(string, i, i))<91, lowercase(substr(string, i, ﹁

i)), (test(code(substr(string, i, i))>96& ﹁

code(substr(string, i, i))<123, uppercase(substr(string, i, i)),substr(string, i, i))))

end repeat

上述語句執行之后,變量casereverse的值為:"authorware 7 is coming"。

5.encode:字符串加密

以下過程將變量string中的字符串進行簡單加密。加密原理是:依次獲取每個字符的ascⅱ碼字符串,并利用reverse過程反轉ascⅱ碼中的數值順序。例如字符"a"的ascⅱ碼字符串是"65",經反轉之后得到字符串"56"。

string:="authorware 7 is coming"

encode:=""                                              --用于存放加密后的字符串

repeat with i:=1 to charcount(string)

  ascii:=string(code(substr(string, i, i)))

--以下通過reverse過程,反轉ascⅱ碼中的數值順序

  reverse:=""

  repeat with j:=1 to charcount(ascii)

    reverse:=substr(ascii, j, j)^reverse

  end repeat

  encode:=encode^reverse^" "   --將反轉后的ascⅱ碼以空格分隔,連接成為字符串

end repeat

上述語句執行之后,變量encode的值為:"56 711 611 401 111 411 911 79 411 101 23 55 64 84 23 501 511 23 76 111 901 501 011 301 "。在aws中單個變量最多可存儲512k個字符,因此加密過程可以對長達128k的字符串進行加密。

6.decode:字符串加密

以下過程將變量encode中的字符串(由上述加密過程形成)進行解密。解密是加密的逆過程,例如將字符串"56"反轉之后得到字符串"65",再由"65"得到字符"a"。以下過程同樣利用了reverse過程。

decode:=""                                              --用于存放解密后的字符串

--根據加密字符串中的反轉ascⅱ碼數量開展循環

repeat with i:=1 to wordcount(encode)

    ascii=getword(i, encode)

--以下通過reverse過程,得到正確的ascⅱ碼

    reverse:=""

    repeat with j:=1 to charcount(ascii)

      reverse:=substr(ascii, j, j)^reverse

    end repeat

    decode:=decode^ char(reverse)

end repeat

上述語句執行之后,變量decode的值為:"authorware 7.0 is coming "。

上述過程全部以代碼片段的形式保存在chapter03文件夾下的ece7.xml文件中。讀者可以打開該文件,如圖3-36所示,將其中的代碼片段復制到自己的ece7.xml文件中(它通常位于c:/documents and settings/<用戶名>/application data/macromedia /authorware 7路徑中)。讀者也可以直接使用光盤中的ece7.xml文件替換自己的ece7.xml文件,并取消文件的只讀屬性,在此之前請做好ece7.xml文件的備份工作,這樣在authorware 7.0中就可以通過插入代碼片段的方式使用這些過程,如圖3-37所示。在使用代碼片段時,需要創建在上述過程中以粗體表示的自定義變量。

圖3-36  ece7.xml中的自定義過程

圖3-37  自定義代碼片段

可以將平時經常使用的過程都創建為代碼片段。這樣在以后的設計過程中,就不必重復輸入大量相同或相似的內容,從而可以有效地提高工作效率。但代碼片段通常只是一段代碼的框架,在插入到運算窗口中后還需要進行完善(例如創建或重新命名變量,避免和程序中已有的變量發生沖突)。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品91久久久| 国产精品久久久久77777| 欧美日韩亚洲一区二区三区| 久久伊人精品一区二区三区| 亚洲成人精品久久久| 日韩精品视频在线免费观看| 国产精品成人一区二区三区吃奶| 日韩精品视频在线播放| 国产精品亚洲视频在线观看| 欧美小视频在线观看| 亚洲精品视频网上网址在线观看| 国产成人在线播放| 少妇高潮 亚洲精品| 在线国产精品播放| 久久国产精彩视频| 精品视频在线播放| 日韩美女av在线| 欧美高清在线视频观看不卡| 国产精品青草久久久久福利99| 亚洲国产欧美一区| 国产在线精品成人一区二区三区| 久久99久久久久久久噜噜| 欧美一区二区影院| 欧美日韩一区二区三区| 欧美最猛性xxxx| 欧美极品美女视频网站在线观看免费| 色偷偷亚洲男人天堂| 成人国产精品日本在线| 538国产精品一区二区在线| 欧美国产视频一区二区| 麻豆国产精品va在线观看不卡| 国产一区二区三区18| 亚洲视频在线播放| 日韩精品欧美激情| 精品国产999| 蜜臀久久99精品久久久无需会员| 色综合色综合网色综合| 亚洲精品91美女久久久久久久| 九九精品在线视频| 91中文字幕一区| 中文字幕在线国产精品| 精品美女永久免费视频| 亚洲女人天堂视频| 欧美视频一二三| 久久这里有精品| 538国产精品一区二区在线| 日韩成人av在线播放| 久久久久久久成人| 国产精品美女www爽爽爽视频| 国产69久久精品成人看| 91久久久久久| 国产精品三级网站| 久久久久国产精品免费网站| 亚洲国产精品一区二区久| 亚洲欧洲日产国码av系列天堂| 综合激情国产一区| 久久午夜a级毛片| 欧美性猛交xxxx久久久| 久久久av一区| 欧美成人一区二区三区电影| 国产欧亚日韩视频| 日本亚洲精品在线观看| 欧美大片在线影院| 亚洲欧洲一区二区三区在线观看| 狠狠爱在线视频一区| 亚洲精品美女在线观看播放| 精品夜色国产国偷在线| 欧美日韩中国免费专区在线看| 成人a在线视频| 久久97精品久久久久久久不卡| 欧美另类极品videosbest最新版本| 欧美色道久久88综合亚洲精品| 久久人人爽人人爽人人片亚洲| 国产专区精品视频| 日韩av电影手机在线观看| 精品国产乱码久久久久久天美| 亚洲国产成人久久| 黄色成人在线播放| 久久久久久久久久婷婷| 欧美午夜性色大片在线观看| 日韩欧美精品免费在线| 日韩亚洲国产中文字幕| 青青草原成人在线视频| 国产午夜精品免费一区二区三区| 日本精品一区二区三区在线播放视频| 日本19禁啪啪免费观看www| 国产视频自拍一区| 国产成人精品a视频一区www| 在线视频日韩精品| 日本精品视频在线观看| 久久久久国产精品一区| 亚洲国内高清视频| 日韩中文字幕精品| 精品久久国产精品| 国产精品成人在线| 国产精品久久一区主播| 夜夜嗨av色综合久久久综合网| 亚洲人成欧美中文字幕| 亚洲日韩中文字幕| 亚洲人成电影网站色xx| 亚洲欧美国产视频| 欧美洲成人男女午夜视频| 欧美一级电影久久| 91日韩在线视频| 欧美国产日韩免费| 日韩精品中文字幕在线播放| 久久久久国产精品免费网站| 国产精品久久网| 日韩精品亚洲精品| 高跟丝袜欧美一区| 国产精品久久999| 久久久免费精品视频| 国产成人精品视频在线| 欧美激情成人在线视频| 国产精品久久久| zzijzzij亚洲日本成熟少妇| 色婷婷综合久久久久| 日韩欧美精品网址| 日韩欧美在线视频日韩欧美在线视频| 久久久这里只有精品视频| 波霸ol色综合久久| 国产欧美一区二区三区久久人妖| 亚洲精品国产美女| 亚洲色图13p| 久久精品视频在线播放| 亚洲福利视频专区| 久久久久久网址| 亚洲国产成人精品一区二区| 欧美高清videos高潮hd| 久久69精品久久久久久国产越南| 欧美壮男野外gaytube| 久久免费精品视频| 国产精品三级在线| 91国自产精品中文字幕亚洲| 97视频免费在线看| 草民午夜欧美限制a级福利片| 亚洲国产精品嫩草影院久久| 98精品国产高清在线xxxx天堂| 伊人久久大香线蕉av一区二区| 91国产精品电影| 亚洲最新视频在线| 97视频免费观看| 亚洲欧洲在线免费| 亚洲一区二区久久| 欧美成aaa人片免费看| 亚洲黄色在线看| 美乳少妇欧美精品| 成人福利网站在线观看11| 亚洲人成电影网站色xx| 青草青草久热精品视频在线观看| 国产精品白嫩美女在线观看| 国产成人久久久| 国外视频精品毛片| 欧美日韩国产精品一区二区三区四区| 久久国产一区二区三区| 91超碰中文字幕久久精品| 久久夜精品va视频免费观看| 亚洲第一福利视频| 一个色综合导航| 久久精品视频一| 国产精品成人观看视频国产奇米| 日韩精品在线免费| 按摩亚洲人久久| 欧美大肥婆大肥bbbbb|