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

Toukou/文字列アーカイバ の変更点

パンくずリスト


#title(投稿プログラム : 文字列アーカイバ)
#contents
// ↑この2行は削除しないでください。
// ←このように「//」で始まる行はコメントです。ページ本文には反映されません。
//------------------------------------------------------------------------------
// ・投稿年月日は、このページを投稿しようとしている今日の日付を半角数字で入力してください。
//   この日付は、投稿プログラムを自動的に年月日順に並べる際に使用されます。
// ↓↓↓
2012年5月12日投稿
// ↑↑↑
//------------------------------------------------------------------------------
// ・投稿者名は、将来的に投稿プログラム一覧に表示するために使用します。
// ・「名無しさん」のままにしておくと、匿名の方からの投稿として扱われます。
// ↓↓↓
/ 投稿者 : 涼季遊
// ↑↑↑
//------------------------------------------------------------------------------
// ・適当にタグをつけることができます。半角のコンマ区切りで複数つけられます。
//   タグをつけると、同じタグが付いたページを検索することができます。
// ★次に該当するプログラムは、特定のタグを設定するようご協力お願いします。
//   これらを設定すると、将来的に投稿プログラム一覧に目立つマークが付くようになる予定です。
// ・短いプログラム → 「1行プログラム」「数行プログラム」「1画面プログラム」タグのいずれか1つ
// ・初代プチコンでも動作するプログラム → 「初代対応」タグ
// ・mkII 以降専用のプログラム → 「mkII専用」タグ
// ・QRコードを掲載している → 「QRコード」タグ
// ・該当するなら「ゲーム」「実用ツール」「音楽」タグのいずれか
// ↓↓↓
/ &tag(投稿プログラム,QRコード);
// ↑↑↑

//------------------------------------------------------------------------------
// ここに概要とか書きます。
// ・** や *** で始まる行は子見出しとなります。* の数で深さが決まります。
// ・[#英数字] はページ内リンクに使用されるアンカーですが、
//   書かなかったり、消したりしてもかまいません。ない場合はランダムな文字列が自動付与されます。

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

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

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

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


** 使い方(書き込み) [#a6c4643d]
1.GOSUBで↓のラベルを呼び出す~
  @GRPARCINI

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

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

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

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

** 使い方(読み込み) [#gf1a8c34]
1.GOSUBで↓のラベルを呼び出す~
  @GRPARCINI

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

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

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

** 使い方(各種設定) [#n45aa602]

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

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

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

//* スクリーンショット・動画 [#r2c79664]
// 動作しているところを撮影した写真や動画があれば貼り付けてください。

// ページを作成すると、画像の添付ができるようになります。(作成する前はできません)
// 作成後のページの右上、ウィキメニューにある「添付」から画像をアップロードできます。
// (添付ファイルはページごとに別個に管理されています。必ず作成後のページに添付してください)
// 画像をアップロードしたら、以下の書式でページ内に貼り付けられます。
// #ref(添付ファイル名)

// 以下の書式で、YouTube やニコニコ動画を貼り付けられます。
// #youtube(0HWX7kovgY8)
// #nicovideo(sm13684820)

/////////////////////////////////
// QR コードがない場合は、この部分は削除してください

* QR コード [#w3017cc3]
プチコンmkII 向けの QR コードです。
|&ref(garc_v1_1.png,,120%);|&ref(garc_v1_2.png,,120%);|&ref(garc_v1_3.png,,120%);|

// 【重要】旧プチコンから mkII に転送したプログラムは、mkII で保存しなおしてから
// QR コード化すると、枚数が半分ぐらいに減ります。ぜひお試し下さい。
// 【重要】添付できるのは画像ファイルのみです。zip ファイルは解凍してください。

// ページを作成すると、QR コードの添付ができるようになります。(作成する前はできません)
// 作成後のページの右上、ウィキメニューにある「添付」から画像をアップロードできます。
// (添付ファイルはページごとに別個に管理されています。必ず作成後のページに添付してください)
// QR コードをアップロードしたら、以下の書式でページ内に貼り付けられます。
// #ref(アップロードしたファイル名)

// QR コードを大きくしたい場合は、倍率指定ができます。コンマは必ず 2 つ指定してください。
// ブラウザによっては補完がかかってボケますが、それでも問題なく読み込み可能です。
// #ref(アップロードしたファイル名,,200%)

// 複数の QR コードを貼り付けるために表組みを用いる場合、&ref(); を使用します。
// (#ref() を表に埋め込んでしまうと、古い Internet Explorer でうまく表示されません)
// |>|>|~PRG:FILENAME|
// |~1/3|~2/3|~3/3|
// |&ref(qr0.png,,200%);|&ref(qr1.png,,200%);|&ref(qr2.png,,200%);|

/////////////////////////////////

* プログラムリスト [#oa133bd4]
#basic{{
’////////////////////////////
’/ GRP−ArchiveSystem v1.0  //
’/ Making by Hot−C_Film.   //

’Instruction(カキコミ)/////////////////

’(1)↓ノラヘ゛ルヲ、ヨヒ゛タ゛シテクタ゛サイ
’[@GRPARCINI]

’(2)↓ノヘンスウニ、モシ゛レツヲタ゛イニュウシテクタ゛サイ
’[GPRSTR$]

’(3)↓ノラヘ゛ルヲ、ヨヒ゛タ゛シテクタ゛サイ
’[@ADDGRPARC]
’1テ゛セッテイサレタナイヨウカ゛カキコマレマス

’(4)2ト3ヲ、ヒツヨウナタ゛ケ、クリカエス

’(5)↓ノラヘ゛ルヲ、ヨヒ゛タ゛シテクタ゛サイ
’[@MAKEGRPARC]
’GRPテ゛−タカ゛SAVEサレマス

’ТТТТТТТТТТТТТТТТТТТТТТТТТТТТ
’Instruction(ヨミコミ)/////////////////

’(1)↓ノラヘ゛ルヲ、ヨヒ゛タ゛シテクタ゛サイ
’[@GRPARCINI]

’(2)↓ノヘンスウニ、GRP(BGU)ファイルメイヲセッテイ
’[GPRDATA$]

’(3)↓ノラヘ゛ルヲ、ヨヒ゛タ゛シテクタ゛サイ
’[@GRPARCLD]
’↓ノヘンスウニ、256モシ゛フ゛ンヨミコミマス
’[GPRSTR$]

’(4)ヒツヨウナフ゛ンタ゛ケ3ヲクリカエシマス

’ТТТТТТТТТТТТТТТТТТТТТТТТТТТТ

’Settings   /////////////////
@GRPARCINI

’↓ノヘンスウノアタイヲセッテイシテクタ゛サイ

 GPRSAVNAM$=”GPRSAVE”’ファイルメイ
 GPRPAGENO=1 ’ヒ゛ョウカ゛サキ
 GPRPRGLES=1 ’ケイカヒョウシ゛(1=TRUE)
 GPRSVTYPE=0 ’ホソ゛ンケイシキ(0=NORMAL,1=BIG)(*1)
’ТТТТТТТТТТТТТТТТТТТТТТТТТТТТ
GPR_X=0
GPR_Y=0
GPR_I=0
GPR_L=0
GPR_WT$=””
GPR_CS$=””
GPRSTR$=””
GPRDATA$=””
RETURN

’(*1)ホソ゛ンケイシキニツイテ ////
’ホソ゛ンケイシキハ↓ノ2ツアリマス

’TYPE0
’BGUケイシキテ゛ホソ゛ンシマス
’ツウシ゛ョウハコチラテ゛ホソ゛ンシテクタ゛サイ
’ヒ゛ョウカ゛サキハBGUニナリマス
’サイタ゛イモシ゛スウ=8192 (QRCode4マイ)

’TYPE1
’GRPケイシキテ゛ホソ゛ンシマス
’ファイルサイス゛カ゛オオキクナリマス
’ヒ゛ョウカ゛サキハク゛ラフィックカ゛メンニナリマス
’サイタ゛イモシ゛スウ=49152 (QRCode22マイ)

’ТТТТТТТТТТТТТТТТТТТТТТТТТТТТ
’///////////////////////////
’キョウツウ

@ADDGRPARC
IF GPRSVTYPE==0 THEN GOSUB@GRPARC_T0 ELSE GOSUB@GRPARC_T1
GPR_L=GPR_L+LEN(GPRSTR$)
GPRSTR$=””
RETURN

’GRPア−カイフ゛サクセイ
@MAKEGRPARC
IF GPRSVTYPE==0 THEN GOSUB@MAKEGRPARC_T0 ELSE GOSUB@MAKEGRPARC_T1
RETURN

’GRPア−カイフ゛ヨニコミ
@GRPARCLD
IF GPRSVTYPE==0 THEN GOSUB@GRPARCLD_T0 ELSE GOSUB@GRPARCLD_T1
RETURN

’///////////////////////////
’CHRア−カイフ゛カキコミ
@GRPARC_T0
IF GPR_L==0 THEN GOSUB@GRPARC_CL0

  IF LEN(GPR_CS$)+LEN(GPRSTR$)>=32 THEN GOSUB@GRPARC_T0W ELSE GPR_CS$=GPR_CS$+GPRSTR$

RETURN

’シ゛ッサイニカキコミ
@GRPARC_T0W
  FOR GPR_J=0 TO 1 STEP 0

    GPR_I=32−LEN(GPR_CS$)
    GPR_CS$=GPR_CS$+LEFT$(GPRSTR$,GPR_I)
    GPRSTR$=RIGHT$(GPRSTR$,LEN(GPRSTR$)−GPR_I)

    GOSUB@GRPARC_T0W2

    IF GPRPRGLES==1 THEN ?”コ゛ウケイ ”+STR$(GPR_L)+” モシ゛カキコミ”

    GPR_X=GPR_X+1
    IF LEN(GPRSTR$)<32 THEN GPR_CS$=GPRSTR$:GPR_J=2

  NEXT

RETURN

’32モシ゛カキコミ
@GRPARC_T0W2
  GPR_WT$=””
  GPR_Y=LEN(GPR_CS$)
  GPR_L=GPR_L+GPR_Y
  FOR GPR_I=1 TO GPR_Y
    GPR_WT$=GPR_WT$+HEX$(ASC(LEFT$(GPR_CS$,1)),2)
    GPR_CS$=RIGHT$(GPR_CS$,LEN(GPR_CS$)−1)
  NEXT
  CHRSET ”BGU”+STR$(GPRPAGENO),GPR_X,GPR_WT$
  GPR_CS$=””
RETURN

’ヒ゛ョウカ゛サキショキカ
@GRPARC_CL0
  GPR_CS$=”0000000000000000000000000000000000000000000000000000000000000000”
  FOR GPR_I=0 TO 255
    CHRSET ”BGU”+STR$(GPRPAGENO),GPR_I,GPR_CS$
  NEXT
  GPR_CS$=””
RETURN

’ファイルホソ゛ン
@MAKEGRPARC_T0
  SAVE”BGU”+STR$(GPRPAGENO)+”:”+GPRSAVNAM$
RETURN

’///////////////////////////
’CHRア−カイフ゛ヨミコミ
@GRPARCLD_T0
  IF GPR_L==0 THEN LOAD”BGU”+STR$(GPRPAGENO)+”:”+GPRSAVNAM$
  GPR_L=1
  GPRSTR$=””
  FOR GPR_I=1 TO 8
    CHRREAD(”BGU”+STR$(GPRPAGENO),GPR_X),GPR_WT$
      GPR_LW=LEN(GPR_WT$)
      FOR GPR_J=1 TO GPR_LW/2
        GPRSTR$=GPRSTR$+CHR$(VAL(”&H”+LEFT$(GPR_WT$,2)))
        GPR_WT$=RIGHT$(GPR_WT$,LEN(GPR_WT$)−2)
      NEXT
    GPR_X=GPR_X+1
  NEXT
RETURN


’///////////////////////////
’GRPア−カイフ゛カキコミ
@GRPARC_T1
IF GPR_L==0 THEN GOSUB@GRPARC_CL1
GPR_J=LEN(GPRSTR$)
GPR_L=GPR_L+GPR_J
FOR GPR_I=1 TO GPR_J
  GPR_CS$=LEFT$(GPRSTR$,1)
  GPRSTR$=RIGHT$(GPRSTR$,LEN(GPRSTR$)−1)
  GPSET GPR_X,GPR_Y,ASC(GPR_CS$)
  GPR_X=GPR_X+1
  IF GPR_X==256 THEN GPR_X=0:GPR_Y=GPR_Y+1:IF GPR_Y==192 THEN GPR_I=GPR_J+2
NEXT
IF GPR_I==GPR_J+2 THEN ?”コレイシ゛ョウモシ゛ヲホソ゛ンテ゛キマセン
RETURN

@MAKEGRPARC_T1
  SAVE”GRP”+STR$(GPRPAGENO)+”:”+GPRSAVNAM$
RETURN

’GRPア−カイフ゛ヨミコミ
@GRPARCLD_T1
IF GPR_L==0 THEN LOAD”GRP”+STR$(GPRPAGENO)+”:”+GPRSAVNAM$
IF GPR_Y==192 THEN ?”ファイルシュウタンテ゛ス”:RETURN
GPRSTR$=””
FOR GPR_I=0 TO 255
  GPRSTR$=GPRSTR$+CHR$(GSPOIT(GPR_I,GPR_Y))
  IF LEFT$(GPRSTR$,1)==” ” THEN ?”シッハ゜イ”:WAIT 100
NEXT
GPR_Y=GPR_Y+1
GPR_L=GPR_L+LEN(GPRSTR$)
RETURN

’ヒ゛ョウカ゛サキショキカ
@GRPARC_CL1
GPAGE 0,GPRPAGENO,0
GFILL 0,0,255,191,0
RETURN
}}

/////////////////////////////////
// コメントを募集したくないなら、ここから下は削除してください

* CHECKER FLAG (ひとことコメント) [#gee939b6]
この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は[[掲示板>Board]]へ)
- ''涼季遊'' : まさか”&H”で問題なく変換できたとは・・・ (&new{2012/05/17 (木) 18:21:36};)
- ''名無しさん'' : ↑えっつけてなかったの? (&new{2012/05/17 (木) 19:31:58};)
- ''涼季遊'' : そんなわけで恥ずかしながら、いろいろ修正しました (&new{2012/06/02 (土) 12:35:32};)
- ''hatena'' : 使い方についてだけど一番↓のようにしたほうがわかりやすいと思う。 (&new{2012/06/02 (土) 20:11:05};)
- ''名無しさん'' : MML文字列を変換して、読み込んだら何も読みこめなかった… (&new{2012/11/09 (金) 23:35:46};)

#comment
&br();&br();&br();&br();&br();&br();&br();&br();
----
----
----
----
----
----
----
----
----
----
** 使い方 [#d2e3c0cd]
*** 書き込み [#a6c4643d]
1.GOSUBで↓のラベルを呼び出す~
  @GRPARCINI

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

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

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

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

*** 読み込み [#gf1a8c34]
1.GOSUBで↓のラベルを呼び出す~
  @GRPARCINI

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

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

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

*** 各種設定 [#n45aa602]

プログラムの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.005 秒 | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30