HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
1110
高級直撃破壊複数の変数、または配列変数の保存7解決


高級直撃破壊

リンク

2014/11/10(Mon) 13:10:38|NO.65970

一つのファイルにa,b,c,dの変数情報を全て保存する、
もしくは一つのファイルにa(nanka) (複数)を全て保存することはできますか?
前に撮った動画を再び見てみたら、
今になって全ての変数の数が同じになってるのに気づきました。
動画はこれです→https://www.youtube.com/watch?v=mw4aGrFl8a0
(当時気がつかなかったので動画の変数などがバカなのは気にしないでくださいね)
このプログラムは配列変数100個をbsaveでテキストファイルに保存しています。
・・・この使い方は間違ってますよね?

もし、変数を全て保存する方法があれば、教えてください!
(使うファイルは一つじゃなくてもいいです)



この記事に返信する


cats

リンク

2014/11/10(Mon) 13:35:25|NO.65971

例えば32ビットで保存するデータサイズを指定し、そのサイズ分だけのデータを次のオフセットから保存するというのはどうでしょうか。
例えば

a = "test" b = 123456
を保存したい場合は、

0x04 0x74 0x65 0x73 0x74 0x20 0x00 0x01 0xE2 0x40
をセーブデータにすれば良いです。(なぜなら"test"は4[byte], intも4[byte])
上の例ではオフセット0から1バイトで次のデータサイズがバイト単位で指定され、
更にオフセット5 ( 1 + 0x04 )から1バイトで次のデータサイズがバイト単位で指定されています。



aaa

リンク

2014/11/10(Mon) 13:40:17|NO.65972

vsave関連の命令が役に立つのでは。
あらかじめサンプルも用意されていますし。



(´・ω・`)

リンク

2014/11/10(Mon) 16:49:34|NO.65974

よくわからないけど1つの変数に保存したいデータを全て入れて、
その変数をnotesaveで保存すればいいんじゃないかな。

それにしてもこのスレ主痛すぎない・・・?



高級直撃破壊

リンク

2014/11/10(Mon) 23:34:50|NO.65982

0x04 0x74 0x65 0x73 0x74 0x20 0x00 0x01 0xE2 0x40をセーブデータにする
→これらの変数名にして一つのファイルに保存するということですか?
それとも、この名前で複数のファイルを作るということですか?
(保存についてやるのは初めてで知識不足ですいません)

vsave関連の命令が役に立つ
→調べてみます!保存にもいくつか方法があるみたいですね。

1つの変数に保存したいデータを全て入れて、その変数をnotesaveで保存すればいい
→これをやると、最後に入れた(?)一つしか保存されない
(全て上書きされている)みたいで出来ないんです・・・


それにしてもこのスレ主痛すぎない・・・?
→痛い・・・とは?



cats

リンク

2014/11/10(Mon) 23:59:48|NO.65983

>(全て上書きされている)みたいで出来ないんです・・・
note系統でいいならnoteaddで調べてみてください。

>これらの変数名にして一つのファイルに保存するということですか?
先ほどのバイト列はあくまでも例です。(0x20の部分がビット単位になってました。すいません。)
「次のデータのサイズ」「データ」「次のデータのサイズ」「データ」を繰り返せば
複数のデータを簡単に保存できるんじゃないかなぁ、という適当な考えです。
保存方法はいくらでも考えることができますが、できるだけサイズを小さく、また効率的に保存することが望ましいでしょう。



zero

リンク

2014/11/11(Tue) 03:38:53|NO.65984

例えば整数の配列を保存する場合は

#define FILENAME "data.dat" mes "SAVE" repeat 10 a.cnt = rnd(200) mes a.cnt loop // ファイルが無ければ空のファイルを作成 exist FILENAME if (strsize < 0) { sdim buf notesel buf notesave FILENAME noteunsel } // intの1次元配列をファイルの0バイト目から保存する bsave FILENAME, a, length(a) * 4, 0 wait 100 // 読み込む dim b, length(a) bload FILENAME, b, length(a) * 4, 0 pos 100, 0 mes "LOAD" foreach b mes b.cnt loop
こんな感じで書けばいいんじゃないですか。
保存したい変数の内容(型、大きさ)がもっと具体的に分かれば
それに沿った回答もできますが。



高級直撃破壊

リンク

2014/11/11(Tue) 07:50:01|NO.65985

65984
→ありがとうございます、これを使わせていただきます!
65983
→調べてみます!

みなさんご丁寧にありがとうございました!



ONION software Copyright 1997-2021(c) All rights reserved.