午夜大片免费男女爽爽影院久久_成人国产永久福利看片_在线中文字幕精品第5页_久久福利小视频

聯系我時,請告知來自化工儀器網

400-875-1717轉866

當前位置:首頁  >  技術文章  >  XRD軟件應用技巧 | HighScore Plus 腳本入門(一)

XRD軟件應用技巧 | HighScore Plus 腳本入門(一)

更新時間:2024-07-05       點擊次數:1155


本文由馬爾文帕納科亞太應用中心技術經理朱曉東供稿




本文摘要

馬爾文帕納科XRD軟件HighScore的Plus功能模塊(即HighScore Plus)里包含了對腳本代碼的支持;基于腳本的擴展性,軟件也有了更大的可能讓用戶得以實現一些特殊的計算或自定義特定格式的結果輸出,以補足原軟件在設計時未預見未直接包含的功能。本文介紹了HighScore Plus的腳本編程語言的編輯方法以及開發環境,為研究者實現個性化的計算和結果提供指導。


HighScore Plus腳本所使用的語言是Object Pascal,繼承自相對古老的Pascal編程語言,支持結構化和面向對象編程。它的優點包括代碼的易讀性、快速編譯,以及支持多個單元文件從而實現模塊化編程。作為已經不再流行的編程語言,可能在圖書館里才能翻得到它的出版教程了,但網絡上依然保留了不少資源。Neil Moffatt的Delphi Basic、Marco Cantù的Essential Pascal(中文)和Tao Yue的Learn Pascal tutorial(Wiki化后的中文版)都可以給初學者提供不少幫助。


HighScore Plus軟件里甚至內置了一個集成開發環境(IDE,Integrated Development Environment ),可以由菜單Tools - Script Editor調出,麻雀雖小五臟俱全,可以直接編輯、編譯和調試代碼。軟件幫助系統的第11部分中羅列了HighScore Plus軟件開放的可調用的對象模型及它們的屬性、函數和過程。軟件安裝目錄下的HelpExternals子目錄下也放了不少.PAS的示例代碼文件,可用于參考和學習;Documentation子目錄下的Scripting in HighScore Plus.pdf文件中也舉了大量的例子來告訴你如何實現某些功能。


本文的編寫也參考了上述的文件和網絡資源。

圖片

圖1 HighScore Plus中內置的腳本編輯器


01程序結構

如下圖,Pascal程序的基本結構由三部分組成:

圖片

圖2 Pascal程序基本結構


  1. 程序首部:
    以關鍵字program開頭,用以標識這是一個程序;其后便是由用戶自己定義的程序名稱ExampleProgram;最后以半角分號(;)作為這一部分的結束。

  2. 聲明部分:

    聲明部分可以省略,但凡是在程序中用到所有變量、常量、數組及自定義的數據類型、過程與函數等都必須在聲明部分預先定義,也就是說,不允許不聲明就使用;聲明部分中可以包含:

    1. 使用指令:以關鍵字uses開頭,要在程序中引用的單元(相當于模塊),以便在程序中使用在單元中定義好的過程、函數和類等等;一般System單元不用特地聲明引用;如程序中不需要引用額外的單元,此部分可省略;

    2. 類型聲明:以關鍵字type開頭,基于已有數據類型構建自定義的數據類型,以在程序中使用;如沒有自定義新數據類型的必要,此部分可省略;

    3. 常量聲明:以關鍵字const開頭,定義在程序中會使用到的常量;如無必要可省略;

    4. 變量聲明:以關鍵字var開頭,定義在程序中會使用到的變量;如果程序中用不到自定義的變量,此部分可以省略;

    5. 子過程、子函數定義;如無必要可省略;

  3. 程序主體:

    程序主體由begin開始,end.(注意,不要遺漏這個點符)結束,兩者中間則是執行語句。

Pascal程序代碼不管哪一部分,語句末尾都必須有半角分號(;)以示這一語句的結束,但允許end前面的那一個語句省略分號;多個語句可以用一對beginend;(注意,這里有半角分號)包含起來作為一個程序塊,程序塊多用于子過程、子函數等的定義以及流程語句;代碼里最后一個end后的點符(.)代表整個程序的結束。


Pascal語言中,程序名稱、常量名稱、變量名稱等這種自定義的名稱統稱為標識符。標識符必須以一個英文字母或者下劃線(_)開始,后面可以是英文字母、數字或下劃線,長度不限;但不能與Pascal語言已占用的有特殊含義的關鍵字/保留字(如program)相同。標識符以及關鍵字都不區分大小寫,因此exampleprogram、ExampleProgram、EXAMPLEPROGRAM和eXaMpLePrOgRaM這幾個名稱都是相同的,但為了代碼的可讀性,建議遵循一定的命名書寫規范,有意義地使用大小寫。


