REM 944BASIC 'メダロット・データベース' イベント関連 INCLUDE "FSIZ0010.EXE":REM ボタン表示 INCLUDE "FSIZ0010.EX2":REM キー入力 LOAD_DATA=STR('FUSHI\DATA.CSV') DIM INI(0) LOADTEXT 'FSIZ0010.INI',INI DIM DATA(1000) DIM VIEW(15,0) DIM MENU_L(14) DIM LIST_VER(26) LIST_VER(0)=STR(" 1−カブト ") LIST_VER(1)=STR(" 1−クワガタ") LIST_VER(2)=STR(" 1−パーコレ1") LIST_VER(3)=STR(" 1−パーコレ2") LIST_VER(4)=STR("PE−カブト ") LIST_VER(5)=STR("PE−クワガタ") LIST_VER(6)=STR("真型−カブト ") LIST_VER(7)=STR("真型−クワガタ") LIST_VER(8)=STR(" 2−カブト ") LIST_VER(9)=STR(" 2−クワガタ") LIST_VER(10)=STR(" 2−パーコレ") LIST_VER(11)=STR(" 弐−カブト ") LIST_VER(12)=STR(" 弐−クワガタ") LIST_VER(13)=STR(" R−−−−−") LIST_VER(14)=STR(" R−パーコレ") LIST_VER(15)=STR(" 3−カブト ") LIST_VER(16)=STR(" 3−クワガタ") LIST_VER(17)=STR(" 3−パーコレ") LIST_VER(18)=STR(" 4−カブト ") LIST_VER(19)=STR(" 4−クワガタ") LIST_VER(20)=STR(" 5−カブト ") LIST_VER(21)=STR(" 5−クワガタ") LIST_VER(22)=STR("NAVI−カブト ") LIST_VER(23)=STR("NAVI−クワガタ") LIST_VER(24)=STR(" G−カブト ") LIST_VER(25)=STR(" G−クワガタ") LIST_VER(26)=STR("  BRAVE") LOADTEXT LOAD_DATA,DATA DATA_LEN=GETREADCNT:REN データの数 IF DATA_LEN>=7 THEN DIM SEARCH(DATA_LEN) ELSE DIM SEARCH(7) C_VER=0:REM NAVI=1,G=2,BRAVE=3 SELECT_N=0:REM 選んでいるボタン CX=0:REM 横の値 CY=0 H_V=0:REM 汎用変数 P_X=0 P_Y=0 SET_V=1 REM ■■■■■■ REM ■初期設定■ REM ■■■■■■ REM 変数定義 M_VER="":REM バージョン M_NAME="":REM 純正体名 M_POSITION="":REM 順番 M_SEX="":REM 性別 M_TYPE="":REM タイプ M_SERIAL="":REM シリアル M_MASTER="":REM マスター M_SHANK="":REM 脚部タイプ M_NO="":REM 番号 M_NO2="":REM 番号2 M_FIELD="":REM フィールド M_MEDAL="":REM メダル M_HEAD="":REM 頭パーツ M_RIGHT="":REM 右パーツ M_LEFT="":REM 左パーツ M_LEG="":REM 足パーツ M_PLACE="":REM 場所 M_DN=STR("---"):REM データ番号 M_VER=STR(LIST_VER(INI(0))) IF (INI(0)=22)+(INI(0)=23) THEN C_VER=1 IF (INI(0)=24)+(INI(0)=25) THEN C_VER=2 IF INI(0)=26 THEN C_VER=3 GOSUB *RE_SET SET_V=0 *LOOP FASTTICK 100 SYNC K=INKEY IFBLK PADX=1 GOSUB *P_RIGHT ELSEIF PADX=-1 GOSUB *P_LEFT ELSEIF PADY=1 GOSUB *P_DOWN ELSEIF PADY=-1 GOSUB *P_UP ELSEIF (PADA=1)+(K=767) GOSUB *P_ENTER ELSEIF PADC=1 GOSUB *P_JUN ELSEIF PADB=1 GOSUB *P_GYAKU ELSEIF (PEN=1)+(PEN=2) P_Z=PEN P_X=PENX P_Y=PENY GOSUB *P_PEN ENDIF IF (SYSCNT>HEADER_T+1)*(HEADER_F=1) THEN COLORFG 255,255,0:BOXFILL 21,0,240,16:GOSUB *MP_TITLE:HEADER_F=0 IF HEADER_F=0 THEN GOSUB *DATE:GOSUB *TIME GOTO *LOOP *DATE X=206:Y=-1 FONT 48:COLORFG 0,0,0:COLORBG 255,255,0 GCURSOR X,Y:H_V=INT(DATE/100)%100 H_V=STR(H_V) IF LEN(H_V)=1 THEN H_V=STRCAT(' ',H_V) PRINT H_V GCURSOR X+7,Y:PRINT '/' GCURSOR X+10,Y:H_V=DATE%100 H_V=STR(H_V) IF LEN(H_V)=1 THEN H_V=STRCAT(' ',H_V) PRINT H_V GCURSOR X+18,Y:H_V=GETWEEK(DATE,2) PRINT H_V RETURN *TIME X=210:Y=8 FONT 48:COLORFG 0,0,0:COLORBG 255,255,0 GCURSOR X,Y:H_V=INT(TIME/10000) IF H_V=0 THEN H_V=24 IF H_V=1 THEN H_V=25 IF H_V=2 THEN H_V=26 IF H_V=3 THEN H_V=27 IF H_V=4 THEN H_V=28 H_V=STR(H_V) IF LEN(H_V)=1 THEN H_V=STRCAT(' ',H_V) PRINT H_V GCURSOR X+7,Y:PRINT ':' GCURSOR X+10,Y:H_V=INT(TIME/100)%100 H_V=STR(H_V) IF LEN(H_V)=1 THEN H_V=STRCAT(' ',H_V) PRINT H_V GCURSOR X+17,Y:PRINT ':' GCURSOR X+20,Y:H_V=TIME%100 H_V=STR(H_V) IF LEN(H_V)=1 THEN H_V=STRCAT('0',H_V) PRINT H_V COLORFG 0,255,255:LINE 210,17,236,17 RETURN *RE_SET REM ■■■■■■■■ REM ■フィールドを描く■ REM ■■■■■■■■ REM --------------+ REM 上の黄色いバー| COLORFG 255,255,0 BOXFILL 0,0,240,36 REM ------------+ REM 下画面の背景| COLORFG 170,255,170:REM 背景選択 BOXFILL 0,37,240,360:REM 背景壁画 REM ------------+ REM ボタンを描く| GOSUB *MP_TITLE :REM タイトル GOSUB *MP_VER :REM バージョン選択 GOSUB *MP_SAVE :REM ファイル保存 GOSUB *MP_CONFIG :REM 設定 GOSUB *MP_REFRESH:REM 更新 GOSUB *MP_NAME :REM 純正体名 GOSUB *MP_DN :REM データ番号 GOSUB *MP_MASTER :REM マスター名 GOSUB *MP_POSITION:REM 配置 GOSUB *MP_SEX :REM 性別 GOSUB *MP_TYPE :REM タイプ GOSUB *MP_SERIAL :REM 製品番号 GOSUB *MP_SHANK :REM 脚部タイプ GOSUB *MP_NO :REM 番号 GOSUB *MP_FIELD :REM フィールド GOSUB *MP_MEDAL :REM メダル GOSUB *MP_HEAD :REM 頭パーツ GOSUB *MP_RIGHT :REM 右パーツ GOSUB *MP_LEFT :REM 左パーツ GOSUB *MP_LEG :REM 足パーツ GOSUB *MP_PLACE :REM 場所 GOSUB *MP_B1 :REM前のデータを見る(19) GOSUB *MP_B2 :REM次のデータを見る(20) GOSUB *MP_B3 :REM 新規作成(21) GOSUB *MP_B4 :REM 追加保存(22) GOSUB *MP_B5 :REM 訂正保存(23) GOSUB *MP_B6 :REM 次を入力(24) GOSUB *MP_B7 :REM クリア(25) GOSUB *MP_B8 :REM 削除(26) GOSUB *MP_B9 :REM 検索背景 GOSUB *MP_B11 :REM 選択単独-S28 GOSUB *MP_B10 :REM 完全一致S27 GOSUB *MP_B12 :REM 選択単独+S29 GOSUB *MP_B13 :REM メニュー RETURN *V_MENU REM ■■■■■■ REM メニュー表示 MENU_L(0)=STR('新規作成') MENU_L(1)=STR('次のデータを見る') MENU_L(2)=STR('前のデータを見る') MENU_L(3)=STR('追加保存') MENU_L(4)=STR('訂正保存') MENU_L(5)=STR('クリア') MENU_L(6)=STR('削除') MENU_L(7)=STR('完全一致検索') MENU_L(8)=STR('選択単独検索+') MENU_L(9)=STR('選択単独検索-') MENU_L(10)=STR('次を入力') MENU_L(11)=STR('<--戻る') MENU_L(12)=STR('複数検索+') MENU_L(13)=STR('複数検索-') MENU_L(14)=STR('検索結果クリア') HEADER_V=STR('Select Menu...') GOSUB *HEADER_P GCURSOR 19,0:FONT 112 H_V=15 IF (MC_VER+MC_NANE+MC_POSITION+MC_SEX+MC_TYPE+MC_SERIAL+MC_MASTER+MC_SHANK+MC_NO+MC_FIELD+MC_MEDAL+MC_HEAD+MC_RIGHT+MC_LEFT+MC_LEG+MC_PLACE)=0 THEN H_V=14 MENU MENU_L,H_V,SELECT_MENU SELECT_MENU=MENUNO IF MENUNO=0 THEN GOSUB *DATA_NEW IF MENUNO=1 THEN GOSUB *PLUS_DATA IF MENUNO=2 THEN GOSUB *MINUS_DATA IF MENUNO=3 THEN GOSUB *DATA_ADD IF MENUNO=4 THEN GOSUB *DATA_RESET IF MENUNO=5 THEN GOSUB *DATA_CLEAR IF MENUNO=6 THEN GOSUB *DATA_DEL IF MENUNO=7 THEN GOSUB *C_LIST IF MENUNO=8 THEN GOSUB *C_1_PLUS IF MENUNO=9 THEN GOSUB *C_1_MINUS IF MENUNO=10 THEN GOSUB *INPUT_NEXT IF MENUNO=14 THEN GOSUB *C_A_CLEAR IF MENUNO=12 THEN GOSUB *C_A_PLUS IF MENUNO=13 THEN GOSUB *C_A_MINUS RETURN *C_A_MINUS REM ■■■■ REM 複数検索- R_F=0 IF (MC_VER+MC_NANE+MC_POSITION+MC_SEX+MC_TYPE+MC_SERIAL+MC_MASTER+MC_SHANK+MC_NO+MC_FIELD+MC_MEDAL+MC_HEAD+MC_RIGHT+MC_LEFT+MC_LEG+MC_PLACE)=0 THEN GOSUB *C_A_C1 IF (STRCMP('---',M_DN)=0) THEN H_V=DATA_LEN-1 ELSE H_V=H_V-1 IF (STRCMP(M_DN,'---')=0) THEN H_V=0 ELSE H_V=M_DN *C_A_MINUS_A HEADER_V=STRCAT(H_V,'番のデータを調査中'):GOSUB *HEADER_P GOSUB *VIEW_SUB_ALL BXVDG=(((MC_VER=0)+MC_VER*(STRCMP(M_VER,VIEW(13))=0))*((MC_NAME=0)+MC_NAME*(STRCMP(M_NAME,VIEW(1))=0))*((MC_MASTER=0)+MC_MASTER*(STRCMP(M_MASTER,VIEW(14))=0))*((MC_POSITION=0)+MC_POSITION*(STRCMP(M_POSITION,VIEW(5))=0))*((MC_SEX=0)+MC_SEX*(STRCMP(M_SEX,VIEW(2))=0))*((MC_TYPE=0)+MC_TYPE*(STRCMP(M_TYPE,VIEW(3))=0))*((MC_SERIAL=0)+MC_SERIAL*(STRCMP(M_SERIAL,VIEW(4))=0))*((MC_SHANK=0)+MC_SHANK*(STRCMP(M_SHANK,VIEW(11))=0))*((MC_NO=0)+MC_NO*(STRCMP(M_NO,VIEW(0))=0))*((MC_FIELD=0)+MC_FIELD*(STRCMP(M_FIELD,VIEW(12))=0))*((MC_MEDAL=0)+MC_MEDAL*(STRCMP(M_MEDAL,VIEW(6))=0))*((MC_HEAD=0)+MC_HEAD*(STRCMP(M_HEAD,VIEW(7))=0))*((MC_RIGHT=0)+MC_RIGHT*(STRCMP(M_RIGHT,VIEW(8))=0))*((MC_LEFT=0)+MC_LEFT*(STRCMP(M_LEFT,VIEW(9))=0))*((MC_LEG=0)+MC_LEG*(STRCMP(M_LEG,VIEW(10))=0))*((MC_PLACE=0)+MC_PLACE*(STRCMP(M_PLACE,VIEW(15))=0))) IFBLK BXVDG GOSUB *INPUT_DATA R_F=1 ENDIF IF R_F THEN RETURN IFBLK (H_V=0) H_V=DATA_LEN-1 ELSE H_V=H_V-1 ENDIF GOTO *C_A_MINUS_A RETURN *C_A_PLUS REM ■■■■ REM 複数検索+ R_F=0 IF (MC_VER+MC_NANE+MC_POSITION+MC_SEX+MC_TYPE+MC_SERIAL+MC_MASTER+MC_SHANK+MC_NO+MC_FIELD+MC_MEDAL+MC_HEAD+MC_RIGHT+MC_LEFT+MC_LEG+MC_PLACE)=0 THEN GOSUB *C_A_C1 IF (STRCMP(M_DN,'---')=0) THEN H_V=0 ELSE H_V=M_DN *C_A_PLUS_A HEADER_V=STRCAT(H_V,'番のデータを調査中'):GOSUB *HEADER_P GOSUB *VIEW_SUB_ALL BXVDG=(((MC_VER=0)+MC_VER*(STRCMP(M_VER,VIEW(13))=0))*((MC_NAME=0)+MC_NAME*(STRCMP(M_NAME,VIEW(1))=0))*((MC_MASTER=0)+MC_MASTER*(STRCMP(M_MASTER,VIEW(14))=0))*((MC_POSITION=0)+MC_POSITION*(STRCMP(M_POSITION,VIEW(5))=0))*((MC_SEX=0)+MC_SEX*(STRCMP(M_SEX,VIEW(2))=0))*((MC_TYPE=0)+MC_TYPE*(STRCMP(M_TYPE,VIEW(3))=0))*((MC_SERIAL=0)+MC_SERIAL*(STRCMP(M_SERIAL,VIEW(4))=0))*((MC_SHANK=0)+MC_SHANK*(STRCMP(M_SHANK,VIEW(11))=0))*((MC_NO=0)+MC_NO*(STRCMP(M_NO,VIEW(0))=0))*((MC_FIELD=0)+MC_FIELD*(STRCMP(M_FIELD,VIEW(12))=0))*((MC_MEDAL=0)+MC_MEDAL*(STRCMP(M_MEDAL,VIEW(6))=0))*((MC_HEAD=0)+MC_HEAD*(STRCMP(M_HEAD,VIEW(7))=0))*((MC_RIGHT=0)+MC_RIGHT*(STRCMP(M_RIGHT,VIEW(8))=0))*((MC_LEFT=0)+MC_LEFT*(STRCMP(M_LEFT,VIEW(9))=0))*((MC_LEG=0)+MC_LEG*(STRCMP(M_LEG,VIEW(10))=0))*((MC_PLACE=0)+MC_PLACE*(STRCMP(M_PLACE,VIEW(15))=0))) IFBLK BXVDG GOSUB *INPUT_DATA R_F=1 ENDIF IF R_F THEN RETURN IFBLK H_V=DATA_LEN H_V=0 ELSE H_V=H_V+1 ENDIF GOTO *C_A_PLUS_A RETURN RETURN *C_A_CLEAR REM ■■■■■■■ REM 検索結果クリア SET_V=1 IF MC_VER THEN MC_VER=0:GOSUB *MP_VER IF MC_NAME THEN MC_NAME=0:GOSUB *MP_NAME IF MC_POSITION THEN MC_POSITION=0:GOSUB *MP_POSITION IF MC_SEX THEN MC_SEX=0:GOSUB *MP_SEX IF MC_TYPE THEN MC_TYPE=0:GOSUB *MP_TYPE IF MC_SERIAL THEN MC_SERIAL=0:GOSUB *MP_SERIAL IF MC_MASTER THEN MC_MASTER=0:GOSUB *MP_MASTER IF MC_SHANK THEN MC_SHANK=0:GOSUB *MP_SHANK IF MC_NO THEN MC_NO=0:GOSUB *MP_NO IF MC_FIELD THEN MC_FIELD=0:GOSUB *MP_FIELD IF MC_MEDAL THEN MC_MEDAL=0:GOSUB *MP_MEDAL IF MC_HEAD THEN MC_HEAD=0:GOSUB *MP_HEAD IF MC_RIGHT THEN MC_RIGHT=0:GOSUB *MP_RIGHT IF MC_LEFT THEN MC_LEFT=0:GOSUB *MP_LEFT IF MC_LEG THEN MC_LEG=0:GOSUB *MP_LEG IF MC_PLACE THEN MC_PLACE=0:GOSUB *MP_PLACE SET_V=0 RETURN *C_A_C1 REM ■■■■■■ REM 複数検索準備 MC_VER=0:MC_NAME=0:MC_POSITION=0:MC_SEX=0:MC_TYPE=0:MC_SERIAL=0:MC_MASTER=0:MC_SHANK=0:MC_NO=0:MC_FIELD=0:MC_MEDAL=0:MC_HEAD=0:MC_RIGHT=0:MC_LEFT=0:MC_LEG=0:MC_PLACE=0 SET_V=1 IF STRCMP(M_VER,'') THEN MC_VER=1:GOSUB *MP_VER IF STRCMP(M_NAME,'') THEN MC_NAME=1:GOSUB *MP_NAME IF STRCMP(M_POSITION,'') THEN MC_POSITION=1:GOSUB *MP_POSITION IF STRCMP(M_SEX,'') THEN MC_SEX=1:GOSUB *MP_SEX IF STRCMP(M_TYPE,'') THEN MC_TYPE=1:GOSUB *MP_TYPE IF STRCMP(M_SERIAL,'') THEN MC_SERIAL=1:GOSUB *MP_SERIAL IF STRCMP(M_MASTER,'') THEN MC_MASTER=1:GOSUB *MP_MASTER IF STRCMP(M_SHANK,'') THEN MC_SHANK=1:GOSUB *MP_SHANK IF STRCMP(M_NO,'') THEN MC_NO=1:GOSUB *MP_NO IF STRCMP(M_FIELD,'') THEN MC_FIELD=1:GOSUB *MP_FIELD IF STRCMP(M_MEDAL,'') THEN MC_MEDAL=1:GOSUB *MP_MEDAL IF STRCMP(M_HEAD,'') THEN MC_HEAD=1:GOSUB *MP_HEAD IF STRCMP(M_RIGHT,'') THEN MC_RIGHT=1:GOSUB *MP_RIGHT IF STRCMP(M_LEFT,'') THEN MC_LEFT=1:GOSUB *MP_LEFT IF STRCMP(M_LEG,'') THEN MC_LEG=1:GOSUB *MP_LEG IF STRCMP(M_PLACE,'') THEN MC_PLACE=1:GOSUB *MP_PLACE SET_V=0 RETURN *INPUT_NEXT REM ■■■■ REM 次を入力 HEADER_V=STR('値クリア'):GOSUB *HEADER_P M_NAME="":GOSUB *MP_NAME M_POSITION=M_POSITION+1 IFBLK (MENUNO=22)+(MENUNO=23) IF M_POSITION=6 THEN M_POSITION=1 ELSEIF (MENUNO=24)+(MENUNO=25) IF M_POSITION=3 THEN M_POSITION=1 ELSEIF MENUNO=26 M_POSITION=1 ELSE IF M_POSITION=4 THEN M_POSITION=1 ENDIF GOSUB *MP_POSITION M_SEX="":GOSUB *MP_SEX M_TYPE="":GOSUB *MP_TYPE M_SERIAL="":GOSUB *MP_SERIAL M_SHANK="":GOSUB *MP_SHANK M_NO="":GOSUB *MP_NO M_MEDAL="":GOSUB *MP_MEDAL M_HEAD="":GOSUB *MP_HEAD M_RIGHT="":GOSUB *MP_RIGHT M_LEFT="":GOSUB *MP_LEFT M_LEG="":GOSUB *MP_LEG M_DN=STR('---'):GOSUB *MP_DN HEADER_V=STR('新規作成終了'):GOSUB *HEADER_P RETURN *HEADER_P REM ■■■■■■■■■ REM オリジナルヘッダー HEADER_P_V=0 COLORFG 255,255,0 BOXFILL 21,0,240,16 IF LEN(HEADER_V)<27 THEN HEADER_P_V=26-LEN(HEADER_V) GCURSOR 24+HEADER_P_V*3,2 FONT 65 COLORFG 0,0,0 PRINT HEADER_V HEADER_T=SYSCNT HEADER_F=1 RETURN *C_1_MINUS REM ■■■■■■ REM 選択単独検索- H_V3=M_DN IF STRCMP(M_DN,'---')=0 THEN M_DN=DATA_LEN-1 ELSE M_DN=M_DN-1 IF M_DN<0 THEN M_DN=DATA_LEN-1 *C_1_MINUS_2 H_V2=0 HEADER_V=M_DN+1 HEADER_V=STRCAT('検索中...(',HEADER_V,'/',DATA_LEN,')'):GOSUB *HEADER_P H_V=M_DN GOSUB *VIEW_SUB_ALL IFBLK SELECT_N=0 IF (STRCMP(VIEW(13),M_VER)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=4 IF (STRCMP(VIEW(1),M_NAME)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=9 IF (STRCMP(VIEW(14),M_MASTER)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=5 IF (STRCMP(VIEW(5),M_POSITION)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=6 IF (STRCMP(VIEW(2),M_SEX)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=7 IF (STRCMP(VIEW(3),M_TYPE)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=8 IF (STRCMP(VIEW(4),M_SELIAL)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=10 IF (STRCMP(VIEW(11),M_SHANK)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=11 IF (STRCMP(VIEW(0),M_NO)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=12 IF (STRCMP(VIEW(12),M_FIELD)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=13 IF (STRCMP(VIEW(6),M_MEDAL)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=14 IF (STRCMP(VIEW(7),M_HEAD)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=15 IF (STRCMP(VIEW(8),M_RIGHT)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=16 IF (STRCMP(VIEW(9),M_LEFT)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=17 IF (STRCMP(VIEW(10),M_LEG)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=18 IF (STRCMP(VIEW(15),M_PLACE)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSE HEADER_V=STR('無効です。') GOSUB *HEADER_P H_V2=2 ENDIF REM MESSAGE M_DN IF H_V2=1 THEN HEADER_V=STRCAT(H_V,'番のデータを表示しています。終了'):GOSUB *HEADER_P:H_V2=2 IFBLK H_V2=0 IF M_DN<=0 THEN M_DN=DATA_LEN-1 ELSE M_DN=M_DN-1 ENDIF IF H_V2=2 THEN RETURN IF M_DN=H_V2+1 THEN HEADER_V=STR('データ無し'):GOSUB *HEADER_P:H_V2=2 IF H_V2=2 THEN RETURN GOTO *C_1_MINUS_2 *C_1_PLUS REM ■■■■■■ REM 選択単独検索+ H_V3=M_DN IF STRCMP(M_DN,'---')=0 THEN M_DN=0 ELSE M_DN=M_DN+1 IF M_DN>DATA_LEN-1 THEN M_DN=0 *C_1_PLUS_2 H_V2=0 HEADER_V=M_DN+1 HEADER_V=STRCAT('検索中...(',HEADER_V,'/',DATA_LEN,')'):GOSUB *HEADER_P H_V=M_DN GOSUB *VIEW_SUB_ALL IFBLK SELECT_N=0 IF (STRCMP(VIEW(13),M_VER)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=4 IF (STRCMP(VIEW(1),M_NAME)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=9 IF (STRCMP(VIEW(14),M_MASTER)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=5 IF (STRCMP(VIEW(5),M_POSITION)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=6 IF (STRCMP(VIEW(2),M_SEX)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=7 IF (STRCMP(VIEW(3),M_TYPE)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=8 IF (STRCMP(VIEW(4),M_SELIAL)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=10 IF (STRCMP(VIEW(11),M_SHANK)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=11 IF (STRCMP(VIEW(0),M_NO)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=12 IF (STRCMP(VIEW(12),M_FIELD)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=13 IF (STRCMP(VIEW(6),M_MEDAL)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=14 IF (STRCMP(VIEW(7),M_HEAD)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=15 IF (STRCMP(VIEW(8),M_RIGHT)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=16 IF (STRCMP(VIEW(9),M_LEFT)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=17 IF (STRCMP(VIEW(10),M_LEG)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSEIF SELECT_N=18 IF (STRCMP(VIEW(15),M_PLACE)=0) THEN GOSUB *INPUT_DATA:H_V2=1 ELSE HEADER_V=STR('無効です。') GOSUB *HEADER_P H_V2=2 ENDIF IF H_V2=1 THEN HEADER_V=STRCAT(H_V,'番のデータを表示しています。終了'):GOSUB *HEADER_P:H_V2=2 IFBLK H_V2=0 IF M_DN>DATA_LEN-1 THEN M_DN=0 ELSE M_DN=M_DN+1 ENDIF IF H_V2=2 THEN RETURN IF M_DN=H_V2-1 THEN HEADER_V=STR('データ無し'):GOSUB *HEADER_P:H_V2=2 GOTO *C_1_PLUS_2 *DATA_NEW REM ■■■■ REM 新規作成 HEADER_V=STR('値クリア'):GOSUB *HEADER_P M_NAME="":GOSUB *MP_NAME M_POSITION="":GOSUB *MP_POSITION M_SEX="":GOSUB *MP_SEX M_TYPE="":GOSUB *MP_TYPE M_SERIAL="":GOSUB *MP_SERIAL M_MASTER="":GOSUB *MP_MASTER M_SHANK="":GOSUB *MP_SHANK M_NO="":GOSUB *MP_NO M_FIELD="":GOSUB *MP_FIELD M_MEDAL="":GOSUB *MP_MEDAL M_HEAD="":GOSUB *MP_HEAD M_RIGHT="":GOSUB *MP_RIGHT M_LEFT="":GOSUB *MP_LEFT M_LEG="":GOSUB *MP_LEG M_PLACE="":GOSUB *MP_PLACE M_DN=STR('---'):GOSUB *MP_DN HEADER_V=STR('新規作成終了') GOSUB *HEADER_P RETURN *DATA_DEL REM ■■ REM 削除 IF STRCMP('---',M_DN)=0 THEN HEADER_V=STR('データ番号が指定されていません'):GOSUB *HEADER_P:RETURN HEADER_V=STR('値クリア'):GOSUB *HEADER_P M_NAME="":GOSUB *MP_NAME M_POSITION="":GOSUB *MP_POSITION M_SEX="":GOSUB *MP_SEX M_TYPE="":GOSUB *MP_TYPE M_SERIAL="":GOSUB *MP_SERIAL M_MASTER="":GOSUB *MP_MASTER M_SHANK="":GOSUB *MP_SHANK M_NO="":GOSUB *MP_NO M_FIELD="":GOSUB *MP_FIELD M_MEDAL="":GOSUB *MP_MEDAL M_HEAD="":GOSUB *MP_HEAD M_RIGHT="":GOSUB *MP_RIGHT M_LEFT="":GOSUB *MP_LEFT M_LEG="":GOSUB *MP_LEG M_PLACE="":GOSUB *MP_PLACE IFBLK M_DN=DATA_LEN-1 DATA(M_DN)='' M_DN=M_DN-1 ELSE H_V2=DATA_LEN-1 FOR H_V=M_DN TO DATA_LEN-1 HEADER_V=STRCAT('データ並び替え中...(',H_V,'/',H_V2,')'):GOSUB *HEADER_P DATA(H_V)=STR(DATA(H_V+1)) NEXT ENDIF DATA_LEN=DATA_LEN-1 GOSUB *MP_DN H_V=M_DN HEADER_V=STRCAT(M_DN,'番のデータ取得中...'):GOSUB *HEADER_P GOSUB *INPUT_DATA HEADER_V=STR('削除終了'):GOSUB *HEADER_P RETURN *DATA_CLEAR REM ■■■ REM クリア M_NAME="":GOSUB *MP_NAME M_POSITION="":GOSUB *MP_POSITION M_SEX="":GOSUB *MP_SEX M_TYPE="":GOSUB *MP_TYPE M_SERIAL="":GOSUB *MP_SERIAL M_MASTER="":GOSUB *MP_MASTER M_SHANK="":GOSUB *MP_SHANK M_NO="":GOSUB *MP_NO M_FIELD="":GOSUB *MP_FIELD M_MEDAL="":GOSUB *MP_MEDAL M_HEAD="":GOSUB *MP_HEAD M_RIGHT="":GOSUB *MP_RIGHT M_LEFT="":GOSUB *MP_LEFT M_LEG="":GOSUB *MP_LEG M_PLACE="":GOSUB *MP_PLACE HEADER_V=STR('クリア終了'):GOSUB *HEADER_P RETURN *DATA_RESET REM ■■■■ REM 訂正保存 H_V=STRCAT(M_NO,',',M_NAME,',',M_SEX,',',M_TYPE,',',M_SERIAL,',',M_POSITION,',',M_MEDAL,',',M_HEAD,',',M_RIGHT,',',M_LEFT,',',M_LEG,',',M_SHANK,',',M_FIELD,',',M_VER,',',M_MASTER,',',M_PLACE) IF STRCMP(M_DN,'---')=0 THEN HEADER_V=STR('データ番号が指定されていません'):GOSUB *HEADER_P:RETURN DATA(M_DN)=STR(H_V) GOSUB *SAVE_DATA HEADER_V=STR('訂正保存終了'):GOSUB *HEADER_P RETURN *DATA_ADD REM ■■■■■ REM 追加保存 H_V=STRCAT(M_NO,',',M_NAME,',',M_SEX,',',M_TYPE,',',M_SERIAL,',',M_POSITION,',',M_MEDAL,',',M_HEAD,',',M_RIGHT,',',M_LEFT,',',M_LEG,',',M_SHANK,',',M_FIELD,',',M_VER,',',M_MASTER,',',M_PLACE) DATA(DATA_LEN)=STR(H_V) DATA_LEN=DATA_LEN+1 M_DN=DATA_LEN-1 GOSUB *MP_DN HEADER_V=STR('追加保存終了'):GOSUB *HEADER_P GOSUB *SAVE_DATA RETURN *MINUS_DATA REM ■■■■■ REM 前のデータ IFBLK (M_DN=0)+(STRCMP('---',M_DN)=0) M_DN=DATA_LEN-1 ELSE M_DN=M_DN-1 ENDIF H_V=M_DN+1 HEADER_V=STRCAT(H_V,'番のデータ取得中...'):GOSUB *HEADER_P H_V=M_DN GOSUB *INPUT_DATA H_V=M_DN+1 HEADER_V=STRCAT(H_V,'番のデータ取終了'):GOSUB *HEADER_P RETURN *PLUS_DATA REM ■■■■■ REM 次のデータ IFBLK (M_DN=DATA_LEN-1)+(STRCMP('---',M_DN)=0) M_DN=0 ELSE M_DN=M_DN+1 ENDIF H_V=M_DN+1 HEADER_V=STRCAT(H_V,'番のデータ取得中...'):GOSUB *HEADER_P H_V=M_DN GOSUB *INPUT_DATA H_V=M_DN+1 HEADER_V=STRCAT(H_V,'番のデータ取終了'):GOSUB *HEADER_P RETURN *INPUT_DATA REM ■■■■■■■■■ REM H_Vのデータを入力 M_DN=H_V GOSUB *VIEW_SUB_ALL M_NO=STR(VIEW(0)):GOSUB *MP_NO M_NAME=STR(VIEW(1)):GOSUB *MP_NAME M_SEX=STR(VIEW(2)):GOSUB *MP_SEX M_TYPE=STR(VIEW(3)):GOSUB *MP_TYPE M_SERIAL=STR(VIEW(4)):GOSUB *MP_SERIAL M_POSITION=STR(VIEW(5)):GOSUB *MP_POSITION M_MEDAL=STR(VIEW(6)):GOSUB *MP_MEDAL M_HEAD=STR(VIEW(7)):GOSUB *MP_HEAD M_RIGHT=STR(VIEW(8)):GOSUB *MP_RIGHT M_LEFT=STR(VIEW(9)):GOSUB *MP_LEFT M_LEG=STR(VIEW(10)):GOSUB *MP_LEG M_SHANK=STR(VIEW(11)):GOSUB *MP_SHANK M_FIELD=STR(VIEW(12)):GOSUB *MP_FIELD M_VER=STR(VIEW(13)):GOSUB *MP_VER M_MASTER=STR(VIEW(14)):GOSUB *MP_MASTER M_PLACE=STR(VIEW(15)):GOSUB *MP_PLACE GOSUB *MP_DN RETURN *MAKE_LIST REM ■■■■■■■■■■■■■■ REM 順送りキーによるリスト絞込み FOR H_V=0 TO DATA_LEN HEADER_V=STRCAT('初期化中...(',H_V,'/',DATA_LEN,')'):GOSUB *HEADER_P SEARCH(H_V)=STR("") NEXT H_V=STRCAT("IFBLK STRCMP(M_",MAKE_LIST_M,',"")=0') COMMAND H_V FOR H_V=0 TO DATA_LEN-1 HEADER_V=STRCAT('リスト作成中...(',H_V,'/',DATA_LEN,')'):GOSUB *HEADER_P GOSUB *VIEW_SUB_ALL VIEW_1=STR(VIEW(MAKE_LIST_DATA)) SEARCH(H_V)=STR(VIEW_1) NEXT SORT SEARCH,0,DATA_LEN ELSE FOR H_V=0 TO DATA_LEN-1 HEADER_V=STRCAT('絞込み検索中...(',H_V,'/',DATA_LEN,')'):GOSUB *HEADER_P GOSUB *VIEW_SUB_ALL VIEW_1=STR(VIEW(MAKE_LIST_DATA)) COM=STRCAT("C=INSTR(VIEW_1,M_",MAKE_LIST_M,")") COMMAND COM IF C THEN SEARCH(H_V)=STR(VIEW_1) NEXT SORT SEARCH,0,DATA_LEN ENDIF COUNT=0 FOR H_V=0 TO DATA_LEN-1 HEADER_V=STRCAT('リストソート中...(',H_V,'/',DATA_LEN,')'):GOSUB *HEADER_P IF STRCMP(SEARCH(COUNT),SEARCH(H_V))=0 THEN GOTO *LIST_SORT2 COUNT=COUNT+1 SEARCH(COUNT)=STR(SEARCH(H_V)) *LIST_SORT2 NEXT H_V=COUNT IFBLK COUNT+STRCMP(SEARCH(0),'') COUNT=COUNT+1 HEADER_V=STR(FOT_V):GOSUB *HEADER_P FONT 97 IF SELECT_N=18 THEN FONT 64 GCURSOR MMX,MMY:REM メニュー表示場所 MENU SEARCH,COUNT,0 COM=STRCAT("M_",MAKE_LIST_M,"=STR(SEARCH(MENUNO))") COMMAND COM COM=STRCAT("GOSUB *MP_",MAKE_LIST_M) COMMAND COM HEADER_V=STR('絞込み終了'):GOSUB *HEADER_P ELSE HEADER_V=STR('データ無し'):GOSUB *HEADER_P ENDIF RETURN MAKE_LIST_M:最終的に値を送る変数の名前(M_NAMEとか)のNAMEの部分 MAKE_LIST_DATA:数字で調べるDATA変数の2次配列番号。(純正名なら1とか) MMX,MMY:メニューを表示する位置。数字で指定する事。 FOT_V:検索結果が有るとき、FOOTERに表示する文字 *C_LIST REM ■■■■■■■■ REM データ番号の特定 H_V2=0 H_V=0 *C_LIST_A H_V2=STRCAT(M_NO,',',M_NAME,',',M_SEX,',',M_TYPE,',',M_SERIAL,',',M_POSITION,',',M_MEDAL,',',M_HEAD,',',M_RIGHT,',',M_LEFT,',',M_LEG,',',M_SHANK,',',M_FIELD,',',M_VER,',',M_MASTER,',',M_PLACE) IFBLK (STRCMP(DATA(H_V),H_V2))=0 M_DN=H_V GOSUB *MP_DN H_V2=M_DN+1 HEADER_V=STRCAT(H_V2,'番のデータと特定終了'):GOSUB *HEADER_P RETURN ENDIF H_V=H_V+1 HEADER_V=STRCAT('検索中...(',H_V,'/',DATA_LEN,')'):GOSUB *HEADER_P IF H_V