亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
查看: 11530 | 回復(fù): 13
打印 上一主題 下一主題

3寫給剛接觸RPG的朋友 --- 如何編寫RPG程序(1) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2007-04-03 16:05 |只看該作者 |倒序?yàn)g覽
剛剛開始學(xué)習(xí)400,真有點(diǎn)不知從何下手好,在網(wǎng)上逛了幾天,找到了一些適合初學(xué)者的資料,和大家一起分享一下。

這部分我也循序漸進(jìn)的講解如何RPG里頭更項(xiàng)的含義。

先說(shuō)說(shuō)RPG一般用來(lái)做什么吧,舉例說(shuō):
1. 整個(gè)RPG程序不包含任何外部程序,只是做些簡(jiǎn)單的數(shù)學(xué)運(yùn)算,或者對(duì)數(shù)據(jù)區(qū)、DATAQ等非文件目標(biāo)進(jìn)行操作,這屬于相對(duì)最簡(jiǎn)單的情況;
2. RPG程序?qū)ξ锢砦募蛘哌壿嬑募M(jìn)行讀、寫、更新、刪除操作;
3. RPG程序結(jié)合物理文件或邏輯文件、以及顯示文件進(jìn)行操作,這屬于比較復(fù)雜的情況;
4. RPG程序結(jié)合物理文件或邏輯文件、顯示文件、以及ICF文件(即通訊文件)進(jìn)行操作,這種情況也比較復(fù)雜。
當(dāng)然,以上的情況只是平時(shí)使用的歸納,你也可以根據(jù)自己的實(shí)際需要結(jié)合各種情況,此處不再深入探討。
=============================================
以下結(jié)合例子簡(jiǎn)單說(shuō)說(shuō)各種情況,假設(shè)以下源碼文件存放的路徑是 庫(kù)MYLIB、源物理文件MYSRCPF
1. (1)做個(gè)簡(jiǎn)單的運(yùn)算,比如AXB/(C-D)+E,有加減乘除等運(yùn)算,代碼如下:

        *************** Beginning of data *************************************
0001.00      C                     Z-ADD2          A         10                  
0002.00      C                     Z-ADD10        B         20                  
0003.00      C                     Z-ADD5          C         10                  
0004.00      C                     Z-ADD1          D         10                  
0005.00      C                     Z-ADD2          E         10                  
0006.00      C                     Z-ADD0          TEM     30                  
0007.00      C                     Z-ADD0          RST      30                  
0008.00      C           A        MULT B          TEM                          
0009.00      C           C        SUB  D           RST                          
0010.00      C           TEM    DIV  RST        RST                          
0011.00      C                     MVR               TEM2    30                  
0012.00      C           RST    ADD  E           RST                          
0013.00      C           RST    DSPLY                                       
0014.00      C                    SETON                             LR               
        ****************** End of data ****************************************
                                                                              



<注>:
    (a) Z-ADD表明把Factor2處的變量值賦給Result處的變量,值得注意的是這兩個(gè)變量都是數(shù)值型的,例如,"Z-ADD2 A 10 "表示把2賦給變量A,后面的"10"中的“1”表示變量A的長(zhǎng)度是1,“0”表示小數(shù)位長(zhǎng)度是0,即A是一個(gè)長(zhǎng)度為1整型變量;
    (b) MULT表示做乘法運(yùn)算,“A MULT B TEM”表示AXB,把結(jié)果賦給整型變量TEM;
    (c) SUB表示做減法運(yùn)算,“C SUB D RST”表示C-D,把結(jié)果賦給整型變量RST;
    (d) DIV表示做除法運(yùn)算,“TEM DIV RST RST”表示TEM/RST,把結(jié)果賦給整型變量RST;
    (e) MVR表示做取余數(shù)運(yùn)算,“MVR TEM2 30”表示把余數(shù)賦給整型變量TEM2;
    (f) ADD表示做取加法運(yùn)算,“RST ADD E RST”表示RST+E,把結(jié)果賦給整型變量RST,這句一般寫成“ADD E RST”也可以。
    (g) DSPLY表示顯示變量值,“RST DSPLY”表示顯示變量RST的值;
    (h) SETON表示給指示器置為*ON的狀態(tài),即'1',“SETON LR”表示把LR指示器置為*ON,該句的意思表示最后一條記錄,即程序結(jié)束。

按F3保存,假設(shè)該文件名是MYRPG,所在的庫(kù)是MYLIB,源物理文件是MYSRCPF。

