プレイ日記
だにえる haru2016nen
【ヘルプ】 数値をCHR$を利用してデータを 短くする方法がある(と思ってる)けど (例:65,66,67→"ABC") 改行とかダブルコーテーションって どう扱えばいいのやら。
13そうだね
プレイ済み
返信[1]
親投稿
SilverBlue Corei72630QM
base64を参考にしてみては?
2そうだね
プレイ済み
返信[2]
親投稿
MIKI ifconfig
data 文にする話かな?? 何らかの文法を持ち込んでエンコード/デコードする必要があります。 たとえば \xHHHH (HHHH は4桁の16進数) が文字コード HHHH を表すことにして chr$(34) は \x0022 chr$(10) は \x000a chr$(13) は \x000d てな感じにエンコードします。 読むときは read で読んでから \xHHHH という箇所を全て chr$(&hHHHH) で置換すればいい。 図は vfiler というソフトの一部ですが、vfesc() でエンコード、vfunesc()でデコードするようになってます。こんな感じで作ればいいでしょう。 data文にこだわらないなら save "dat:" と load "dat:" でバイナリファイル相手に読み書きするのが一番簡単だし、無駄なコードも不要でなおかつ速い。
2そうだね
プレイ済み
返信[3]
親投稿
MIKI ifconfig
プログラムソース中の data 文に埋め込んだり、独立したテキストストファイル保存する場合、2バイト文字(chr$(256)からchr$(65535))は全て 3 バイトに増えるワカメちゃんなので、ファイルサイズとしては 1.5 倍、圧縮という期待は儚くも裏切られる運命(さだめ)。
3そうだね
プレイ済み
返信[4]
親投稿
だにえる haru2016nen
なんとか解決しました。 ありがとうございました。
0そうだね
プレイ済み
返信[5]
親投稿
あ、mkIIで圧縮を作ったときには「特定の記号を置いた後ずらす」方法を使いました。 例えば "→&! &があった次の文字は1を足した文字コードの文字とみなす。 &自体も&%で表現可能
1そうだね
プレイ済み