
参考資料
§ ファイル操作1・文字列 §
コンピュータ(ニンテンドー3DSは、身体は小さいが、立派なコンピュータです)を扱う上で、無くては成らない機能がファイル操作です。ゲームでも、或る時の状態を保存するセーブ機能や、ハイスコアの保存等で、必須の技術と成ります。今回は、文字列の保存・読込です。
下記のプログラムでは、文字列の保存(セーブ)と読込(ロード)を行います。
ボタンで保存文字列入力、
ボタンでファイル名入力、
ボタンで保存、
ボタンで読込を行います。終了するには、キーボード画面の STOP をタップして下さい。猶、ガイドを日本語表示にし、入力域をWindowsのテキストボックス風にしてみました。
| 0000001 | OPTION STRICT |
| 0000002 | ACLS |
| 0000003 | DIM I,B,S$,F$,T1$,T2$,T3$,T4$,T5$,T6$ |
| 0000004 | |
| 0000005 | GFILL 0,0,399,239,RGB(239,235,222) |
| 0000006 | COLOR #TWHITE |
| 0000007 | |
| 0000008 | FOR I=0 TO 5 |
| 0000009 | READ S$ |
| 0000010 | T1$=T1$+CHR$(VAL("&H"+S$)) |
| 0000011 | NEXT |
| 0000012 | GPUTCHR 16,16,T1$,1,1,#BLACK |
| 0000013 | GBOX 60,12,380,28,RGB(123,158,189) |
| 0000014 | GPAINT 61,13,#BLACK |
| 0000015 | |
| 0000016 | FOR I=0 TO 5 |
| 0000017 | READ S$ |
| 0000018 | T2$=T2$+CHR$(VAL("&H"+S$)) |
| 0000019 | NEXT |
| 0000020 | GPUTCHR 16,40,T2$,1,1,#BLACK |
| 0000021 | GBOX 60,36,380,52,RGB(123,158,189) |
| 0000022 | GPAINT 61,37,#BLACK |
| 0000023 | |
| 0000024 | FOR I=0 TO 2 |
| 0000025 | READ S$ |
| 0000026 | T3$=T3$+CHR$(VAL("&H"+S$)) |
| 0000027 | NEXT |
| 0000028 | FOR I=0 TO 2 |
| 0000029 | READ S$ |
| 0000030 | T4$=T4$+CHR$(VAL("&H"+S$)) |
| 0000031 | NEXT |
| 0000032 | FOR I=0 TO 2 |
| 0000033 | READ S$ |
| 0000034 | T5$=T5$+CHR$(VAL("&H"+S$)) |
| 0000035 | NEXT |
| 0000036 | FOR I=0 TO 2 |
| 0000037 | READ S$ |
| 0000038 | T6$=T6$+CHR$(VAL("&H"+S$)) |
| 0000039 | NEXT |
| 0000040 | S$="X "+T1$+T3$+" Y "+T2$+T3$+" " |
| 0000041 | S$=S$+"A "+T4$+" B "+T5$+" " |
| 0000042 | S$=S$+"LR "+T6$ |
| 0000043 | GPUTCHR 55,224,S$,1,1,#BLACK |
| 0000044 | |
| 0000045 | WHILE TRUE |
| 0000046 | B=BUTTON(0) |
| 0000047 | |
| 0000048 | 'QUIT |
| 0000049 | IF B AND &H300 THEN BREAK |
| 0000050 | |
| 0000051 | 'STRING |
| 0000052 | IF B AND 64 THEN |
| 0000053 | LOCATE 8,2 : PRINT " " |
| 0000054 | LOCATE 8,2 : LINPUT S$ |
| 0000055 | ENDIF |
| 0000056 | |
| 0000057 | 'FILENAME |
| 0000058 | IF B AND 128 THEN |
| 0000059 | LOCATE 8,5 : PRINT " " |
| 0000060 | LOCATE 8,5 : LINPUT F$ |
| 0000061 | ENDIF |
| 0000062 | |
| 0000063 | 'SAVE |
| 0000064 | IF B AND 16 THEN |
| 0000065 | IF F$!="" THEN |
| 0000066 | SAVE "TXT:"+F$,S$ |
| 0000067 | ENDIF |
| 0000068 | ENDIF |
| 0000069 | |
| 0000070 | 'LOAD |
| 0000071 | IF B AND 32 THEN |
| 0000072 | IF F$!="" THEN |
| 0000073 | S$=LOAD("TXT:"+F$) |
| 0000074 | ENDIF |
| 0000075 | ENDIF |
| 0000076 | WEND |
| 0000077 | ACLS : END |
| 0000078 | |
| 0000079 | DATA "4FDD","5B58","6587","5B57","5217" |
| 0000080 | DATA "30D5","30A1","30A4","30EB","540D" |
| 0000081 | DATA "5165","529B" |
| 0000082 | DATA "4FDD","5B58" |
| 0000083 | DATA "8AAD","8FBC" |
| 0000084 | DATA "7D42","4E86" |