コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
あまさとしおん ◆mzDKTVUAtwqE
2020/5/7 16:45
情報交換
#プチコン3号 複数のファイルを1ファイルで保存するツールの案
保存できるファイルの数に8000個ぐらいの上限があったよね…
ということは、複数のファイルを1ファイルで保存するツールって需要あるかも

コメント

アバター
あまさとしおん 2020/5/8 21:13 ◆mzDKTVUAtwqE
もしかして:1要素を1文字に入れると思ってる?

整数型の配列は1要素で32bit
プチコンで使える文字(※)の種類は65536種類=16bit

32 / 16 = 2
ということは…

※表示不可能(豆腐)を含めて「番号で区別ができる数」が65536個
アバター
Na 2020/5/8 21:37 ◆QoELVrBXBQCI
実数型の配列は64bitですね

型の判別と次元の判別どうやるんだろう...

あと指定スロットの中身を保存と指定スロットに読み込みの命令があると便利かも(変数に読み込んでPRGSETでもいいんだけど)
アバター
Na 2020/5/8 21:46 ◆QoELVrBXBQCI
あとバイナリを文字列に変えたときにCHR$(13)が含まれているとエディタで開いて保存したときにCHR$(10)に置き換えられる可能性が
アバター
あまさとしおん 2020/5/8 23:26 ◆mzDKTVUAtwqE
実数型配列の保存の対応は相当先になりそうです。
整数型と実数型を区別する方法についてはおちゃめさんが発明していたので問題ないです。
直接prgget/prgsetは良さそうなのでぼちぼち追加で。
改行が変換される問題は、だいぶ前のプチコン3号のアップデートで廃止された仕様なので現在は大丈夫です。
アバター
Na 2020/5/8 23:29 ◆QoELVrBXBQCI
え、廃止されたんですか?
でもver3.6.3で
SAVE "TXT:TEST",CHR$(13)
LOAD "PRG0:TEST"
SAVE "PRG0:TEST"
LOAD "TXT:TEST" OUT T$
?ASC(T$[0])
ってやったら10になりましたよ
アバター
あまさとしおん 2020/5/9 16:43 ◆mzDKTVUAtwqE
あれ、
SAVE"PRGのほうは変換を廃止してなかったのか…

そうか、ほしけんさんの漢字ライブラリはCHR$()に置き換えてるから問題を起こさないのね
アバター
あまさとしおん 2020/5/10 19:49 ◆mzDKTVUAtwqE
仕様として
'@#BODYEND または 文字コード13の文字
を含むデータをセーブしようとするとダイアログを出してセーブ実行しないようにします。
そういう仕様ってことで
アバター
あまさとしおん 2020/5/16 17:00 ◆mzDKTVUAtwqE
保存できない文字列を保存しようとするとダイアログを出して注意するようにしたVersion
sbkey=1RRXD2QV
アバター
あまさとしおん 2020/5/16 17:13 ◆mzDKTVUAtwqE
エスケープの仕様を思いついたのでそのうち実装します。
HTMLの数値文字参照に類似した形式です。
アバター
あまさとしおん 2020/5/17 14:07 ◆mzDKTVUAtwqE
エスケープ関数の進捗です。
アバター
あまさとしおん 2020/5/17 14:21 ◆mzDKTVUAtwqE
CHR$(0)〜CHR$(9)
CHR$(11)〜CHR$(31)
&と'
をエスケープすることで、'@#BODYENDやCHR$(13)が含まれていても壊れずに保存できるようになります。
アバター
あまさとしおん 2020/5/17 14:48 ◆mzDKTVUAtwqE
SAT LIB.そのものをSAT_SAVEするとこんな風になります。
新たに'@#BODYTYPE:TXT/ESCAPEというメタデータを追加し従来のデータと区別できるようになっています。
アバター
あまさとしおん 2020/5/17 14:52 ◆mzDKTVUAtwqE
・BODYTYPE属性
ファイル種別/変換種別 という書き方をする
ファイル種別
TXT
DAT(未実装)

変換種別
ESCAPE(エスケープ処理済み)
LITERAL(無変換)
COMPRESS(圧縮済み、未実装)

BODYTYPE属性が存在しない場合は、TXT/LITERALと解釈しなければならない。
アバター
あまさとしおん 2020/5/17 15:26 ◆mzDKTVUAtwqE
エスケープ機能が完成し、任意の文字列が保存可能になったのでwikiに投稿しました。
http://wiki.hosiken.jp/petc3gou/?Toukou%2FSimple_Archived_Text_library
アバター
あまさとしおん 2020/5/17 19:39 ◆mzDKTVUAtwqE
メモ:DATのBODYTYPEの案
DAT/X-DAT8
DAT/X-DAT16
DAT/X-DAT24
DAT/X-DAT32S
数字は1要素のbit数。Sはsignedを表し、なければunsigned。
X-を付けてるのは独自拡張扱いのため。
圧縮機能が付いた場合はさらにサフィックスを付ける。
DAT/X-DAT16Rとか。
アバター
あまさとしおん 2020/5/17 20:02 ◆mzDKTVUAtwqE
あーーーー
GRPって2次元扱いなの

LEN()で要素数が得られないので技術的に不可ですね…
アバター
Na 2020/5/17 20:11 ◆QoELVrBXBQCI
要素数を渡したらいける?
SAT_SAVEA filename$,ary% '1次元用(長さ不要)
SAT_SAVEA2 filename$,ary%,len1,len2 '2次元用
SAT_SAVEA3 filename$,ary%,len1,len2,len3 '3次元用
アバター
あまさとしおん 2020/5/17 20:44 ◆mzDKTVUAtwqE
あまり便利じゃないけど一応はできるか
アバター
あまさとしおん 2020/5/17 21:20 ◆mzDKTVUAtwqE
ちなみに、DAT保存は値を確認して全要素が16bitに収まる場合は1要素1文字で表します。
この場合は整数型のDATファイルよりも少し小さくなります。
アバター
あまさとしおん 2020/5/17 21:28 ◆mzDKTVUAtwqE
とりあえずテストをしたら上げる予定

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -