- 论坛徽章:
- 0
|
不知道你有没有完成。最近才上论坛,看到这个觉得有点意思。闲来没事,就试了下。
一个汉字在400里面占用4个字节,第一个字节表示汉字开始,第二第三个字节表示该汉字,第四个字节表示汉字结束。
所以我自己写了个程序,希望对你有所帮助。(RPG3)
小写金额 14P 2
实现功能:输入小写金额:10010.11 大写金额“壹零壹十元壹角壹分”(这个零我是揣摸别人读数字时的习惯,所以不是正规的大写写法,关于这个习惯,N多人有N多种读法,本想改为大写写法,可我确实不知是不是应该写成“壹万零仟零百壹拾零元壹角一分”)
没有从LF READ,而是选择屏幕输入输出,相信改成READ 也比较简单。
写完没经过严密测试,可能会有不少BUG,欢迎指出。
显示文件(XZD010W)很简单,就一个小写金额字段:W1XX 14Y 2 大写金额字段:W1DX 58O
0000.30 A DSPSIZ(24 80 *DS3)
0000.31 A CF01
0000.40 A R XZD010W1
0000.60 A 3 31' 小写金额转大写金额 '
0000.70 A DSPATR(RI)
0000.80 A 9 11' 请输入小写金额: '
0000.90 A W1XX 14Y 2B 9 30EDTCDE(1)
0001.00 A R XZD010W2
0001.20 A 3 31' 小写金额转大写金额 '
0001.30 A DSPATR(RI)
0001.40 A 9 3' 请输入小写金额: '
0001.50 A W1XX 14Y 2O 9 22EDTCDE(1)
0001.60 A 12 9' 大写金额: '
0001.70 A W1DX 58O O 12 22DSPATR(UL)
程序(XZD010)
FXZD010W CF E WORKSTN
F*------------------------------------------
E TTT 1 9 4
E TAB1 1 10 1 0 TAB2 4
E*----------------------------------------------------
I DS
I 1 4 HZ
I 1 1 HB
I 2 3 HH
I 4 4 HE
I DS
I 1 40SR
I 1 10QIAN
I 2 20BAI
I 3 30SHI
I 4 40GE
I DS
I 1 142W1XX
I 1 40YD
I 5 80WD
I 9 120GD
I 13 140FD
I 1 10QY
I 2 20BY
I 3 30SY
I 4 40Y
I 5 50QW
I 6 60BW
I 7 70SW
I 8 80W
I 9 90Q
I 10 100B
I 11 110S
I 12 120G
I 13 130J
I 14 140F
I*-----------------------------------------------------
C MOVEL*BLANK W1XX
C STEP01 TAG
C EXFMTXZD010W1
C KA GOTO END
C MOVEL*BLANK W1DX
C W1XX IFEQ 0
C 0 LOKUPTAB1 TAB2 90
C MOVELTAB2 HZ
C MOVELHB W1DX
C CAT HH:0 W1DX
C MOVELTTT,3 HZ
C CAT HH:0 W1DX
C MOVELTTT,9 HZ
C CAT HH:0 W1DX
C CAT HE:0 W1DX
C GOTO STEP03
C ENDIF
C MOVELTTT,3 HZ
C MOVELHB W1DX
C YD CABEQ0 70
C WD CABEQ0 60
C GD CABEQ0 50
C N70 DO
C Z-ADDYD SR
C EXSR XZD
C MOVELTTT,8 HZ
C CAT HH:0 W1DX
C ENDDO
C N60 DO
C Z-ADDWD SR
C EXSR XZD
C MOVELTTT,7 HZ
C CAT HH:0 W1DX
C ENDDO
C N50 DO
C Z-ADDGD SR
C EXSR XZD
C ENDDO
C *IN50 IFEQ '0'
C *IN60 OREQ '0'
C *IN70 OREQ '0'
C MOVELTTT,3 HZ
C CAT HH:0 W1DX
C ENDIF
C FD IFEQ 0
C MOVELTTT,9 HZ
C CAT HH:0 W1DX
C ENDIF
C J CABEQ0 TAGF
C J LOKUPTAB1 TAB2 90
C 90 MOVELTAB2 HZ
C CAT HH:0 W1DX
C MOVELTTT,2 HZ
C CAT HH:0 W1DX
C TAGF TAG
C F CABEQ0 STEP02
C F LOKUPTAB1 TAB2 90
C MOVELTAB2 HZ
C CAT HH:0 W1DX
C MOVELTTT,1 HZ
C CAT HH:0 W1DX
C STEP02 TAG
C CAT HE:0 W1DX
C STEP03 TAG
C EXFMTXZD010W2
C GOTO STEP01
C END TAG
C SETON LR
C RETRN
C*-------------------------------------------------------
C XZD BEGSR
C QIAN CABNE0 51
C BAI CABNE0 52
C SHI CABNE0 53
C GE CABNE0 54
C SR IFEQ GD
C YD IFNE 0
C WD ORNE 0
C N51 DO
C QIAN LOKUPTAB1 TAB2 90
C MOVELTAB2 HZ
C CAT HH:0 W1DX
C GOTO TAGB
C ENDDO
C ENDIF
C ENDIF
C N51 GOTO TAGB
C QIAN LOKUPTAB1 TAB2 90
C MOVELTAB2 HZ
C CAT HH:0 W1DX
C MOVELTTT,6 HZ
C CAT HH:0 W1DX
C TAGB TAG
C N52N53N54 GOTO XZDEND
C N51N52 GOTO TAGS
C BAI LOKUPTAB1 TAB2 90
C MOVELTAB2 HZ
C CAT HH:0 W1DX
C N52 GOTO TAGS
C MOVELTTT,5 HZ
C CAT HH:0 W1DX
C TAGS TAG
C N53N54 GOTO XZDEND
C N52N53 GOTO TAGG
C SHI LOKUPTAB1 TAB2 90
C MOVELTAB2 HZ
C CAT HH:0 W1DX
C N53 GOTO TAGG
C MOVELTTT,4 HZ
C CAT HH:0 W1DX
C TAGG TAG
C N54 GOTO XZDEND
C GE LOKUPTAB1 TAB2 90
C MOVELTAB2 HZ
C CAT HH:0 W1DX
C XZDEND ENDSR
** TTT
分
角
元
拾
佰
仟
万
亿
整
** TAB1 TAB2
0 零
1 壹
2 贰
3 叁
4 肆
5 伍
6 陆
7 柒
8 捌
9 玖
[ 本帖最后由 uglyneo 于 2007-3-22 11:06 编辑 ] |
|