トピック

grpとdatファイルの差別化

って可能ですか? 拡張子を付ける以外の方法で。
9そうだね
プレイ済み
返信[1]
親投稿
恐らく不可能だと思います。
6そうだね
プレイ済み
返信[2]
親投稿
やはりそうですか....! ご回答ありがとうございます!
1そうだね
プレイ済み
返信[3]
親投稿
say sayer.exe
グラヒックパターンを配列に直すだけ? 単にフォーマットが違うだけで、フォーマットを直しゃ、同じデータじゃないの?
2そうだね
プレイ済み
返信[4]
親投稿
say sayer.exe
おっと失礼 セーブ時にヘッダを付け ロード時にヘッダチェッカを設けりゃ 差別化は可能 ヘッダが「ワタクシ何々でございます!」って記録しており、 ヘッダチェッカが「何者だ?」と問う そういう関係 ヘッダチェッカが許可しなければ、ロード自体行われない(そういう処理にする) イェイ楽ちん?
7そうだね
プレイ済み
返信[5]
親投稿
なるほどっ! 理解しましたっ! ありがとうございますっ!
1そうだね
プレイ済み
返信[6]
親投稿
745Lll<3 amakoprg
そもそもGRPをDATとして読めないので無理です
4そうだね
プレイ済み
返信[7]
親投稿
ΖΕΧ ZEX256
sayさん grpとdatを判別できるのですか、だとしたら興味ありますね、 どうやってやるのでしょうか。
4そうだね
プレイ済み
返信[8]
親投稿
しんいち stgf1080
GRPとDATの違いは、GRPが32ビット整数だけで構成されてるのに対し、DATはそれ以外もある、くらいでしょうか。だからGRPもDATの1つに過ぎないと。 プチコン本体では識別できてるんだから、SmileBASICでも識別手段用意してくれても良さそうなもんだけど、何で無いんだろうねぇ。 乱暴な手段。 とりあえず何でもかんでもDATとして配列にぶちこんで、32ビット整数ならGRPと思ってみる^^;
3そうだね
プレイ済み
返信[9]
親投稿
しんいち stgf1080
あ、識別方法じゃなくて差別化(自分が作ったファイルがGRPかDATか)なら、どうとでもできますね。但しあくまでも自分ルールにしかなりませんが。
5そうだね
プレイ済み
返信[10]
親投稿
みなつ tksm372
私もGRPだけとか、DATだけFILESしたいときがありますが、現状ではできませんねー そして、GRPをDATとして読み込んだり、逆にDATをGRPとして読み込もうとするとエラーでプログラムが止まっちゃうので、画像ビューアーみたいに自動的にGRPだけ読み込んで表示するというプログラムを作るときに、ちょっと困りますね(´・ω・`)
7そうだね
プレイ済み
返信[11]
親投稿
すう SU-KUN
プチコン、エラーフックできないのが痛い事結構ありますよね…メモリとか。あとね、タイムスタンプが読めないのが…。ファイル数が多くなってくると、時間でソートしたいんだけどね><
5そうだね
プレイ済み
返信[12]
親投稿
おちゃめ ochame_nako
往年のBASICのON ERROR GOTOみたいな処理ができれば読み出した後に判定が可能なのですが、事前にGRPかどうかを知るには自分で拡張子GRPを付ける以外に方法はないでしょうね。
4そうだね
プレイ済み
返信[13]
親投稿
ΖΕΧ ZEX256
できると言ってる人はプログラムで根拠を示してね。
4そうだね
プレイ済み
返信[14]
親投稿
おちゃめ ochame_nako
GRPは符号無し16bit整数の2次元配列なので一旦読み出したあとで判定すれば「GRPである可能性が高いファイル」かどうかは分かるのですが、現状ではそれができないですからね。
3そうだね
プレイ済み
返信[15]
親投稿
Villit nakahara1226
やっぱ.GRPとかをファイル名に付けるしかないっぽいですね。 GRPをDATとして、DATをGRPとして、それぞれ読み込もうとしてみたんですがエラー吐いたので、無理矢理判定するのもダメっぽいです(単に自分の検証不足かもですが)
2そうだね
プレイ済み
返信[16]
親投稿
おちゃめ ochame_nako
Villit NE0さんへ 次元数をそろえればちゃんとGRPとDATの相互読み出しは可能ですよ。 ただし、ファイルを読み出す前に2次元配列かどうかなんて分からないためどうにもできないのです。
3そうだね
プレイ済み
返信[17]
親投稿
ツララ LongIceSword
>すうさん >時間でソート 自分はファイル名を日付にしたりしてますけどそういうことじゃなくて?
1そうだね
プレイ済み
返信[18]
親投稿
すう SU-KUN
>ツララさん お絵描きソフトの関連で、重複しない数字を付ける方法も考えたんですが、 もし、同じ日に、極端に言うと数分、数秒に1つ保存するとなると、どうしようもなくて…>< もちろん、ほぼ日時だけのファイル名にしてしまえば名前からのソートは可能ですが、開かないと中身が何かわからなくなりますので…
1そうだね
プレイ済み
返信[19]
親投稿
キルル2 kiruru2
sayさんの「セーブ時にヘッダをつけてロード時にヘッダチェックをする」というのをプログラムにするとこうなるのではないでしょうか ヘッダをつけて保存すれば、判別できるという旨かと思われます すうさん 年月日時分秒を取得して32進数に直して保存すれば、文字数もあまり圧迫されずに、時間でソートできると思います
4そうだね
プレイ済み
返信[20]
親投稿
プチコンでの保存ファイル名の文字制限が14文字までで、ファイル識別するための拡張子を付けると10文字までの名前しか付けられない事になり・・・ アニメーション作成用等にナンバリングすると8文字以下になってしまいます・・・。 これではユーザがファイル名に悩んでしまうと考え、他に方法が無いかを質問させて頂きました。 考えてみたところ、テキストファイル等にファイル名・フォーマットを別にまとめておくという方法を思い付いたのですが・・・・うーん
5そうだね
プレイ済み
返信[21]
親投稿
ΖΕΧ ZEX256
キルル2さん いやいや、それはファイル名で判別しているのであって、拡張子で判別してるのと変わらないですよね(言っちゃ悪いけど屁理屈というか) それに一般にバイナリファイルのヘッダと言ったらファイルの中身の先頭に入れる情報のことかと
2そうだね
プレイ済み
返信[22]
親投稿
すう SU-KUN
>キルル2さん 仮に100年分で、秒まで含めると、32進数で7文字、36進数でも6文字必要みたいで…なかなか難しいですね^^; >TBさん 別のファイルも保存となると、今度は保存確認ダイアログがうざいと言う…>< おちゃめさんの「次元数を揃えれば…」と言うの初耳だったので、GRPをDATとして読み込めるか試してみたのですけど、type mismatchとなりました。やり方がまずい?それともBIGで試したから??
2そうだね
プレイ済み
返信[23]
親投稿
おちゃめ ochame_nako
プチコン3号はヘッダを弄ることはできませんが。GRPファイルやDATファイルを保存時にTXTに変換してそのTXTの先頭にDATかGRPかの文字列を埋め込むという方法もあります。 とはいえ、糞遅いと思うし、全部TXTになってしまったらいろいろと不便になってしまうのでおススメできる方法ではないですが。
1そうだね
プレイ済み
返信[24]
親投稿
おちゃめ ochame_nako
すうさんへ BIGはコンセントとHDMIケーブルを抜いたまま放置状態で試してないのですが、BIGは保存時に自動的に圧縮されるためその関係でプチコン3号と挙動が異なるのかもしれませんね。 プチコン3号ならばDATとGRPは相互読み込み(DATをGRPとして読み込む、GRPをDATとして読み込む)は可能です。
4そうだね
プレイ済み
返信[25]
親投稿
みなつ tksm372
3号だとDATとGRP相互読み込み可能というのは知りませんでしたー@@; もしかしたら「3号で保存したファイル」ならBIGでも相互読み出しできるのかなー? ただ、BIGではおそらく無圧縮保存は不可能なので、読み出せても一旦BIGで書き込んでしまうと読めなくなるので実用性はなさそうですが。。。
2そうだね
プレイ済み
返信[26]
親投稿
プチコンってファイル関係が結構貧弱な感じ。 今あるファイル機能から考えると、自分が作ったプログラムのルールで書き出したファイルを、自分が作ったプログラムのルールで読み込むって感じにしか見えないところ。 FILESもちゃんとプログラムで使うにはファイル一覧以外の情報がちゃんととれなくて、公開キーダウンロードしたファイルたちの管理を、工夫でどうにかなるレベルではないのが残念なところ。 (いちおう社長トピックの追加してほしい機能には書いたけど、期待はできなさそう) 「ファイルの拡張子」ってもともと、ファイル名だけをみて中身が何かを判断できるように作られたモノなので、GRPとDATがちゃんとシステムで区別が出来ないのなら、拡張子を付けるくらいのやりかたしかなさそうな感じです。 SAVE/LOADがGRP,DAT分けしてるのにFILSEがGRP,DAT分けしないのは仕様不足な印象です。
6そうだね
プレイ済み
返信[27]
親投稿
GRPnを GRP形式でファイルに書き出す 配列を DAT形式でファイルに書き出す GRP形式ファイルをGRPnに書き出す(形式違ってたら終了) DAT形式ファイルを配列に書き出す(形式違ってたら終了) FILESはGRPもDATも一緒に表示されて区別できない ファイル単体の詳細情報を取得する方法は無い これだとどうしてもファイル名で分けるしかなさそうという感じです。 DAT形式でなんでもかんでもアクセスできちゃうとセキュリティ的な何かって感じも。
4そうだね
プレイ済み
返信[28]
親投稿
しんいち stgf1080
とりあえずDATでセーブしとけばどうとでもなる、っていうのは共通認識で良いのだろうか。 だとしたらあんまり意味ないかも知れませんが、参考になりそうなもの公開しときます。 公開キー:15D4NEQE プロジェクト:ANIME_S1 実行ファイル:EDA1 作りかけでとっても恥ずかしいのですが、短いアニメーションです。 CRWDファイルはDATですが、中身は画像データです(最初に出てくるでっかいカラス)。なぜDATにしたのかというと、BIGで描いて勢い余って512×512以上のサイズになってしまったので、3号でも動かすためにDATにしてみました(元のGRPファイルはCROW_ALLだけど、3号じゃ全体見れないか)。 #DATで画像持っとけばスクリーンサイズに依らず #それ以上のサイズでも良いというメリットは #あるかな。
4そうだね
プレイ済み
返信[29]
親投稿
すう SU-KUN
>おちゃめさん むぅ、BIGと3号で微妙な違いがあるって、いやーんな感じですね^^; >しんいちさん お絵かきソフト作成の時、GSAVE+DAT保存の方が何かと都合良さそうだったので、色々試してたんですが、16ビット変数で保存しても、なぜかGRP保存時の倍の1MB強で保存されてしまい、原因不明でしたが、結局DATでの保存を断念しました><(通常の変数なら2MBになります…) ただ、今BIGの方で試すと、DAT保存でも圧縮されるんですね!?(GRPとほぼ同じサイズになってました) ここにもBIGと3号の違いがが…3号でも圧縮されたらなぁ…><
5そうだね
プレイ済み
返信[30]
親投稿
おちゃめ ochame_nako
すうさんへ プチコン3号とBIGの違いって細かい部分で結構あるので完全な互換性を保つのが難しいですよね。 ちなみにプチコン3号でも圧縮させることは可能ですが、旧3DSではメモリが足らないため見送っているとのことです。(社長の公式発言より) Newと旧で仕様を変えれば良いのですが、それはそれで嫌な感じもしますね。 圧縮ON/OFFをオプションで選べるのが理想です。(旧3DSはONにはできない) そうすればプチコン3号とBIGとの互換性は保てそうです。(まぁこれ以外の違いもたくさんありますが) プチコン3号では16bit整数型変数が無いためDATで保存してGRPのサイズと同じにすることはできませんね。(整数型でも1MB、実数型ならば2MBになるのは仕方が無い)
4そうだね
プレイ済み
返信[31]
親投稿
おちゃめ ochame_nako
GRPの小さな領域をDATで保存するならばGRPで全体を保存するよりはファイルサイズも小さくなるため十分メリットはあると思います。 スプライトで大きめのキャラをたくさん用意すると512x512では足らないこともありますが、そういったGRPの部分書き換えも小さな領域を保存したGRP(DAT形式)で行うと便利です。
2そうだね
プレイ済み
返信[32]
親投稿
すう SU-KUN
あっ…(゚Д゚;)(今まで整数型が16ビットだと思い込んでた事実…)設定で圧縮、ってそれいいですね。あ、でも今度はプログラム内で、互換性保てる環境と保てない環境が出てきてややこしいか。
3そうだね
プレイ済み
返信[33]
親投稿
しんいち stgf1080
むむ、今まで3号とBIGのファイル互換性は気にしてなかった(というか、当然あるものと思い込んでた)^^; 先のANIME_S1はGRPから何から全部BIGで作ってそのまま3号に持って来ただけですが、3号でも動くので、BIG→3号なら互換性あると考えて良いのかな。3号→BIGはもしかしたら互換性ない?(すみません。未確認)。
1そうだね
プレイ済み
返信[34]
親投稿
しんいち stgf1080
落ち着いて考えてみると、3号とBIGの間でファイル互換性はあると考えて良いですよね。 ファイルの保存方法が、3号圧縮しないのに対し、BIGでは圧縮する。そして圧縮されててもされてなくても3号、BIGともに読み込むことはできると。 #で合ってるかな。それとも場合によっては #読み込めないこともあるのだろうか。 ということは、3号とBIG両方持ってる場合、BIGで絵描いた方がサイズ小さくてちょっと嬉しいとか、3号で描いた絵をBIGに持っていって保存し直してファイルサイズ小さくできたりとか。
3そうだね
プレイ済み
返信[35]
親投稿
ΖΕΧ ZEX256
使いにくい
2そうだね
プレイ済み
返信[36]
親投稿
おちゃめ ochame_nako
しんいちさんへ BIGが発売されてからすぐにファイル圧縮機能を備えていることに気づいたのでプチコン3号でそのファイルを読ませてみたところ無事にプチコン3号で読めました。 というわけで、私がプチコン3号で作った「簡易地球儀QSP」ではBIGで保存して圧縮したGRPを採用しています。(ただし、当時のver.3.5.0では圧縮ファイルを読み込んだ後に書き込んだらファイルが壊れるというバグがあった) 今のバージョンならば普通に読み書きするだけならば問題ないと思います。 ZEXさんへ 配列は整数型を使い次元数をそろえればエラーが出ずに読み込めると思います。
3そうだね
プレイ済み
返信[37]
親投稿
ツララ LongIceSword
あのころのTBさんの目録を作って管理する方法で特に問題無いんじゃないです? FILES命令の書き込み先を文字列配列にして、INSTR命令で目録を参照しながら目的のファイルを探せばいいと思いますけど。 別にファイル名が意味不明な英数字の羅列でも、ワンクッション挟んででも分かる様にしたいってことですよね? コンビニとかのレジの商品管理システムみたいなプログラムがあれば解決しそうじゃないです?
1そうだね
プレイ済み
返信[38]
親投稿
すう SU-KUN
あっ、タバスコさんのそもそもの目的がわかってはないんですが、もし、システムの方で使用しているファイルとの判別が必要なだけなら、システム用ファイルの方にだけ拡張子を付けておいて、ブラウズではじく方法もありますね(Picsでやってます)。
1そうだね
プレイ済み
返信[39]
親投稿
DieMatsmot DieMatsmot
結局一度配列に組み込んで中身を調べてみなければそのファイルがそもそもなんなのかわからないんじゃ。 ヘッダについてもそうだけど。 でもそれだとそのプログラム内だけでしか有効ではないよね。
2そうだね
プレイ済み
返信[40]
親投稿
GRPが使いづらいとなると全部DAT形式で出力しておいて、必要なときにGRPに出力するって方法もあったりするけど、 結局同じプロジェクト内にDATとGRPが混在しちゃうことになるから、GRPの場合は「.GRP」を付けて出力して、プログラム内のファイル一覧には「.GRP」は表示しないようにするのがいい感じ。 ※そのソフト専用のファイルで保存しておいて、他のシステムでも使えるようなファイルで出力(エクスポート)するソフトはたくさんあります DATの中身がどんな内容かとか縦横サイズとかのファイルヘッダをちゃんと定義する必要があるし、単純にGLOADできなくなったりするけど、そういうDEFを作ればなんとか。 ちゃんと設計すれば将来圧縮処理も入れられるし。
1そうだね
プレイ済み
返信[41]
親投稿
ちなみにファイル名が人間が理解できないような名前でもちゃんと管理できるのは、ファイルを扱う画面でファイルの中身が表示されるからであって、 ファイル名しか表示されない画面ではまったくもって役に立たないのです。 プチコンのファイル管理画面(コピー削除や公開キーアップロードなど)ってプログラムで処理できないので、人間が理解出来ない名前だらけだと多くの人は何も出来ないのです。 PCやスマホで写真ファイル名が連番でも管理できてるのは、ファイルを選ぶのと表示されている写真を選ぶのとが同じだからです。
0そうだね
プレイ済み
返信[42]
親投稿
Ϊċăņ ďо įт hikahikaru3
execでdatを指定するとprg0にdatが生で読み込めるっていう都市伝説聞いたことある()
0そうだね
未プレイ