プチコンまとめWiki (初代/mkII)

投稿プログラム : 文字列アーカイバ

パンくずリスト

2012年5月12日投稿 / 投稿者 : 涼季遊 / タグ : 投稿プログラム QRコード

概要

文字列をCHRまたはGRPデータに変換して、一度に大量に保存・読込をするプログラムです
プチコンで保存できる文字列データは、MEM形式で最大256文字までですが、本プログラムでは

 CHR形式で最大8192文字
 GRP形式で最大49152文字

保存することができます。

巨大になってしまったセーブデータを扱ったり、スクリプトデータとして保存してほかのプログラムに渡すなど、
APPENDして自由に使ってください。

使い方(書き込み)

1.GOSUBで↓のラベルを呼び出す
  @GRPARCINI

2.↓の変数に変換したい文字列を代入(256文字まで)
  GPRSTR$

3.GOSUBで↓のラベルを呼び出す
  @ADDGRPARC
 (2で設定された内容が書き込まれます)

4.(2)と(3)を必要なだけ繰り返す。

5.GOSUBで↓のラベルを呼び出す
  @MAKEGRPARC
  (GRPまたはGPRデータが保存されます)

使い方(読み込み)

1.GOSUBで↓のラベルを呼び出す
  @GRPARCINI

2.↓の変数に読み込むファイル名を設定
  GPRDATA$

3.GOSUBで↓のラベルを呼び出す
  @GRPARCLD
  (変数GPRSTR$に256文字分読み込まれます)

4.必要なだけ(3)を繰り返す

使い方(各種設定)

プログラムの46〜49行目の値を書き換えることによって、各種設定を行えます。

  GPRSAVNAM$=保存または読み込み時のデフォルトファイル名
  GPRPAGENO=保存時のワークエリア番号(CHRの場合はBGU番号、GRPの場合は画面番号)
  GPRPRGLES=途中経過表示ON,OFF(0=OFF、1=ON)
  GPRSVTYPE=保存形式(0=CHR形式、1=GRP形式)

注意点

・基本的にAPPENDして使うことを前提にしているので、変数やラベル名が長いです
・ほとんどプログラムを圧縮していません、使い方の説明など、不要な部分は必要に応じて消してください。
・BGU0を読み書き先に使用(GPRPAGENO=0,GPRSVTYPE=0)すると、動作時に背景がおかしくなります、
 これはプチコンが背景の初期値にBGU0のキャラ番号0を使用しているせいなので、仕様です。
 ちなみにACLSしても戻りません、BGU0を初期化すると直ります。
・あまりテストしていないので、予期せぬ不具合があるかもしれません。

QR コード

プチコンmkII 向けの QR コードです。

garc_v1_1.pnggarc_v1_2.pnggarc_v1_3.png

プログラムリスト

  1. ’////////////////////////////
  2. ’/ GRP−ArchiveSystem v1.0  //
  3. ’/ Making by Hot−C_Film.   //
  4. ’Instruction(カキコミ)/////////////////
  5. ’(1)↓ノラヘ゛ルヲ、ヨヒ゛タ゛シテクタ゛サイ
  6. ’[@GRPARCINI]
  7. ’(2)↓ノヘンスウニ、モシ゛レツヲタ゛イニュウシテクタ゛サイ
  8. ’[GPRSTR$]
  9. ’(3)↓ノラヘ゛ルヲ、ヨヒ゛タ゛シテクタ゛サイ
  10. ’[@ADDGRPARC]
  11. ’1テ゛セッテイサレタナイヨウカ゛カキコマレマス
  12. ’(4)2ト3ヲ、ヒツヨウナタ゛ケ、クリカエス
  13. ’(5)↓ノラヘ゛ルヲ、ヨヒ゛タ゛シテクタ゛サイ
  14. ’[@MAKEGRPARC]
  15. ’GRPテ゛−タカ゛SAVEサレマス
  16. ’ТТТТТТТТТТТТТТТТТТТТТТТТТТТТ
  17. ’Instruction(ヨミコミ)/////////////////
  18. ’(1)↓ノラヘ゛ルヲ、ヨヒ゛タ゛シテクタ゛サイ
  19. ’[@GRPARCINI]
  20. ’(2)↓ノヘンスウニ、GRP(BGU)ファイルメイヲセッテイ
  21. ’[GPRDATA$]
  22. ’(3)↓ノラヘ゛ルヲ、ヨヒ゛タ゛シテクタ゛サイ
  23. ’[@GRPARCLD]
  24. ’↓ノヘンスウニ、256モシ゛フ゛ンヨミコミマス
  25. ’[GPRSTR$]
  26. ’(4)ヒツヨウナフ゛ンタ゛ケ3ヲクリカエシマス
  27. ’ТТТТТТТТТТТТТТТТТТТТТТТТТТТТ
  28. ’Settings   /////////////////
  29. @GRPARCINI
  30. ’↓ノヘンスウノアタイヲセッテイシテクタ゛サイ
  31.  GPRSAVNAM$=”GPRSAVE”’ファイルメイ
  32.  GPRPAGENO=1 ’ヒ゛ョウカ゛サキ
  33.  GPRPRGLES=1 ’ケイカヒョウシ゛(1=TRUE)
  34.  GPRSVTYPE=0 ’ホソ゛ンケイシキ(0=NORMAL,1=BIG)(*1)
  35. ’ТТТТТТТТТТТТТТТТТТТТТТТТТТТТ
  36. GPR_X=0
  37. GPR_Y=0
  38. GPR_I=0
  39. GPR_L=0
  40. GPR_WT$=””
  41. GPR_CS$=””
  42. GPRSTR$=””
  43. GPRDATA$=””
  44. RETURN
  45. ’(*1)ホソ゛ンケイシキニツイテ ////
  46. ’ホソ゛ンケイシキハ↓ノ2ツアリマス
  47. ’TYPE0
  48. ’BGUケイシキテ゛ホソ゛ンシマス
  49. ’ツウシ゛ョウハコチラテ゛ホソ゛ンシテクタ゛サイ
  50. ’ヒ゛ョウカ゛サキハBGUニナリマス
  51. ’サイタ゛イモシ゛スウ=8192 (QRCode4マイ)
  52. ’TYPE1
  53. ’GRPケイシキテ゛ホソ゛ンシマス
  54. ’ファイルサイス゛カ゛オオキクナリマス
  55. ’ヒ゛ョウカ゛サキハク゛ラフィックカ゛メンニナリマス
  56. ’サイタ゛イモシ゛スウ=49152 (QRCode22マイ)
  57. ’ТТТТТТТТТТТТТТТТТТТТТТТТТТТТ
  58. ’///////////////////////////
  59. ’キョウツウ
  60. @ADDGRPARC
  61. IF GPRSVTYPE==0 THEN GOSUB@GRPARC_T0 ELSE GOSUB@GRPARC_T1
  62. GPR_L=GPR_L+LEN(GPRSTR$)
  63. GPRSTR$=””
  64. RETURN
  65. ’GRPア−カイフ゛サクセイ
  66. @MAKEGRPARC
  67. IF GPRSVTYPE==0 THEN GOSUB@MAKEGRPARC_T0 ELSE GOSUB@MAKEGRPARC_T1
  68. RETURN
  69. ’GRPア−カイフ゛ヨニコミ
  70. @GRPARCLD
  71. IF GPRSVTYPE==0 THEN GOSUB@GRPARCLD_T0 ELSE GOSUB@GRPARCLD_T1
  72. RETURN
  73. ’///////////////////////////
  74. ’CHRア−カイフ゛カキコミ
  75. @GRPARC_T0
  76. IF GPR_L==0 THEN GOSUB@GRPARC_CL0
  77.   IF LEN(GPR_CS$)+LEN(GPRSTR$)>=32 THEN GOSUB@GRPARC_T0W ELSE GPR_CS$=GPR_CS$+GPRSTR$
  78. RETURN
  79. ’シ゛ッサイニカキコミ
  80. @GRPARC_T0W
  81.   FOR GPR_J=0 TO 1 STEP 0
  82.     GPR_I=32−LEN(GPR_CS$)
  83.     GPR_CS$=GPR_CS$+LEFT$(GPRSTR$,GPR_I)
  84.     GPRSTR$=RIGHT$(GPRSTR$,LEN(GPRSTR$)−GPR_I)
  85.     GOSUB@GRPARC_T0W2
  86.     IF GPRPRGLES==1 THEN ?”コ゛ウケイ ”+STR$(GPR_L)+” モシ゛カキコミ”
  87.     GPR_X=GPR_X+1
  88.     IF LEN(GPRSTR$)<32 THEN GPR_CS$=GPRSTR$:GPR_J=2
  89.   NEXT
  90. RETURN
  91. ’32モシ゛カキコミ
  92. @GRPARC_T0W2
  93.   GPR_WT$=””
  94.   GPR_Y=LEN(GPR_CS$)
  95.   GPR_L=GPR_L+GPR_Y
  96.   FOR GPR_I=1 TO GPR_Y
  97.     GPR_WT$=GPR_WT$+HEX$(ASC(LEFT$(GPR_CS$,1)),2)
  98.     GPR_CS$=RIGHT$(GPR_CS$,LEN(GPR_CS$)−1)
  99.   NEXT
  100.   CHRSET ”BGU”+STR$(GPRPAGENO),GPR_X,GPR_WT$
  101.   GPR_CS$=””
  102. RETURN
  103. ’ヒ゛ョウカ゛サキショキカ
  104. @GRPARC_CL0
  105.   GPR_CS$=”0000000000000000000000000000000000000000000000000000000000000000”
  106.   FOR GPR_I=0 TO 255
  107.     CHRSET ”BGU”+STR$(GPRPAGENO),GPR_I,GPR_CS$
  108.   NEXT
  109.   GPR_CS$=””
  110. RETURN
  111. ’ファイルホソ゛ン
  112. @MAKEGRPARC_T0
  113.   SAVE”BGU”+STR$(GPRPAGENO)+”:”+GPRSAVNAM$
  114. RETURN
  115. ’///////////////////////////
  116. ’CHRア−カイフ゛ヨミコミ
  117. @GRPARCLD_T0
  118.   IF GPR_L==0 THEN LOAD”BGU”+STR$(GPRPAGENO)+”:”+GPRSAVNAM$
  119.   GPR_L=1
  120.   GPRSTR$=””
  121.   FOR GPR_I=1 TO 8
  122.     CHRREAD(”BGU”+STR$(GPRPAGENO),GPR_X),GPR_WT$
  123.       GPR_LW=LEN(GPR_WT$)
  124.       FOR GPR_J=1 TO GPR_LW/2
  125.         GPRSTR$=GPRSTR$+CHR$(VAL(”&H”+LEFT$(GPR_WT$,2)))
  126.         GPR_WT$=RIGHT$(GPR_WT$,LEN(GPR_WT$)−2)
  127.       NEXT
  128.     GPR_X=GPR_X+1
  129.   NEXT
  130. RETURN
  131. ’///////////////////////////
  132. ’GRPア−カイフ゛カキコミ
  133. @GRPARC_T1
  134. IF GPR_L==0 THEN GOSUB@GRPARC_CL1
  135. GPR_J=LEN(GPRSTR$)
  136. GPR_L=GPR_L+GPR_J
  137. FOR GPR_I=1 TO GPR_J
  138.   GPR_CS$=LEFT$(GPRSTR$,1)
  139.   GPRSTR$=RIGHT$(GPRSTR$,LEN(GPRSTR$)−1)
  140.   GPSET GPR_X,GPR_Y,ASC(GPR_CS$)
  141.   GPR_X=GPR_X+1
  142.   IF GPR_X==256 THEN GPR_X=0:GPR_Y=GPR_Y+1:IF GPR_Y==192 THEN GPR_I=GPR_J+2
  143. NEXT
  144. IF GPR_I==GPR_J+2 THEN ?”コレイシ゛ョウモシ゛ヲホソ゛ンテ゛キマセン
  145. RETURN
  146. @MAKEGRPARC_T1
  147.   SAVE”GRP”+STR$(GPRPAGENO)+”:”+GPRSAVNAM$
  148. RETURN
  149. ’GRPア−カイフ゛ヨミコミ
  150. @GRPARCLD_T1
  151. IF GPR_L==0 THEN LOAD”GRP”+STR$(GPRPAGENO)+”:”+GPRSAVNAM$
  152. IF GPR_Y==192 THEN ?”ファイルシュウタンテ゛ス”:RETURN
  153. GPRSTR$=””
  154. FOR GPR_I=0 TO 255
  155.   GPRSTR$=GPRSTR$+CHR$(GSPOIT(GPR_I,GPR_Y))
  156.   IF LEFT$(GPRSTR$,1)==” ” THEN ?”シッハ゜イ”:WAIT 100
  157. NEXT
  158. GPR_Y=GPR_Y+1
  159. GPR_L=GPR_L+LEN(GPRSTR$)
  160. RETURN
  161. ’ヒ゛ョウカ゛サキショキカ
  162. @GRPARC_CL1
  163. GPAGE 0,GPRPAGENO,0
  164. GFILL 0,0,255,191,0
  165. RETURN

