トピック
ハヤブサ.MX t.kmpayrm

TXTファイルを配列にいれてDATにするにはどうすればいいですか?

タイトルどうりです どうゆうのに使うかと言うと、 OSもどきでパッケージとして使いたいからです。 ↑説明が下手ですいません。
2そうだね
プレイ済み
返信[1]
親投稿
Ϊċăņ ďо įт hikahikaru3
適当に区切って適当に配列にぶち込んで適当にSAVE
3そうだね
未プレイ
返信[2]
親投稿
otta777 otta777a
DIM BUF[0] LOAD "TXT:ファイル名",MES$ FOR I=0 TO LEN(MES$)-1 PUSH BUF,ASC(MID$(MES$,I,1)) NEXT SAVE "DAT:ファイル名",BUF こういうことでいいのかなぁ?
3そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
TXT形式のファイルは文字列変数に読み込まれるのでその文字列を 1文字ずつ文字コードに変換してDAT形式でセーブする配列変数に 格納してDAT形式でその配列変数をセーブしています。
2そうだね
プレイ済み
返信[4]
親投稿
ハヤブサ.MX t.kmpayrm
ありがとうございました!嬉しいです!
0そうだね
プレイ済み
返信[5]
親投稿
あきと SideBurnsM
TXTでセーブするよりも8倍大きくなるところは仕方ないところですね。 きちんと確認したこと無いんですがPUSH、POPのメモリリークって直ったんですかね…
2そうだね
プレイ済み
返信[6]
親投稿
ハヤブサ.MX t.kmpayrm
あと、もうひとつだけしりたいのがあります。 DAT ファイルからTXTファイルにかえるのが、難しいので教えてください。 挑戦してみたんですができなかったのです。
0そうだね
プレイ済み
返信[7]
親投稿
Ϊċăņ ďо įт hikahikaru3
まずロード(配列) 次に中身を適当な文字で区切りつつ全部連結 そしてセーブ(TXT:)みたいな?
0そうだね
未プレイ
返信[8]
親投稿
otta777 otta777a
PUSH/POPのメモリリークは3.1.0で修正されたとは報告されていますが 自分も問題が起きなくなったかまでは確認をして無かったです。 もしメモリリークが心配でしたらDIM命令で充分大きな要素数で 配列変数を宣言してPUSH命令を BUF[I]=ASC(MID$(MES$,I,1))に置き換えるのも手です。
1そうだね
プレイ済み
返信[9]
親投稿
あきと SideBurnsM
どこまで書いてみたのかソースを貼ってみるとやり方を教えてもらえると思いますよ。
1そうだね
プレイ済み
返信[10]
親投稿
ハヤブサ.MX t.kmpayrm
このように、やって見たのですがエラーになってしまいます。どうしてこうなったんですか?...どういうふうにソースコードをデバツクすればいいでしょう?
0そうだね
プレイ済み
返信[11]
親投稿
otta777 otta777a
私のTXT形式ファイル→DAT形式ファイルで文字コードをDAT形式で セーブした場合には配列変数に読み込んだ数値配列変数の 文字コードを文字に変換して文字列変数に結合する方法が使えます。 数値配列変数の内容が0未満の負の数だったり、小数点を含む 実数だった場合はひかひかるさんのご指摘の通り、STR$で数値を 文字に変換した後に区切り文字を追加して結合していく方法になります。 その場合はTXT形式ファイル→DAT形式ファイルの変換も区切り文字ごとに 配列変数に格納するプログラムを作る必要がありますね。
1そうだね
プレイ済み
返信[12]
親投稿
ハヤブサ.MX t.kmpayrm
なるほど!
0そうだね
プレイ済み
返信[13]
親投稿
otta777 otta777a
2行目 配列変数の指定とダイアログ表示フラグが逆ですね。 7行目 配列変数BFに格納されている数値を文字コードに変換して BF$に格納するという事でいいのかな? でしたらMID$関数を使う必要は無いですよ。CHR$関数で文字コードを 文字に変換してBF$に結合すれば良いと思います。
1そうだね
プレイ済み
返信[14]
親投稿
otta777 otta777a
【訂正】 数値を文字コードに変換して→数値を文字コードとして文字に変換して の間違いです^^;;;
2そうだね
プレイ済み
返信[15]
親投稿
☆Tatsukin★ tatu_kin1192
1つのTXTファイルをDATファイルにするって意味なくないですか?僕はてっきり、複数のTXTファイルをDATファイルにすると思っていました。 DIM TEST[3] LOAD"TXT:A" OUT A$,0 LOAD"TXT:B" OUT B$,0 LOAD"TXT:C" OUT C$,0 TEST[0]=VAL(A$) TEST[1]=VAL(B$) TEST[2]=VAL(C$) SAVE"DAT:TEST",TEST
1そうだね
プレイ済み
返信[16]
親投稿
あきと SideBurnsM
ソースコードを簡単にエディタから開けないように隠せるとか意味はあると思いますよ。 最初の質問の「パッケージにする」ってどういう事を指してたんだろう。
1そうだね
プレイ済み
返信[17]
親投稿
ハヤブサ.MX t.kmpayrm
た、例えばですね、OSもどきで、 アプリストアもどきでソフトをインストールするときにDATファイルを使ってパッケージみたいにできたらすごいなと思って質問したんです。 配列についての勉強にもなるかとも思いました ==言葉が下手でスイマセン。==
0そうだね
プレイ済み
返信[18]
親投稿
あきと SideBurnsM
「パッケージ」の意味を説明してない…。 絵とソースがDATファイル1つにまとめてあるってことかな。
0そうだね
プレイ済み
返信[19]
親投稿
サファイア nmskt4649v
あきとさんがつくったセーブ方法は使えないんですかね? 文字列をDATで保存するツールのことですが。
0そうだね
プレイ済み
返信[20]
親投稿
Oskar oskar_liebig
MIKIさんが、いろいろな配列や変数を1ファイルにまとめて保存、ロードできる命令を作成しています。使ってみてはいかがでしょうか。 公開キー:Y323VP4M プレイ日記: https://miiverse.nintendo.net/posts/AYIHAAAEAABEVRTtQa5Q3Q
1そうだね
プレイ済み
返信[21]
親投稿
あきと SideBurnsM
ツールにまでしましたっけ? 画面にソース貼り付けただけだったような。 あとあの方式はゲームのセーブデータで使ってもらうのを想定していたのでサイズ固定になってしまうので使えないかなと。
0そうだね
プレイ済み
返信[22]
親投稿
サファイア nmskt4649v
あきとさん»そうだったんですね
0そうだね
プレイ済み
返信[23]
親投稿
ハヤブサ.MX t.kmpayrm
おぉー!!  そんなツールがあったんですね!ありがとうございました! とりあえずこれで閉じます 勉強になりました!
0そうだね
プレイ済み