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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3205 | 回復: 3
打印 上一主題 下一主題

5.[轉(zhuǎn)]寫給剛接觸RPG的朋友 --- 如何編寫RPG程序(2) [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2007-04-23 13:04 |只看該作者 |倒序瀏覽
RPG一般用來做什么吧,舉例說:
        1. 整個RPG程序不包含任何外部程序,只是做些簡單的數(shù)學運算,或者對數(shù)據(jù)區(qū)、DATAQ等非文件目標進行操作,這屬于相對最簡單的情況;
        2. RPG程序?qū)ξ锢砦募蛘哌壿嬑募M行讀、寫、更新、刪除操作;
        3. RPG程序結(jié)合物理文件或邏輯文件、以及顯示文件進行操作,這屬于比較復雜的情況;
        4. RPG程序結(jié)合物理文件或邏輯文件、顯示文件、以及ICF文件(即通訊文件)進行操作,這種情況也比較復雜。
        當然,以上的情況只是平時使用的歸納,你也可以根據(jù)自己的實際需要結(jié)合各種情況,此處不再深入探討。
……
上文中講到了第1點,現(xiàn)在講解第2點。
<注>:假設(shè)以下源碼文件存放的路徑是:庫MYLIB、源物理文件MYSRCPF
        使用WRKMBRPDM FILE(MYLIB/MYSRCPF)進入源碼存儲處,按F6,進入“Start Source Entry Utility (STRSEU)”畫面,“Source member”為源碼文件名,此處是我們要建立的物理文件名,假設(shè)為MYPF,“Source type”為文件類型,這里我們輸入PF表示該文件是物理文件源碼,按確認鍵,進入編輯器。
代碼如下:

        *************** Beginning of data *************************************
0001.00      A         R FMYPF                                                
0002.00      A            PFFLD1         4A         TEXT('FIELD1')            
0003.00      A                                              COLHDG('FIELD1')           
0004.00      A            PFFLD2         5P 0       TEXT('FIELD2')            
0005.00      A                                              COLHDG('FIELD2')           
        ****************** End of data ****************************************

<注>:
    (a) 第一行的R處在T處,表示Record,即聲明FMYPF是該物理文件的記錄名;
    (b) 第二行中PFFLD1位于Name處,T處為空,表示這是字段名。該句定義一個叫PFFLD1的字段,長度為4,字段屬性是A,表示字符型。TEXT('FIELD1')給字段做注解,COLHDG('FIELD1')給字段指定顯示時候的列表題;
    (c) 第三行定義一個叫PFFLD2的字段,長度為5,字段屬性是P,表示數(shù)值型,0表示小數(shù)位是0位。
保存文件,編譯生成目標文件MYPF。
  
       (2)建立邏輯文件:
       建立步驟和物理文件一樣,不過值得注意的是,“Source type”必須為LF,表示該文件是邏輯文件,這里假設(shè)文件名為MYLF,代碼如下:

        *************** Beginning of data *************************************
0001.00      A          R FMYPF                     PFILE(DSCHIWUXN/MYPF01)   
0002.00      A          K PFFLD1                                               
        ****************** End of data ****************************************

<注>:
        (a)第一行中R依然表示FMYPF是記錄名,一般和物理文件的一樣;PFILE(MYPF)是聲明物理文件名。
        (b)第二行中K的位置也是處于T處,表示該處字段PFFLD1是邏輯文件的鍵值。

      (3)建立對物理文件或者邏輯文件進行簡單操作的RPG程序:
建立步驟和物理文件一樣,不過值得注意的是,“Source type”必須為RPG,表示該文件是RPG源程序文件,這里假設(shè)文件名為MYRPG,代碼如下:

        *************** Beginning of data *************************************
0001.00      FMYPF01  O   E                     DISK                           
0002.00      FMYLF01   IF  E           K        DISK                           
0003.00      F                    FMYPF                             KRENAMEFMYLF      
0004.00      C                           MOVE 'RCD1'    PFFLD1                       
0005.00      C                           Z-ADD1            PFFLD2                       
0008.00      C                           WRITEFMYPF                                 
0009.00      C           *LOVAL    SETLLFMYLF                                 
0010.00      C                           READ FMYLF                    90            
0011.00      C           *IN90      IFEQ '0'                                    
0012.00      C           PFFLD1    DSPLY                                       
0013.00      C           PFFLD2    DSPLY                                       
0014.00      C                           ENDIF                                       
0015.00      C                           SETON                     LR               
0016.00      C                           RETRN                                       
        ****************** End of data ****************************************

