No.44-4 |
プログラムを短くしたい。 |
回答者 高橋 周助 | 1997年02月 181号 P.28 |
質問箱 No.44(1996年12月号)の回答-4
■ 選択文字列が一定の場合:
2文字の時 LET X2=VAL(V2);LET V3=KMID$("新規継続脱退途中年頭",2*X2-1,2);
2文字の時 LET X2=VAL(V2);LET V3=KMID$("長谷川名古屋PUC123",3*X2-2,3);
4文字の時 4*X2-3,4
: :
: :
■ 選択する文字数が、一定していない場合:
(ただし、文字の中に、半角数字が混入していないこと)
LET X2=VAL(V2);
LET V3="1PUC2ピップス3The PIPS4ウィンドウズ版 TPS5678910";
LET V3=RIGHT$(V3,INSTR(1,V3,NUM$(X2 ))+1);
LET V3= LEFT$(V3,INSTR(1,V3,NUM$(X2+1))-1);
(文字列が10種類以上ある場合は、さらに一工夫する必要があります)
■ 動作確認用プログラムを、次頁に作っておきました。
2文字の時 ..................<A1>
3文字の時 ..................<A2>
一定していない時 ..................<A3>
<A1> /*選択する文字数が、すべて文字の時*/
$START: CLOSE; DISP OPEN;
INPUT [10,8],"番号選択(1〜5//0で終了)→ ",V2;
LET X2=VAL(V2);
IF X2=0 THEN GOTO $STP;
IF X2<0 OR >5 THEN GOTO $START;
LET V3=KMID$("新規継続脱退途中年頭"、2*X2-1,2);
DISP [30,10],V3;
INPUT [20,12],"了解したら、リターン",V4;
GOTO $START;
$STP: CLOSE; STOP;
<A2> /*選択する文字数が、すべて3文字の時*/
$START: CLOSE; DISP OPEN;
INPUT [10,8],"番号選択(1〜4//0で終了)→ ",V2;
LET X2=VAL(V2);
IF X2=0 THEN GOTO $STP;
IF X2<0 OR >4 THEN GOTO $START;
LET V3=KMID$("長谷川名古屋PUC123"、3*X2-2,3);
DISP [30,10],V3;
INPUT [20,12],"了解したら、リターン",V4;
GOTO $START;
$STP: CLOSE; STOP;
<A3> /*選択する文字数が、一定していない時*/
/*ただし、文字の中に、半角数字が混入していないこと*/
$START: CLOSE; DISP OPEN;
INPUT [10,8],"番号選択(1〜4//0で終了)→ ",V2;
LET X2=VAL(V2);
IF X2<2 OR >4 THEN GOTO $START;
IF X2=0 THEN GOTO $STP;
LET V3="1PUC2ピップス3The PIPS4ウインドウズ版 TPS5678910";
LET V3=RIGHT$(V3,INSTR(1,V3,NUM$(X2 ))+1);
LET V3= LEFT$(V3,INSTR(1,V3,NUM$(X2+1))-1);
DISP [30,10],V3;
INPUT [20,12],"了解したら、リターン",V4;
GOTO $START;
$STP: CLOSE; STOP;
|
|