程序?qū)懞弥螅瑧?yīng)該進(jìn)行編譯了。用WRKMBRPDM FILE(MYLIB/MYSRCPF),找到剛才的文件MYRPG,輸入14,按F4,進(jìn)入“Create RPG/400 Program (CRTRPGPGM)” 畫面,參數(shù):
(i) Program: 生成的目標(biāo)名(假如為MYOBJ);
(ii) Library:   生成的目標(biāo)存放的庫(kù)(假如為MYLIB)。
參數(shù)填好之后,按確認(rèn)鍵即進(jìn)行編譯,如果程序沒錯(cuò),則生成目標(biāo)文件,假設(shè)為MYOBJ。
在命令行輸入CALL MYLIB/MYOBJ,這時(shí)命令上應(yīng)該顯示RST的值。
(<注>:目標(biāo)即可執(zhí)行文件)

[ 本帖最后由 wxn100 于 2007-4-4 12:47 編輯 ]

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2007-04-03 21:53 |只看該作者
感謝分享~~~

論壇很需要這樣的朋友支持.

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2007-04-03 22:42 |只看該作者
還是MM面子大啊~~~

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2007-04-04 09:35 |只看該作者
Z-ADD在處理時(shí),會(huì)把Result的值先回復(fù)成0再做ADD的動(dòng)作,這點(diǎn)初學(xué)者要留意。
if X=3
Z-ADD 1      X
X=1

if x=5
ADD  1       x
x=6

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2007-04-04 10:11 |只看該作者
原帖由 just a kid 于 2007-4-3 22:42 發(fā)表
還是MM面子大啊~~~

什么時(shí)候你也 秀 一下。

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2007-04-04 12:55 |只看該作者

4.寫給剛接觸RPG的朋友 --- 如何編寫RPG程序(1) 【續(xù)1】

剛剛開始學(xué)習(xí)400,真有點(diǎn)不知從何下手好,在網(wǎng)上逛了幾天,找到了一些適合初學(xué)者的資料,和大家一起分享一下。

續(xù)《寫給剛接觸RPG的朋友 --- 如何編寫RPG程序(1)》

上文中,只舉例說(shuō)明了如何進(jìn)行簡(jiǎn)單的數(shù)學(xué)運(yùn)算,下面再舉一例子講解如何操作數(shù)據(jù)區(qū)(DATAARA)和數(shù)據(jù)隊(duì)列(DTAQ)。

1. (1) 如何建立數(shù)據(jù)區(qū)(DATAARA)

<注>:
    下面只建立*CHAR型的數(shù)據(jù)區(qū),其他類型的有興趣可以自己試試。在系統(tǒng)命令行輸入CRTDTAARA,按F4,進(jìn)入“Create Data Area (CRTDTAARA)”畫面,參數(shù)如下:
    (a) Data area:數(shù)據(jù)區(qū)的名字,這里假設(shè)為MYDTAARA;
    (b) Library:存放數(shù)據(jù)區(qū)的庫(kù),默認(rèn)值是*CURLIB,即當(dāng)前庫(kù),這里我們輸入MYLIB;

<注>:
    MYLIB庫(kù)之前的文章里頭已建立,這里不再重復(fù)講述了,如果還不知道如何建立,請(qǐng)參考《寫給剛接觸AS/400的朋友 --- 如何建立屬于自己的庫(kù)、文件和成員》
    (c) Type:數(shù)據(jù)區(qū)的類型,*DEC數(shù)值型,*CHAR字符型,*LGL邏輯型,*DDM分布式數(shù)據(jù)管理(這個(gè)我沒用過(guò)),這里我們選擇*CHAR;      
    (d) Length:數(shù)據(jù)區(qū)的長(zhǎng)度,這里假設(shè)是20,當(dāng)然你可以根據(jù)自己需要輸入對(duì)應(yīng)的長(zhǎng)度值;
    (e) Decimal positions:指小數(shù)位位數(shù),一般是針對(duì)*DEC型的才需要設(shè)置;
    (f) Initial value:數(shù)據(jù)區(qū)初始值,可填可不填,我們這里選擇不填,在程序里進(jìn)行更改;
    (g) Text:注釋。

整個(gè)命令請(qǐng)參考如下:

CRTDTAARA DTAARA(MYLIB/MYDTAARA) TYPE(*CHAR) LEN(20) TEXT('建立屬于自己的數(shù)據(jù)區(qū)MYDTAARA')

(2)在RPG里如何操作數(shù)據(jù)區(qū),假設(shè)該源碼文件名為DTAARAR,存放在MYLIB/MYFILE下:

        *************** Beginning of data *************************************