CHECKER FLAG (ひとことコメント)

この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)

  • 涼季遊 : まさか”&H”で問題なく変換できたとは・・・ (2012/05/17 (木) 18:21:36)
  • 名無しさん : ↑えっつけてなかったの? (2012/05/17 (木) 19:31:58)
  • 涼季遊 : そんなわけで恥ずかしながら、いろいろ修正しました (2012/06/02 (土) 12:35:32)
  • hatena : 使い方についてだけど一番↓のようにしたほうがわかりやすいと思う。 (2012/06/02 (土) 20:11:05)
  • 名無しさん : MML文字列を変換して、読み込んだら何も読みこめなかった… (2012/11/09 (金) 23:35:46)



















使い方

書き込み

1.GOSUBで↓のラベルを呼び出す
  @GRPARCINI

2.↓の変数に変換したい文字列を代入(256文字まで)
  GPRSTR$

3.GOSUBで↓のラベルを呼び出す
  @ADDGRPARC
 (2で設定された内容が書き込まれます)

4.(2)と(3)を必要なだけ繰り返す。

5.GOSUBで↓のラベルを呼び出す
  @MAKEGRPARC
  (GRPまたはGPRデータが保存されます)

読み込み

1.GOSUBで↓のラベルを呼び出す
  @GRPARCINI

2.↓の変数に読み込むファイル名を設定
  GPRDATA$

3.GOSUBで↓のラベルを呼び出す
  @GRPARCLD
  (変数GPRSTR$に256文字分読み込まれます)

4.必要なだけ(3)を繰り返す

各種設定

プログラムの46〜49行目の値を書き換えることによって、各種設定を行えます。

  GPRSAVNAM$=保存または読み込み時のデフォルトファイル名
  GPRPAGENO=保存時のワークエリア番号(CHRの場合はBGU番号、GRPの場合は画面番号)
  GPRPRGLES=途中経過表示ON,OFF(0=OFF、1=ON)
  GPRSVTYPE=保存形式(0=CHR形式、1=GRP形式)

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.037 秒 | このページの最終更新 : 2012/11/09 (金) 23:35:46 (2536d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30