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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0406
うぼーpeekで読みだしたNull文字のテキスト出力の仕方4解決


うぼー

リンク

2012/4/6(Fri) 01:08:43|NO.45882

peekを使ってファイルのバイナリデータをテキストファイル(ini)に書き出すソフトを作っています。
exist "a.aa"
sdim data,strsize bload "a.aa",data notesel ini repeat 100 A = peek(data,z) z+=16 ini = ini + strf("%c",A) loop notesave "aa.ini"
(a.aaは2KB以上の適当ファイルを使ってください)
a.aaのバイナリデータに00が含まれていなければ、100Bのaa.iniが出来ます
ですが、00(null文字)が入っていると、strf("%c",A) で取り除かれてしまいます。
それを、ちゃんと出力されたiniファイルをバイナリで見た時に00が入っているようにしたいです。
if A = 0:ini = ini + 0x00 :else :ini = ini + strf("%c",A)
などとやってみましたが、バイナリを見ると30(0のASCIIコード)になってしまいました
どなたかよろしくお願いします



この記事に返信する


fortunehill

リンク

2012/4/6(Fri) 01:43:57|NO.45883

参考に成りますか?


ss = "1234567890abcdefghijklmnopqrstuvwxyz" ; data cc = "" ; 結果 poke ss,10,0 :poke ss,18,0 :poke ss,26,0 ; null文字挿入 pp = 1 ; peek位置 repeat 10+26 nn = peek(ss,pp-1) if (nn == 0) {cc+= "00 "} else {cc+= strf("%2c ",nn)} if (pp \ 16 == 0) {cc = strtrim(cc,2,' ') :cc+= "\n" } pp++ loop mes cc



Cookies

リンク

2012/4/6(Fri) 08:30:48|NO.45891

notesaveでするのはたぶん無理です。bsaveじゃないと。



KA

リンク

2012/4/6(Fri) 19:56:38|NO.45896

なら、Aが0だったら適当な文字に変換する作業を
追加するだけでは無いでしょうか。

テキストファイルにわざわざ変換したのに、バイナ
リで見る意図も理解出来ませんが。



うぼー

リンク

2012/4/10(Tue) 22:17:53|NO.46015

fortunehillさん、Cookiesさん、KAさんお返事遅れて申し訳ありません
fortunehillさんがくださったソースは理解できませんでした…
結局、バッファの計算してsdimで確保し、pokeで書き込んでいくことにしました
ご回答ありがとうございました



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