在圖2中可以看到,在腳本編輯器默認的代碼高亮規則下,部分代碼以綠色斜體顯示,這些是不被編譯也不被執行的注釋。注釋同樣是代碼的一部分,主要用來寫一些說明,以讓代碼更容易理解,也可以用來在不刪除的情況下屏蔽有問題的代碼。Pascal語言支持三種注釋方式:一對半角大括號({  })、一對帶星號的半角小括號((*  *))以及雙斜線(//)。

圖片

圖3 注釋


在HighScore Plus的腳本編輯器中,當點開工具欄中第一個按鈕并點擊New Script項新建一個腳本時,在Script Name框中輸入的腳本名稱同時默認為程序名稱;輸完名稱后,點擊OK按鈕,即會新建一個完整結構的空白的腳本。

圖片

圖4 新建腳本


02數據類型及賦值、運算

Pascal語言中包含了以下基本數據類型:

  • 整數類型:最基礎的是integer類型,其數據范圍一般情況下已足夠使用,如果需要更大的整數范圍,可以用longint類型甚至int64類型;

  • 實數類型:也稱浮點數型,最基礎的是real類型,但不提倡用,建議用single單精度實型或double雙精度實型,要更大范圍得話,還可以用extended擴展實型;

  • 字符類型:最基礎的是char類型,即ASCII字符,一般用一對半角單引號將單個字符括起來,如‘a‘、‘@’等(注:半角單引號需多用一個單引號轉義,即’’’’),也可以用井號加0~255以內的整數表示第幾個ASCII字符,如#65即為‘A’;雙字節的Unicode字符可以用widechar類型來支持;多個字符組成的字符串則可以用string類型;

  • 布爾類型:最基礎的是boolean類型,只有TRUE(真,值為1)和FALSE(假,值為0)兩個值;


常量的賦值直接在聲明部分中聲明常量的同時完成,而且不必特別要求其數據類型,編譯器會根據所賦的值自動選用合適的數據類型;賦值時,直接用等號(=)賦值;賦值后,在程序中可以用常量的標識符來使用其值,但無法修改其值。對于一個在程序中到處會用到,而且程序運行中保持不變的值,建議用常量來存儲,然后在執行代碼中使用這個常量的標識符,這樣當要改這個值時,就不用到執行代碼中到處查找這個值然后修改,而是可以輕松地直接在常量聲明中修改一次就成。

圖片

圖5 常量的聲明與賦值


變量的值在程序運行的過程中可以更改,但使用前必須先聲明好。在程序的聲明部分中聲明的變量稱為全程變量,可以在整個程序(包括子過程、子函數中)中使用;在子過程、子函數中聲明的變量,稱為局部變量,只能在聲明它的子過程或子函數中使用。變量一般在執行語句中用賦值符(帶半角冒號的等號,即:=)賦值;全程變量也可以在聲明的同時用等號(=)賦初值,但不建議這么做。在聲明變量時,必須用半角冒號(:)要求變量的數據類型;不賦初值的情況下,一個語句可以聲明同一類型的多個變量,這些變量的標識符須用半角逗號(,)分隔開。

圖片

圖6 變量的聲明與賦值


一般的工作可能前面所講的那些數據類型已經足夠使用了,但涉及到相對復雜的、要處理大量數據的工作時,通過定義很多個變量去實現很顯然不太現實,此時對于同一類型的大量數據,就可以用數組來處理。


數組可以通過“array[下標范圍] of 數據類型"來定義,其中下標值一般是整數類型。[下標范圍]可以省略:定義時省略了[下標范圍]的數組稱為動態數組,使用前必須先用函數setlength設置其大小,設置后,動態數組的下標總是從零開始;定義時要求了下標范圍的數組稱為靜態數組,下標范圍可以按需要設置,以[下標下屆..下標上屆](用兩個半角點符隔開,相當于從幾到幾的連續整數)的格式定義,下標值甚至可以是負數;如果要定義多維數組,可以通過套娃的方式定義,也可以在[ ]里定義多組下標范圍。當聲明了一個數組變量,則該數組變量中的各個元素就共用一個數組名(即該數組變量標識符),通過下標的不同以區別不同的元素,可以通過“數組名[下標]"來引用數組元素;對數組的操作歸根到底就是對數組元素的操作,數組元素可以像同類型的普通變量那樣操作。

圖片

圖7 數組的聲明與賦值


上圖中第30行中的“[true, true, true, true, true, false, false]"是一個直接常量(直接以字面形式,而非標識符表示的常量,如前面附圖中賦值語句等號右側的那些數值或字符,2.7182818、10086、true、’A’ 等)數組,用一對半角方括號([ ])將各元素括在其中,元素之間用半角逗號(,)分隔。


變量在賦值時,賦值號的右側除了用直接常量外,也可以是一個運算表達式,運算表達式中可以帶有變量或常量。

  • 數字的計算使用算術運算符,除了常規的四則運算:加(+)、減(-)、乘(*)、除(/)外,還有整除(div)和取模(除法取余數,mod);運算時,先乘除(整除和取模和乘除同一優先級)后加減,當然括號優先級最高(由內向外逐層降低),相同優先級則從左往右順序計算;

圖片

圖8 數字的算數運算


  • 關系運算符(=、<>、>、<、>=、<=)則可以用來判斷兩個數之間的大小關系,其結果是布爾類型;關系運算符的優先級是zui低的;

圖片

圖9 數字的大小比較


  • 邏輯運算符則用來處理布爾類型的量,包含:not(非,只有一個運算對象,結果取運算對象的相反值)、and(且,只有兩邊都為真,結果才為真)、or(或,兩邊有一個真,則結果就為真)、xor(異或,兩邊不一樣,則結果為真);not優先級最高,其次是and,與乘除同一級別, orxor則與加減并列;

圖片

圖10 布爾值的邏輯運算


  • 對于字符(串),有連接運算符(加號,+)用來將兩邊的字符(串)連成一個字符串;關系運算符也可以用于字符串的比較,比較時,兩個字符串從左往右按ASCII碼值逐個比較,遇到不相等時,碼值大的字符所在的字符串為大,因此小寫字母>大寫字母>數字。

圖片

圖11 字符(串)的運算


除上述數據類型外,還有枚舉、集合(圖5中聲明的常量Letters就是一個點亮大小寫字母的52個字符的集合)、記錄、指針、文件、類等等類型,本文中不再贅述,感興趣的可以參考Essential Pascal、Delphi Basics、Learn Pascal tutorial等網絡資源中的說明。



午夜大片免费男女爽爽影院久久_成人国产永久福利看片_在线中文字幕精品第5页_久久福利小视频

      9000px;">

          蜜臀精品一区二区三区在线观看 | 亚洲一区二区三区自拍| 亚洲私人影院在线观看| 亚洲福利视频一区| 高清不卡在线观看| 欧美日韩高清一区二区三区| 制服丝袜一区二区三区| 国产精品色在线观看| 免费成人你懂的| 色噜噜狠狠成人中文综合| 精品嫩草影院久久| 亚洲综合视频网| 国产麻豆精品在线| 7777女厕盗摄久久久| 亚洲欧美另类在线| 国产精品88888| 制服丝袜亚洲色图| 亚洲一线二线三线视频| 成人教育av在线| 精品国产凹凸成av人导航| 亚洲国产中文字幕在线视频综合| 国产精品美女一区二区三区 | av亚洲精华国产精华| 欧美日韩美女一区二区| 中文字幕va一区二区三区| 日韩av一区二| 欧美绝品在线观看成人午夜影视| 精品视频在线免费| 中文字幕一区在线| 国产久卡久卡久卡久卡视频精品| 国产成人鲁色资源国产91色综 | 国产不卡视频在线观看| 欧美日韩一区高清| 一区二区三区鲁丝不卡| 91视频一区二区| 自拍偷拍欧美激情| 91在线免费播放| 18欧美亚洲精品| www.亚洲色图.com| 国产精品成人午夜| 99久久er热在这里只有精品15| 欧美日韩在线播放三区| 椎名由奈av一区二区三区| 丁香天五香天堂综合| 国产日本一区二区| 成人黄色一级视频| 国产精品久久久久久久久久久免费看 | 成人精品免费看| 久久九九久久九九| 国产精品18久久久久久久久| 4hu四虎永久在线影院成人| 亚洲免费观看视频| 欧美三级日本三级少妇99| 亚洲一区精品在线| 717成人午夜免费福利电影| 天堂在线一区二区| 91精品国产手机| 国产乱子伦视频一区二区三区| 91碰在线视频| 亚洲摸摸操操av| 欧美日韩国产成人在线免费| 日本不卡视频一二三区| 欧美一区二区精品| 激情综合色综合久久综合| 26uuu亚洲| jizzjizzjizz欧美| 亚洲成人自拍网| 日韩精品一区二区三区老鸭窝| 亚洲精品免费在线| 欧美日韩精品一区二区在线播放| 欧美激情一区二区三区不卡| 色综合久久88色综合天天6| 亚洲影视在线播放| 精品区一区二区| 一本一道波多野结衣一区二区| 久久综合精品国产一区二区三区| 亚洲综合久久久久| 欧美成人一区二区三区| 成人国产在线观看| 热久久国产精品| 亚洲视频电影在线| 日韩欧美亚洲一区二区| 91色九色蝌蚪| 狠狠色狠狠色综合日日91app| 在线播放日韩导航| 国内成人自拍视频| 亚洲精品国产无天堂网2021| 日韩欧美一级特黄在线播放| 99国产精品视频免费观看| 日韩综合小视频| 国产精品美女www爽爽爽| 欧美电影一区二区三区| 91偷拍与自偷拍精品| 久久国内精品自在自线400部| 日韩午夜激情视频| 成人性视频免费网站| 麻豆精品视频在线观看免费| 一区二区三区国产| 中文字幕日韩一区二区| 久久婷婷色综合| 欧美一激情一区二区三区| 色悠久久久久综合欧美99| 国产精品一卡二卡在线观看| 奇米色777欧美一区二区| 亚洲一区视频在线| 中文字幕不卡在线| 欧美日韩一区二区三区四区| 99re这里都是精品| 成人午夜短视频| 极品美女销魂一区二区三区免费| 精品999久久久| 在线观看视频一区二区| 国产精品中文欧美| 精品在线一区二区| 天天影视涩香欲综合网| 一区二区三区四区激情| 中文字幕一区二区三区乱码在线 | 国产精品国产三级国产aⅴ无密码| 精品一区二区三区影院在线午夜 | 国内久久婷婷综合| 亚洲一二三区在线观看| 亚洲欧洲成人精品av97| 国产精品久久久久久久久图文区| 成人午夜碰碰视频| 寂寞少妇一区二区三区| 亚洲二区视频在线| 亚洲欧美日韩成人高清在线一区| 欧美日韩国产另类一区| 99精品久久久久久| 99视频精品免费视频| 精品系列免费在线观看| 午夜激情久久久| 亚洲成人av一区二区三区| 亚洲韩国一区二区三区| 亚洲欧洲国产专区| 亚洲午夜精品在线| 日本成人在线电影网| 秋霞成人午夜伦在线观看| 天堂在线亚洲视频| 精品在线免费视频| 韩国三级电影一区二区| 国产一区二区三区在线观看免费视频 | 色综合一区二区三区| 成人激情小说乱人伦| 成人成人成人在线视频| 99久久婷婷国产综合精品| 色吧成人激情小说| 91论坛在线播放| 欧美午夜精品一区| 欧美va天堂va视频va在线| 精品国产一区二区三区久久久蜜月 | 亚洲三级在线免费| 亚洲激情图片qvod| 婷婷综合久久一区二区三区| 理论片日本一区| 成人午夜在线视频| www.在线欧美| 宅男噜噜噜66一区二区66| 欧美中文字幕一区二区三区| 欧美裸体一区二区三区| 久久久久久影视| 亚洲另类中文字| 五月天激情综合网| 成人av资源站| 91精品国产综合久久福利 | 99精品一区二区三区| 在线观看视频一区二区欧美日韩| 成人av电影在线播放| 日本高清不卡aⅴ免费网站| 日本韩国精品在线| 久久网站最新地址| 亚洲一区二区视频| 免播放器亚洲一区| 91视频国产观看| 久久嫩草精品久久久精品一| 亚洲综合视频在线| 国产精品亚洲专一区二区三区| 日本强好片久久久久久aaa| 国产精品羞羞答答xxdd| 91福利精品视频| 国产日韩精品一区二区三区在线| 国产亚洲婷婷免费| 午夜精品一区二区三区免费视频 | 成人免费视频免费观看| 欧美性三三影院| 国产清纯美女被跳蛋高潮一区二区久久w | 99精品视频在线播放观看| 欧美一级理论片| 亚洲一区二区三区四区中文字幕 | 一本色道**综合亚洲精品蜜桃冫| 国产激情视频一区二区在线观看 | av一区二区三区| 在线播放欧美女士性生活| 久久青草欧美一区二区三区| 亚洲亚洲人成综合网络| 成熟亚洲日本毛茸茸凸凹| 欧美日韩国产精品自在自线| 亚洲九九爱视频| 91蝌蚪porny成人天涯| 久久婷婷国产综合国色天香|