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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
1101
b64decodeとバッファ5解決


リンク

2012/11/1(Thu) 12:57:18|NO.50405

b64decodeしたデータを変数にして使いたいと思い、以下のようなソースを作成しました。

例1

;b64decodeしたデータを変数にして使う ;あらかじめtest.txtはBASE64エンコードしてある #include "mod_img.as" sdim tes,2000000 notesel tes noteload "test.txt" ;実サイズ1,990,644バイト b64test=tes sdim bres,2000000 b64decode bres,b64test

例2

;試しにtamesi.txt(バイナリデータ)をバッファへ読み込みしてみる sdim tes,1492982 notesel tes noteload "tamesi.txt" ;実サイズ1,492,982バイト mes tes ;7文字しか表示されない。bsave だとサイズも正常に保存されている。


疑問と質問

疑問mes でbres(例1)やtes(例2)を表示してみても7文字しか表示されないのは何故ですか?
   念の為memfileやbload も使ってみましたが、結果は変わらず…。
疑問■景源しか表示されないのに、例1をbsave を使って作成されるサイズは当然2,000,000バイト
疑問N磽韻bsaveで作成されたファイルはスペースが多数付加されている。
   しかしスペースを付加させない様に実サイズで作成するとデータが壊れている。
  (しかもスペース付加は変わらず)

質問[磽韻離丱奪侫,砲△襯如璽燭論犠錣任垢?(bloadで画像程度なら表示はされます)
質問∧竸瑤縫丱奪侫,瞭睛討鮖藩僂垢襪砲呂匹陵佑傍述したら良いですか?
 fname = bres+"拡張子" では不適切ですか?
 因みに上記をbsaveで作成した場合、ファイルは64バイトになってしまいます。
 (内容は7文字とスペースのみで構成されている)

わかりにくい説明かと思いますが助言よろしくお願いします。



この記事に返信する


KA

リンク

2012/11/1(Thu) 14:08:24|NO.50406

基本的に note 関係の使い方が分かっていないようです。
ヘルプで調べて下さい。



ANTARES

リンク

2012/11/1(Thu) 15:03:01|NO.50407

例1は明らかに実際に使っていないスクリプトですね。
そんなものを貼って質問しても、正しい回答が得られることはあり得ません。
質問のために作ったスクリプトだとしても、必ず実行してみて
予想通りの結果になるか確認してください。

例2は、バイナリデータにtxtという拡張子をつけるのもわけわかりませんが、
バイナリデータにはnote系の命令は使えません。
まともに動かないのは、当然です。
それとも、バイナリデータの意味がわかってないのでしょうか?



リンク

2012/11/1(Thu) 16:37:26|NO.50408

KAさん
もっと内容を理解できるように勉強します。


ANTARESさん
例1のソースを投稿用に編集した際に#includeが変わっていました。
不注意で誤解を招いてしまい、すみません。
以下が実際の例1になります。
<p>
#include "hspinet.as"
sdim m,2000000
notesel m
noteload "Magic.txt"
b64Magi=m
sdim bres,2000000
b64decode bres,b64Magi

mes bres
</p>

例2は自分の例1のソースの検証用で、バイナリを読み込んでみたものです。
.txtはメモ帳で手軽に開けるように.txtをつけています(通常はバイナリエディタを使用しています)。

質問内容は、バイナリのサイズ(2000000)を指定しているのに、2000000分表示されず、
デコードした内容をmesで表示していたので14バイトしか表示されていないと思ってしまった為でした。

お二人共ご回答ありがとうございました。



ANTARES

リンク

2012/11/2(Fri) 01:21:48|NO.50411

 hsp3.31のサンプルスクリプトを読んでいたら
jpgファイルをnoteloadで読んでいる例がありました。
(sample\basic\memfile.hsp)
noteloadはバイナリデータにも対応したようですね。
いつから対応したのかは知りませんが、
3.1あたりは対応してなかったと思います。

まともに表示されないのはmesの仕様ということかもしれません。



晩御飯

リンク

2012/11/2(Fri) 10:58:48|NO.50415

mesで出ないのは終端文字に引っかかってるだけでは



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