freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

rpgle程序員速成手冊-資料下載頁

2025-06-29 09:30本頁面
  

【正文】 程SUB02; 當(dāng)不滿足以上兩個條件時,執(zhí)行子過程SUB03 最后的“ENDCS”必須要有,表示條件判斷結(jié)束;但不需要SELECT。 上面這段語句,與下面這一段是等價的:Factory 1 Operation Factory 2 Result SELECT WHEN FLD01=’1’ EXSR SUB01 WHEN FLD01=’2’ EXSR SUB02 OTHER EXSR SUB03 ENDSL3. 可以看出來,CASxx這種語句,是用于邏輯判斷僅一個條件時的分支處理,這樣的寫法在代碼的閱讀上會很直觀。而當(dāng)邏輯判斷大于一個條件時,這個語句就不適用了。CAT {(P)} (Concatenate Two Character Strings) 字符連接1. 基本語法:Factory 1 Operation Factory 2 Result FLD01 CAT FLD02:0 FLD03 這句話的意思,是將FLD02拼在FLD01后面,中間沒有空格,然后將拼出的結(jié)果賦值到FLD03中。 FLD02:0,表示FLD02與FLD01之間的空格數(shù)為0,依此類推 FLD02:1,就表示FLD01后面加一個空格,再拼上FLD02 FLD02:3,就表示FLD01后面加三個空格,再拼上FLD02 Factory 1項,與Factory 2項可以是字符型變量,也可以就是字符。當(dāng)是字符時,需要用單引號將字符括起來2. 其實根據(jù)RPG的語法,大家應(yīng)該也可以想得到,F(xiàn)actory1項如果不填值,就表示將Factory 2項的內(nèi)容直接拼在Result項上,這里就不舉例了。3. 字段FLD01如果內(nèi)容后面有空格,如“ABC ”,那么在CAT操作時,系統(tǒng)會自動將后面的空格截去,只取’ABC’。舉例:FLD01=’ABC ‘ (8位字符型),F(xiàn)LD02=’1’ (1位字符型),F(xiàn)LD03=’’ (8位字符型)那么,執(zhí)行了下述語句之后FLD01 CAT FLD02:0 FLD03FLD03就等于’ABC1 ’而如果執(zhí)行:FLD01 CAT FLD02:1 FLD03FLD03就等于’ABC 1 ‘ (C與1之間有一個空格)4. 表示空格個數(shù)時,可以使用數(shù)字型的變量來表達(dá),如EVAL N=1 FLD01 CAT FLD02:N FLD035. CAT操作碼,其實也可以通過EVAL來實現(xiàn)部分。比如將FLD01與FLD02拼起來,中間無空格,賦值到FLD03中,也可以寫做:EVAL FLD03=FLD01 + FLD026. EVAL操作碼的優(yōu)勢,在于可以在一行語句中,就把多個字符拼在一起,如:EVAL FLD05=FLD01+FLD02+FLD03+FLD04 如果要用CAT寫,就要寫多行,不簡潔。7. EVAL操作碼的不足之處,在于只能進(jìn)行最簡單的拼接,無法自動將字符后面的空格去除,如:FLD01=’ABC ‘ (8位字符型),F(xiàn)LD02=’1’ (1位字符型),F(xiàn)LD03=’’ (8位字符型)在執(zhí)行語句 EVAL FLD03=FLD01+FLD02后, FLD03=’ABC ‘因為FLD01是8位,F(xiàn)LD03也是8位,在操作時,不能去掉ABC后面的5位空格,此時后面再拼FLD02已無意義,所以FLD03仍是’ABC ‘CHAIN {(N | E)} (Random Retrieval from a File) 按鍵值對文件記錄進(jìn)行查詢定位1. 基本語法:舉例,對邏輯文件PFFHSL1進(jìn)行定位操作。邏輯文件PFFHSL1,是以FHS01為鍵值,文件記錄格式名叫FMTFHSFactory 1 Operation Factory 2 Result HI LO EQ FHS01 CHAIN FMTFHS 17 18 這個例子中,F(xiàn)HS01應(yīng)該是一個與文件PFFHSL1中鍵值(FLD01)類型、長度都相等的一個字符型變量,或者字符。Factory 2項中,要填文件的記錄格式名,而不是文件名LO指示器表示查詢時,文件是否被鎖。文件被鎖時,打開LO指示器也就是說:*IN17=’0’,表示查詢到了目標(biāo)記錄。*IN17=’1’, *IN18=’0’,表示無相應(yīng)的目標(biāo)記錄*IN17=’1’, *IN18=’1’, 表示查詢時,文件被鎖(不確定有沒有相應(yīng)的目標(biāo)記錄)2. 用修改方式聲明的文件,當(dāng)查詢成功后,目標(biāo)記錄被鎖定,其它程序無法以修改的方式定位到當(dāng)前目標(biāo)記錄上。(但可以用只讀的方式定位)3. LO指示器,僅于用修改方式聲明的文件。對于只讀方式聲明的文件其實無意義4. 如果用修改方式聲明文件,但在LO處未填寫指示器,且有程序鎖住目標(biāo)記錄時,當(dāng)前程序會根據(jù)PF中定義的WAITRCD(Maximum record wait time)參數(shù),等待相應(yīng)的秒數(shù)(如WAITRCD處為10,即表示鎖表時,等待10秒;如果填的是*IMMED,就表示不等待,一判斷目標(biāo)記錄被鎖就結(jié)束操作);如果在等待時間內(nèi),對方仍未解鎖,當(dāng)前程序就會異常中斷退出;如果LO處填寫指示器,那么程序就不會中斷退出,且LO指示器打開。5. 當(dāng)FHS01鍵值,在文件PFFHSL1中,對應(yīng)有多條記錄時(即鍵值不唯一),程序?qū)凑瘴募膬?nèi)部記錄號由小到大的順序,定位到符合條件的第一條記錄。6. 當(dāng)一個邏輯文件,KEY值有多項時,可以使用KLIST操作碼先定義一個組合鍵值,然后再用這個組合鍵值來進(jìn)行CHAIN操作。需要注意,組合鍵值中,必須每一個成員字段都與目標(biāo)記錄所對應(yīng)的字段相等,才能查詢成功。(所以組合鍵值,通常使用SETLL定位較多)7. 當(dāng)用修改方式聲明文件,但希望進(jìn)行不鎖記錄的查詢操作時,可以將CHAIN操作碼寫為CHAIN(N),這個括號(N),就表示當(dāng)前的查詢定位,不對記錄進(jìn)行鎖定操作(也就是用只讀的方式來處理目標(biāo)記錄,所以只能取出目標(biāo)記錄的信息,不能做修改;如果要修改目標(biāo)記錄的話,還必須進(jìn)行一個CHAIN操作)8. 這一條要特別注意:當(dāng)沒有填寫HI指示器時,RPGLE是允許編譯通過的。而在某些情況之下(以前見過),運行程序時,如果CHIAN操作成功,找到了符合條件的記錄時,沒有任何問題;但如果CHAIN操作沒有找到符合條件的記錄時,實際上系統(tǒng)會按照鍵值的排序以及內(nèi)部記錄號,定位到下一條記錄上,這時再取出來的數(shù)據(jù),就統(tǒng)統(tǒng)都是下一條記錄的數(shù)據(jù)。所以,除非有絕對的把握,CHAIN操作肯定成功,否則就一定要養(yǎng)成填寫HI指示器的良好習(xí)慣。(不好意思,這里好象又寫錯了,幾經(jīng)測試仍未測出這種情況,不過印象中的確出現(xiàn)過這種找到錯誤記錄的情況,可能具體情況/條件記混了)。CHECK {(E)} (Check Characters) 檢查目標(biāo)變量中的字符1. 基本語法:Factory 1 Operation Factory 2 Result HI LO EQ FLD01 CHECK FLD02:2 N 42語句CHECK的意思,是指字段FLD02中,從第二位字符開始,向右查找(含第二位字符),是否包含有FLD01中沒有的字符。如果的確有在FLD01中沒有的字符,將字符所在位置賦值到變量N中,同時打開EQ指示器;如果從第二位字開始,向右讀取的所有字符,都可以在變量FLD01中找到,那么N為0,EQ指示器處于關(guān)閉狀態(tài)。“FLD02:2”表示從變量FLD02的第二位開始,向右作比較。如果僅僅只是“FLD02”,那么就表示從變量FLD02的首位開始,向右查找2. 實例假設(shè)FLD01為8位長字符,且當(dāng)前值為’12345678’而FLD02為5位長字符,且當(dāng)前值為’A3456’那么執(zhí)行上述CHECK操作后,N=0, *IN42=’0’(從第二位開始,3456都存在于變量FLD01中)假設(shè)FLD01為8位長字符,且當(dāng)前值為’12345678’而FLD02為5位長字符,且當(dāng)前值為’34ABDC’那么執(zhí)行CHECK操作后,N=3,*IN42=’1’ (即第三位“A”,不存在于變量FLD01中)CHECKR {(E)} (Check Reverse) 反向檢查目標(biāo)變量中的字符1. 基本語法:Factory 1 Operation Factory 2 Result HI LO EQ FLD01 CHECKR FLD02:3 N 42語句CHECKR的意思,是指字段FLD02中,從第三位字符開始,向左查找(含第三位字符),是否包含有FLD01中沒有的字符。(基本與CHECK類似,所不同的,就是CHECK是自左向右的查找;而CHECKR是自右向左查找)如果有,將字符所在位置賦值到變量N中,同時打開EQ指示器;如果從第二位字開始,向左讀取的所有字符,都可以在變量FLD01中找到,那么N為0,EQ指示器處于關(guān)閉狀態(tài)?!癋LD02:3”表示從變量FLD02的第三位開始,向左作比較。如果僅僅只是“FLD02”,那么就表示從變量FLD02的末位開始,向左查找2. 實例假設(shè)FLD01為8位長字符,且當(dāng)前值為’12345678’而FLD02為5位長字符,且當(dāng)前值為’23A56’那么執(zhí)行上述CHECK操作后,N=0, *IN42=’0’(從第三位開始,向左,23都存在于變量FLD01中)假設(shè)FLD01為8位長字符,且當(dāng)前值為’12345678’而FLD02為5位長字符,且當(dāng)前值為’BC3B45’那么執(zhí)行CHECK操作后,N=2,*IN42=’1’ (即第二位“C”,不存在于變量FLD01中) 3. 計算字符實際長段根據(jù)CHECKR的這個操作碼的用法,我們可以使用它來取出變量截去尾部空格后的實際長度:Factory 1 Operation Factory 2 Result HI LO EQ ‘ ‘ CHECKR FLD02 N 42 Factory 1項,是一個空格字符。N表示的意思是:從變量FLD02的尾部,向前數(shù)第一個非空格字符,在FLD02中所處的位置。那么這個N當(dāng)然就是變量FLD02的實際長度;如果指示器未打開,那么說明整行都是空,實際長度為0,也沒錯。有趣吧。CLEAR (Clear) 清除內(nèi)容 1. 基本語法Factory 1 Operation Factory 2 Result CLEAR 目標(biāo)名 這個目標(biāo)名,可以是程序中定義的結(jié)構(gòu)、文件的記錄格式名。 所謂文件的記錄格式名,包括了程序中聲明的磁盤文件、打印報表文件、屏幕文件 CLEAR操作的意思,就是將目標(biāo)所對應(yīng)的所有變量/字段都賦上空值。2. 對結(jié)構(gòu)體的清空關(guān)于結(jié)構(gòu)體,后面會另設(shè)章節(jié)專門講述,這里只說明對結(jié)構(gòu)體初始化清空Factory 1 Operation Factory 2 Result CLEAR *ALL 目標(biāo)名CLOSE {(E)} (Close Files) 關(guān)閉文件 1. 基本語法Factory 1 Operation Factory 2 Result CLOSE 目標(biāo)文件名2. CLOSE所對應(yīng)的,是文件名,不是文件的記錄格式名,要注意3. CLOSE操作碼,僅適用于聲明文件時,keyword使用“USROPN”關(guān)鍵字的文件4. 每一個CLOSE的操作,在之前都必須有OPEN文件的操作。也就是,文件必須打開了之后,才能關(guān)閉。不能關(guān)閉未打開的文件5. 允許使用*ALL變量,來表達(dá)關(guān)閉所有已打開的文件:CLOSE *ALLCOMMIT {(E)} (Commit) 日志事務(wù)處理的確認(rèn)操作1. 基本語法Factory 1 Operation Factory 2 Result COMMIT2. 該操作碼無其它參數(shù),就是指對事務(wù)處理進(jìn)行確認(rèn)操作。3. ILE程序中,COMMIT操作可隨時進(jìn)行,也允許在沒有聲明COMMIT類型的文件的情況下,仍進(jìn)行COMMIT操作(對該進(jìn)程這前的事務(wù)進(jìn)行確認(rèn)處理)f4. 關(guān)于日志的確認(rèn)操作,在后面會另設(shè)專門章節(jié)講述。COMP (Compare) 比較1. 基本語法:將Factory 1與Factory 2進(jìn)行比較。當(dāng)Factory 1 Factory 2 時,打開HI指示器;當(dāng)Factory 1 = Factory 2 時,打開LO指示器;當(dāng)Factory 1 Factory 2 時,打開EQ指示器。Factory 1 Operation Factory 2 Result HI LO EQ FLD01 COMP FLD02 56 57 58 當(dāng)FLD01=2,F(xiàn)LD02=1時,*IN56=’1’, *IN57=’0’, *IN58=’0’ 當(dāng)FLD01=2,F(xiàn)LD02=2時,*IN56=’0’, *IN57=’0’, *IN58=’1’ 當(dāng)FLD01=1,F(xiàn)LD02=2時,*IN56=’0’, *IN57=’1’, *IN58=’0’ 字符也可以進(jìn)行比較,好象是按字母排序,然后將內(nèi)碼相加,再比較(類似于ASCII碼一樣,不過不是特別清楚這個規(guī)律,所以一般沒用)坦白說,我覺得這個操作碼有點無聊。 DEDEALLOC {(E | N)} (Deallocate Storage) 沒用過,好象是對定義的指針型變量,對其分配地址空間之后,用這個操作碼可以回收空間
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1