0001.00      I#DTA        DS                                                20                     
0002.00      I                                                                 1   8 CURDAT              
0003.00      I                                                               11  16 CURTME              
0004.00      C           *NAMVAR   DEFN MYDTAARA  #DTA                          
0005.00      C           *LOCK       IN      #DTA                                    
0006.00      C                            TIME                     DATTME 140                    
0007.00      C                            MOVE DATTME      CURDAT                        
0008.00      C                            MOVELDATTME     CURTME                        
0009.00      C                            OUT  #DTA                                    
0010.00      C                            UNLCK#DTA                                    
0014.00      C                            SETON                     LR                 
        ****************** End of data ****************************************

<注>:
    (a) 第一行#DTA是字段名,與上面的Dsname左對(duì)齊,DS表示#DTA是個(gè)字段,與上面的Ds對(duì)齊,20表示字段#DTA的長(zhǎng)度,與上面的Len+右對(duì)齊,注意,由于我們需要用它來(lái)定義數(shù)據(jù)區(qū)MYDTAARA的格式,所以長(zhǎng)度要和MYDTAARA相同,整行的意思是定義一個(gè)長(zhǎng)度20的字段#DTA;
    (b) 第二第三行進(jìn)一步詳細(xì)定義字段#DTA的內(nèi)部結(jié)構(gòu),第二行的CURDAT是字段名,與Field+左對(duì)齊,1與From右對(duì)齊,8與To++右對(duì)齊,整行的意思是把大字段#DTA的第1~8位定義位另一個(gè)字段,第三行同樣的意思,在此不在贅述;
    (c) 第四行的DEFN表示定義,一般用來(lái)定義字段和數(shù)據(jù)區(qū),*NAMVAR是定義數(shù)據(jù)區(qū)格式時(shí)必用的參數(shù),整行的意思就是把數(shù)據(jù)區(qū)MYDTAARA的格式按照字段#DTA定義,以后對(duì)字段#DTA進(jìn)行操作就等于對(duì)數(shù)據(jù)區(qū)MYDTAARA進(jìn)行操作;
    (d) 第五行的IN用來(lái)讀數(shù)據(jù)區(qū),*LOCK表示操作時(shí)把數(shù)據(jù)區(qū)MYDTAARA鎖住,一般只有對(duì)數(shù)據(jù)區(qū)進(jìn)行更/新操作才需要設(shè)置才參數(shù),如果只是讀數(shù)據(jù)區(qū),則不用該參數(shù);
    (e) 第六行的TIME是取系統(tǒng)當(dāng)前日期和時(shí)間,整行的意思是把系統(tǒng)當(dāng)前日期和時(shí)間賦給一個(gè)14位長(zhǎng)0位小數(shù)的數(shù)值型變量DATTME中,由于系統(tǒng)當(dāng)前的日期和時(shí)間是按照“hhmmssMMDDYYYY”存放,所以剛好也是14位;
    (f) 第七行意思是把變量DATTME右移給字段CURDAT,所以CURDAT的值剛好是日期“MMDDYYYY”;
    (g) 第八行意思是把變量DATTME左移給字段CURTME,所以CURTME的值剛好是日期“hhmmss”;
    (h) 第九行的OUT表示對(duì)數(shù)據(jù)區(qū)進(jìn)行寫操作,記住Factor處是我們程序開始定義的大字段#DTA;
    (i) 第十行的UNLCK表示解鎖,因?yàn)槲覀冊(cè)诘谖逍惺褂昧藚?shù)*LOCK;
    (j) 第十一行表示程序結(jié)束。

    按 F3 退出編輯器并保存,進(jìn)行編譯,生成的程序名假設(shè)為DTAARAR,那么在命令行 CALL DTAARAR,那么數(shù)據(jù)區(qū)已經(jīng)成功更改了,使用命令 DSPDTAARA MYDTAARA 就可以查看數(shù)據(jù)區(qū)內(nèi)容了。
================================================================================

到此為止,你已經(jīng)基本懂得如何對(duì)數(shù)據(jù)區(qū)進(jìn)行操作了!

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2007-04-04 13:07 |只看該作者
OK,驗(yàn)收通過(guò)!

合并為一個(gè)主題吧。

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2007-04-04 16:03 |只看該作者
呵呵,比我學(xué)的快,我用了1年as400后才開始涉及到dtaara,慚愧哈

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2007-04-05 13:14 |只看該作者
這些好像在新儒論壇里面有呀。

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2007-04-06 22:22 |只看該作者
又是非自由格式的看的很暈。。。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP