2012年11月07日投稿 / 投稿者 : hatena / タグ : 投稿プログラム 実用ツール mkII専用
DATA文に書かれたリストをソートし表示します。 リストの書き方は「DATA LIST1,LIST2」のようなかんじです。 この場合、LIST1がソートの対象となりLIST1のソートに合わせてLIST2もソートされます。
プチコンmkII 向けの QR コードです。
’┌─────────────────────────┐ ’│┿ List Sorter │ ’│└┬─Version Ver1.00 │ ’│ ├─FileName PRG:HN_LISTS │ ’│ └─Auther hatena │ ’└─────────────────────────┘ @LISTDATA ’ :------------------: ’ : DATA AAA,BBB : ’ Sample: DATA CCC,”” : ’ : DATA ””,DDD : ’ :------------------: ’─────────────────────────── ’↓↓↓Write list data here.↓↓↓ ’─────────────────────────── ’─────────────────────────── ’↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ ’ ’↓↓↓↓Do not delete this.↓↓↓↓ ’─────────────────────────── DATA *----END_LIST_DATA----* ’─────────────────────────── ’↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ ’─────────────────────────── GOSUB@INI ’ヘンスウ セッテイ GOSUB@LISTSET ’ リスト サクセイ GOSUB@PUT ’ リスト ヒョウシ゛ GOTO @MAINLOOP ’ メイン ル-フ゜ ’--------------------------- @INI ’ショキカ CLEAR ’サイタ゛イ コウモクスウ LISTMAX=1000 DIM LIST1$(LISTMAX+1) DIM LIST2$(LISTMAX+1) ’テ゛-タ ノ マツヒ゛ ヲ アラワス モシ゛レツ ELDSTR$=”*----END_LIST_DATA----*” ’LEFT DATA カ゛ ナイトキ ヒョウシ゛ NOLIST1$=”NO DATA” ’RIGHT DATA カ゛ ナイトキ ヒョウシ゛ NOLIST2$=”NO DATA” ’リストテ゛-タ ノ ラヘ゛ルメイ LBL_LIST$=”@LISTDATA” ’メインル-フ゜ ノ VSYNC ノ アタイ MAINVSYNC=1 ’スクロ-ル アッフ゜ ホ゛タン SCRUP=1 ’スクロ-ル タ゛ウン ホ゛タン SCRDOWN=2 ’ソ-ト ノ ハシ゛メ ノ イチ SORTST=0 ’キ゛ョウハ゛ンコ゛ウ ノ ハシ゛メ ノ イチ PUTST=1 ’キ゛ョウハ゛ンコ゛ウ ト テ゛-タ ノ クキ゛リ NUM__DATA$=”.” ’テ゛-タ カン ノ クキ゛リ DATA__DATA$=”,” RETURN ’--------------------------- @LISTSET RESTORE LBL_LIST$ FOR I=0 TO LISTMAX READ READS$ IF READS$!=ELDSTR$ THEN LIST1$(I)=READS$:READ LIST2$(I) ELSE GET=I:I=LISTMAX NEXT SORT SORTST,GET,LIST1$,LIST2$ RETURN ’--------------------------- @PUT CLS FOR I=ST TO ST+22 ? ” ”*(LEN(STR$(LISTMAX))-LEN(STR$(I+PUTST)));I+PUTST;NUM__DATA$; IF LIST1$(I)==”” THEN ? NOLIST1$;DATA__DATA$; ELSE ? LIST1$(I);DATA__DATA$; IF LIST2$(I)==”” THEN ? NOLIST2$ ELSE ? LIST2$(I) NEXT RETURN ’--------------------------- @MAINLOOP UPFLG=0:DOWNFLG=0 UPFLG=(BUTTON() AND SCRUP) DOWNFLG=(BUTTON() AND SCRDOWN) IF UPFLG THEN ST=ST-1:ST=ST*(ST>0):GOSUB@PUT IF DOWNFLG THEN ST=ST+1:ST=ST*(ST<(LISTMAX-22))+(LISTMAX-23)*(ST>LISTMAX-23):GOSUB@PUT VSYNC MAINVSYNC GOTO@MAINLOOP
この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)