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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0125
P2PBMPファイルをテキスト形式で読み込み・保存6解決


P2P

リンク

2010/1/25(Mon) 17:39:56|NO.30152

BMPファイル限定ではないですが、
ファイルをテキスト形式で読み込み・保存がしたいです。
そのために、noteloadやbloadで読み込んで、
notesaveやbsaveで保存する方法をとったのですが、
データが空っぽの状態でしか保存されません。
ネット間を通じてデータをやり取りするプログラムを作りたいので、
bcopyも使えません。
どうすればいいか教えてもらえませんか?



この記事に返信する


inovia

リンク

2010/1/25(Mon) 18:16:54|NO.30153

バイナリファイルをテキストファイルに変換するのには
BASE64を使うのが一般的でしょう。
(電子メールでも使われています。)


/**************************************************************** // LongInt 内の rsa.hsp というモジュールを使用します。 // base64の部分は プラグインではなくモジュールで提供されています。 // そのため、LongInt.dll を別途配布する必要がなく便利です。 // 入手先: // http://www.vector.co.jp/soft/dl/win95/prog/se397330.html *****************************************************************/ #include "rsa.hsp" dialog "bmp",16 if stat=0 :end fname=refstr exist fname size=strsize sdim buf,size sdim dest,size*2 ;2倍ほど確保しておくといいかも bload fname,buf EncodeBase64 dest,buf,size encsize=stat bsave ""+getpath(fname,1)+".txt",dest,encsize



SYAM

リンク

2010/1/25(Mon) 18:16:58|NO.30154

まずは、「テキスト形式」とは何かを確実に理解することから始めないといけないのではないかと思いますが…
とりあえず以下のような感じでできるんじゃないでしょうか。
重要なキーワードを「」で書きますから、検索するなどして理解してください。


まず、「バイナリファイル」と「テキストファイル」の違いをしっかり理解しましょう。
すると、BMPファイルなどの「バイナリファイル」のデータを「テキスト形式」で保存することは不可能だと分かってくるはずです。
そこで、バイナリファイルをテキスト形式で書き表す方法が必要になってきます。「Base64」という変換方法を使うと、バイナリデータをテキストで書き表すことができます。

ですから、BMPファイルを「Base64でエンコード」した「テキストデータ」なら、普通にテキスト保存命令で保存できるでしょう。
読み出すときには、同じ「Base64でデコード」すると、元のBMPデータが得られます。



KA

リンク

2010/1/25(Mon) 19:24:24|NO.30155

>>ファイルをテキスト形式で読み込み・保存がしたいです。
>>データが空っぽの状態でしか保存されません。
>>ネット間を通じてデータをやり取りするプログラムを作りたい

質問が混じり合っているので、整理しましょう、

一番上の質問に対しては、回答が出ているので省きます。
二番目の質問は、どういう意味でしょうか?
三番目の質問は、方法により変わってきます。



inovia

リンク

2010/1/28(Thu) 01:15:36|NO.30206

HSPに計算を任せると大きなファイルのBase64のデコード&エンコードに
かなり時間がかかるのでマシン語を使ったモジュールを書いてみました。

mbase64
http://homepage2.nifty.com/MJHS/dotou_hsp/module/mbase64_100.lzh



tsuka

リンク

2010/1/28(Thu) 16:12:34|NO.30210

ついこの間、OpenHSPのhspinetがbase64エンコードに対応したようなので、それも試してみてはどうでしょう。
http://dev.onionsoft.net/trac/changeset/360



P2P

リンク

2010/1/30(Sat) 12:15:47|NO.30241

ありがとうございました。
ちゃんとできました。



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