<注:因文件同名,故命名為MYRPGPFLF>
<注>:
       (a) 第一行MYPF是我們上面建立的物理文件名,記住,不是記錄名,別搞錯了;O位于IP的I處,表示該文件是只允許寫入;E位于F處,表示該文件是外部文件;DISK位于Device處,表示該文件是磁盤文件;
       (b) 第二行MYLF是我們上面建立的邏輯文件名,記住,不是記錄名,別搞錯了;I位于IP的I處,表示該文件是只允許讀。缓竺娴腇表示該文件是全過程文件,記住一般都要寫這個F的就行了;E位于F處,表示該文件是外部文件;K位于L..I的I處,表示該文件有鍵值;DISK位于Device處,表示該文件是磁盤文件;
       (c) 第三行的FMYPF位于Ext-record處,是邏輯文件的記錄名;“KRENAMEFMYLF”其實由三部分組成:“K”、“RENAME”和“FMYLF”。"K"表示該句和上一行是連續(xù)的,即對上一行的補充,“RENAME”表示重命名,“FMYLF”是任意指定的。
       這行的意思就是把邏輯文件MYLF的記錄名FMYPF重命名為FMYLF,因為它原本的記錄名和物理文件相同,所以必須重命名。
       (d) 第四行中的MOVE表示右移,該行意思是把常量'RCD1'右移給字段PFFLD1;
       (e) 第五行中的Z-ADD表示對變量置0,再賦值,該行意思是把常量1賦給字段PFFLD2;
       (f) 第六行中的WRITE表示寫一筆記錄,后面的FMYPF是物理文件記錄名,記住,不是物理文件名,別搞錯了,該行意思是把PFFLD1、PFFLD2組成的記錄寫入物理文件;
       (g) 第七行中的SETLL表示給文件設(shè)置低界,后面緊跟著的FMYLF是邏輯文件記錄名,這個是我們重命名后的名字,*LOVAL是系統(tǒng)常量,表示最小值,該行的意思是把文件指針指向文件頭;
       (h) 第八行中的READ表示讀一筆記錄,后面的FMYLF是邏輯文件記錄名,這個是我們重命名后的名字,90位于Eq處,表示指示器,該行的意思是讀邏輯文件的一筆記錄,讀到的話指示器置為'0',否則,置為'1';
       (i) 第九行的IFEQ表示如果等于的意思,該句的意思就是如果指示器90等于‘0’,即讀到記錄;
       (j) 第十、十一行中的DSPLY用來顯示字段變量,這兩行的意思是顯示字段變量PFFLD1,PFFLD2的值;
       (k) 第十二行中的ENDIF和前面的IF匹配,這是必須的;
       (l) 第十三行中的SETON用來把指示器的狀態(tài)改為'1',該句意思是把指示器LR置為‘1’。

到此為止,你應(yīng)該懂得如何往文件讀寫數(shù)據(jù)。

論壇徽章:
0
2 [報告]
發(fā)表于 2008-05-23 17:11 |只看該作者
樓主,我輸入你的代碼compile時有如下錯誤...請幫忙看看.

                          M e s s a g e   S u m m a r y                        
* QRG2071 Severity:  30   Number:    1                                       
           Message . . . . :   The RENAME option is invalid. No Record-Format  
             names associated with Externally-Described file.                  
* QRG2120 Severity:  40   Number:    2                                       
           Message . . . . :   External description not found for file         
             specified as externally described. File ignored.                  
* QRG5132 Severity:  30   Number:    3                                       
           Message . . . . :   Factor 2 entry is not the name of a file or a   
             record format.                                                   
* QRG7030 Severity:  30   Number:    2                                       
           Message . . . . :   The Field or indicator is not defined.

論壇徽章:
0
3 [報告]
發(fā)表于 2008-05-23 18:29 |只看該作者
先把40的錯誤解決掉

論壇徽章:
0
4 [報告]
發(fā)表于 2008-05-26 08:36 |只看該作者
尚未入門,就40錯誤而言,請教如何產(chǎn)生External description for file         
             specified as externally described.
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP