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

正文內容

rpg開發(fā)入門手冊(參考版)

2025-07-02 09:17本頁面
  

【正文】 Factory 1 Operation Factory 2 Result HI LO EQ FLD01 COMP FLD02 56 57 58 當FLD01=2,F(xiàn)LD02=1時,*IN56=’1’, *IN57=’0’, *IN58=’0’ 當FLD01=2,F(xiàn)LD02=2時,*IN56=’0’, *IN57=’0’, *IN58=’1’ 當FLD01=1,F(xiàn)LD02=2時,*IN56=’0’, *IN57=’1’, *IN58=’0’ 字符也可以進行比較,好象是按字母排序,然后將內碼相加,再比較(類似于ASCII碼一樣,不過不是特別清楚這個規(guī)律,所以一般沒用)坦白說,我覺得這個操作碼有點無聊。COMP (Compare) 比較1. 基本語法:將Factory 1與Factory 2進行比較。不能關閉未打開的文件5. 允許使用*ALL變量,來表達關閉所有已打開的文件:CLOSE *ALLCOMMIT {(E)} (Commit) 日志事務處理的確認操作1. 基本語法Factory 1 Operation Factory 2 Result COMMIT2. 該操作碼無其它參數(shù),就是指對事務處理進行確認操作。2. 對結構體的清空關于結構體,后面會另設章節(jié)專門講述,這里只說明對結構體初始化清空Factory 1 Operation Factory 2 Result CLEAR *ALL 目標名CLOSE {(E)} (Close Files) 關閉文件 1. 基本語法Factory 1 Operation Factory 2 Result CLOSE 目標文件名2. CLOSE所對應的,是文件名,不是文件的記錄格式名,要注意3. CLOSE操作碼,僅適用于聲明文件時,keyword使用“USROPN”關鍵字的文件4. 每一個CLOSE的操作,在之前都必須有OPEN文件的操作。CLEAR (Clear) 清除內容 1. 基本語法Factory 1 Operation Factory 2 Result CLEAR 目標名 這個目標名,可以是程序中定義的結構、文件的記錄格式名。那么這個N當然就是變量FLD02的實際長度;如果指示器未打開,那么說明整行都是空,實際長度為0,也沒錯。如果僅僅只是“FLD02”,那么就表示從變量FLD02的末位開始,向左查找2. 實例假設FLD01為8位長字符,且當前值為’12345678’而FLD02為5位長字符,且當前值為’23A56’那么執(zhí)行上述CHECK操作后,N=0, *IN42=’0’(從第三位開始,向左,23都存在于變量FLD01中)假設FLD01為8位長字符,且當前值為’12345678’而FLD02為5位長字符,且當前值為’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項,是一個空格字符。(基本與CHECK類似,所不同的,就是CHECK是自左向右的查找;而CHECKR是自右向左查找)如果有,將字符所在位置賦值到變量N中,同時打開EQ指示器;如果從第二位字開始,向左讀取的所有字符,都可以在變量FLD01中找到,那么N為0,EQ指示器處于關閉狀態(tài)。“FLD02:2”表示從變量FLD02的第二位開始,向右作比較。CHECK {(E)} (Check Characters) 檢查目標變量中的字符1. 基本語法:Factory 1 Operation Factory 2 Result HI LO EQ FLD01 CHECK FLD02:2 N 42語句CHECK的意思,是指字段FLD02中,從第二位字符開始,向右查找(含第二位字符),是否包含有FLD01中沒有的字符。所以,除非有絕對的把握,CHAIN操作肯定成功,否則就一定要養(yǎng)成填寫HI指示器的良好習慣。(所以組合鍵值,通常使用SETLL定位較多)7. 當用修改方式聲明文件,但希望進行不鎖記錄的查詢操作時,可以將CHAIN操作碼寫為CHAIN(N),這個括號(N),就表示當前的查詢定位,不對記錄進行鎖定操作(也就是用只讀的方式來處理目標記錄,所以只能取出目標記錄的信息,不能做修改;如果要修改目標記錄的話,還必須進行一個CHAIN操作)8. 這一條要特別注意:當沒有填寫HI指示器時,RPGLE是允許編譯通過的。6. 當一個邏輯文件,KEY值有多項時,可以使用KLIST操作碼先定義一個組合鍵值,然后再用這個組合鍵值來進行CHAIN操作。對于只讀方式聲明的文件其實無意義4. 如果用修改方式聲明文件,但在LO處未填寫指示器,且有程序鎖住目標記錄時,當前程序會根據(jù)PF中定義的WAITRCD(Maximum record wait time)參數(shù),等待相應的秒數(shù)(如WAITRCD處為10,即表示鎖表時,等待10秒;如果填的是*IMMED,就表示不等待,一判斷目標記錄被鎖就結束操作);如果在等待時間內,對方仍未解鎖,當前程序就會異常中斷退出;如果LO處填寫指示器,那么程序就不會中斷退出,且LO指示器打開。*IN17=’1’, *IN18=’0’,表示無相應的目標記錄*IN17=’1’, *IN18=’1’, 表示查詢時,文件被鎖(不確定有沒有相應的目標記錄)2. 用修改方式聲明的文件,當查詢成功后,目標記錄被鎖定,其它程序無法以修改的方式定位到當前目標記錄上。Factory 2項中,要填文件的記錄格式名,而不是文件名HI指示器表示是否查詢到相應記錄,查詢不成功時,打開HI指示器LO指示器表示查詢時,文件是否被鎖。7. EVAL操作碼的不足之處,在于只能進行最簡單的拼接,無法自動將字符后面的空格去除,如: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) 按鍵值對文件記錄進行查詢定位1. 基本語法:舉例,對邏輯文件PFFHSL1進行定位操作。舉例: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ù)字型的變量來表達,如EVAL N=1 FLD01 CAT FLD02:N FLD035. CAT操作碼,其實也可以通過EVAL來實現(xiàn)部分。當是字符時,需要用單引號將字符括起來2. 其實根據(jù)RPG的語法,大家應該也可以想得到,F(xiàn)actory1項如果不填值,就表示將Factory 2項的內容直接拼在Result項上,這里就不舉例了。CAT {(P)} (Concatenate Two Character Strings) 字符連接1. 基本語法:Factory 1 Operation Factory 2 Result FLD01 CAT FLD02:0 FLD03 這句話的意思,是將FLD02拼在FLD01后面,中間沒有空格,然后將拼出的結果賦值到FLD03中。 上面這段語句,與下面這一段是等價的:Factory 1 Operation Factory 2 Result SELECT WHEN FLD01=’1’ EXSR SUB01 WHEN FLD01=’2’ EXSR SUB02 OTHER EXSR SUB03 ENDSL3. 可以看出來,CASxx這種語句,是用于邏輯判斷僅一個條件時的分支處理,這樣的寫法在代碼的閱讀上會很直觀。不需要“SELECT”操作碼。CALLB {(D | E)} (Call a Bound Procedure) 也沒用過,不過有不少人用,望舉例說明CALLP {(M | R | E)} (Call a Program or Procedure) 也沒用過,不過有不少人用,望舉例說明CASxx (Conditionally Invoke Subroutine) 帶條件的調用子過程1. 表示根據(jù)xx項對Factory 1與Factory 2進行判斷,當符合條件時,執(zhí)行Result處的子過程。即’FHSILE01’,與fhsile01,表示的是兩個不同的程序。詳細內容可參考之前的“入口參數(shù)”一節(jié)。如: FHSILE01=’FHS01’時,表示調用“FHS01”這個外部程序; FHSILE01=’FHS02’時,表示調用“FHS02”這外外部程序 也就是說,CALL操作碼調用的程序名,可以是一個變量名。(也就是BEGSR語句與ENDSR語句之間沒有別的執(zhí)行語句了)BITOFF (Set Bits Off) 沒用過BITON (Set Bits On) 沒用過CABxx (Compare and Branch) 沒用過CALL {(E)} (Call a Program) 調用外部程序 Factory 1 Operation Factory 2 Result CALL ‘外部程序名’1. 如果是直接調用外部程序,那么程序名稱需要用單引號括起來,且該程序必須存在。 在程序中,可以寫一個子過程,但是不調用它。否則程序編譯會報錯。我們的邏輯判斷語句,就都寫在這個Extended Factory 2項中BEGSR (Beginning of Subroutine) 子過程的開始處 Factory 1 Operation Factory 2 Result BEGSR 子過程名在前面,講述程序流程時,已經(jīng)對子過程進行了解釋。處理內容 ENDIF 可以看出,邏輯判斷的內容,可以用括號括起來以區(qū)分先后順序; 判斷的語句,允許有空格:FLD1 FLD2,與FLD1FLD2是相同的 但AND前后,必須要有空格當邏輯判斷條件太長,一行寫不下要分行寫時,AND在上一行,還是下一行,都沒有關系。 Factory 1 Operation Factory 2 Result FLD01 IFEQ ‘A’ FLD02 ANDEQ ‘B’ 。不能用ZADD。這時要使用MOVE操作碼。可根據(jù)實際情況選擇使用ADD還是EVAL.ADDDUR {(E)} (Add Duration) 日期時間相加1. 對日期型變量進行加操作,比如說已定義日期型變量MYDATE1,MYDATE2,將MYDATE1的日期加上3天,賦值到MYDATE2中: Factory 1 Operation Factory 2 Result MYDATE1 ADDDUR 3:*D MYDATE2其中,F(xiàn)actory 1,Result項,都必須為日期型變量(即在D行,Internal Data Type項為“D” )2. 與ADD操作碼相同,F(xiàn)actory 1項為空時,表示直接在Result項上進行日期相加,如將MYDATE1直接加上3個月(即結果也是賦值到MYDATE1中): Factory 1 Operation Factory 2 Result ADDDUR 3:*M MYDATE13. 日期型變量的參數(shù)含義: *D表示天,也可用*DAYS *M表示月,也可用*MONTHS *Y表示年,也可用*YEARS4. 除了日期型之外,還有時間型,日期時間型,都可以使用ADDDUR操作碼.在D行,Internal Data Type定義為“T”,表示時間型(時、分、秒)Internal Data Type定義為“Z”,表示日期時間型(年、月、日、時、分、秒、微秒)在使用ADDDUR操作碼,時間型的參數(shù)如下:*H 表示小時,也可用*HOURS*MN表示分鐘,也可用*MINUTES*S 表示秒, 也可用*SECONDS而日期時間型,除了可以使用*Y、*M、*D、*H、*MN、*S(以及相應的全稱)之外,還可以對微秒進行處理,參數(shù)為*MS,或*MSECONDS5. Factory 2項中的數(shù)字,可以使用負數(shù),使用負數(shù)時,表示減去相應的年、月、日,不過通常我會使用SUBDU
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1