ページ 11

ファイルをひとつにまとめたりする方法

Posted: 2010年1月02日(土) 23:52
by 水波形
あけましておめでとうございます。
ご無沙汰しております。

今回、以前に『独自のインストーラ的なものを作りたい!』と、
リソースについて調べていましたが、Konisi様の助言で、
exeにファイルをくっつけていくという手段にしました。

しかし、やってみると、ひとつしかファイルをくっつけることが出来ません。
ということは、ZIPなどで圧縮して1つにまとめたものをくっつけるなどの方法しかないのですが、
それだと、『最初からZIPで配布しろや』ということになってしまいます。
(切り離しのコードをいじる実力はない)

なので、適当なファイルにファイルを合成し、それをくっつけるという手段を選び、
いろいろと実験して来ました。

やっとの思いで、合成する側のコードは書けたと思うのですが、
それを元に戻すのがなぜか出来ません。

分かる方がいらっしゃいましたら、添削の方をお願いします。

まとめる処理
とりあえず、FileInfo.txtだけを読み出そうとして失敗したコード

Posted: 2010年1月03日(日) 16:48
by konisi
まだ実行してみてないのですが、読み込むほうだけ見てて怪しいなと思ったところが2点。

コード: 全て選択

'テキストファイルを出力
Dim TextFileSize As Long
TextFileSize=Val(Str$(buf))/1024
free(buf)
の部分、bufはBytePtr型なので、こいつをStr$に渡してもbuf自体が格納しているアドレスをString型にして返すだけです。
MakeStr関数を使ってみてください。

もう1つは、その直前のReadFile関数の第3引数が初期化されていない点。グローバル変数なので今の実装では0で初期化されてる筈。
つまり1バイトも読み込めていません。

ご回答ありがとうございます

Posted: 2010年1月13日(水) 22:16
by 水波形
ためしに修正したみたところ、
1Byteも読み込まれなくなってしまったのですが・・・


厳しい言い方ですが

Posted: 2010年1月13日(水) 23:51
by カロン
まず、ファイルフォーマットを明確にして下さい。
あなたのコードは非常に長いので、読みにくいです。
はっきり言って本人に分からないものなど、読む気もしないというのが本音です。

TextFileSize=Val(buf)/1024
ここのTextFileSizeを適当に変えることでその値だけファイルを読むことはできるので、
ここがおかしいであろうと思われます。