TextEditorにおける送信元アドレスの文字化けについて

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
YK

TextEditorにおける送信元アドレスの文字化けについて

#1 投稿記事 by YK »

誤ってバグ報告の方に質問してしまいましたので、こちらに改めて質問させていただきました。
Active Basicの超初心者です。
 かつては、PC88、PC98シリーズではBASICでIOポートからハード制御など行なっていたこともありますが、Windowsになってからは手軽には踏み込めず、あきらめておりました。
 しかし、『手作りUSB機器』という書籍でAB4を知り、USBから手軽にIO制御を行えることがわかり、また電子工作を始めてみよう!と考えた次第です。
 (まずはABに慣れるべく、ActiveBasicオフィシャルユーザーズガイドにて勉強しようと思い立ち・・・)
 さて、質問は「ActiveBasicオフィシャルユーザーズガイドP132にあるサンプルのTextEditorですが、AB Ver4.22.00で実行すると、送信元アドレスが文字化けしてしまい、これを回避するにはどうすればよいでしょうか?」ということです。その他は正常に動作しているようです。ガイドではVer3.1.0であり、そのへんのところが関係しているのかとか、どこを見直せばよいかなかなかわからず、アドバイスをお願いしたいと考えた次第です。
 よろしくお願い申し上げます。
yu0627
記事: 154
登録日時: 2005年5月31日(火) 14:53

返信@yu0627

#2 投稿記事 by yu0627 »

 「送信元アドレス」と書いてありますが、実際は「送信元名」の筈です。
 送信元名、送信先名、件名はTextEditorのそのままで日本語を使うと文字化けを起こしてしまいます。
そのため、その部分にはJISコードに変換→BASE64に変換→ISO-2022-JP文字情報文字列(?)を付加しなくてはなりません。
ですので、それをするには大改造が必要となります。
僕のサイト(http://www.exfiction.net/~yu0627/)のパソコン→フリーソフト配布にTextEditorのメール送信機能を核として作った「LightMailSender」というそふとがあります。
それで送信してみてください。
neko

#3 投稿記事 by neko »

私も超々初心者なんですが、p158の図6-8を見ると、送信元アドレスであっていますね。
まだ私はそこまで到達していないので、サンプルのプログラムで見てみましたが、文字化けはしません。
サンプルの物と比較して違ってるところはありませんか?
(私は厳密な型チェックを行うにしておくと、警告がたくさん出てしまうのが気になります(^^;)
yu0627
記事: 154
登録日時: 2005年5月31日(火) 14:53

返信@yu0627

#4 投稿記事 by yu0627 »

思い出しましたが、TextEditorのメール送信部分はバグが多いです。前にこちらの環境ではメール送信自体が出来ませんでした。
これは携帯のフルブラウザから投稿していますので、パソコンをつけ次第改良プログラムを作成したいと思います。
YK

TextEditorにおける送信元アドレスの文字化けの件

#5 投稿記事 by YK »

yu0627さん、nekoさん、早速の応答ありがとうございました。
yu0627さん
 バグの件は知りませんでした。
 申し訳ありませんでした、「送信元名」です。
 「送信元名、送信先名、件名はTextEditorのそのままで日本語を使うと文字化けを起こしてしまいます。」とのこと、厄介そうですね。私のプログラミング能力?では手に負えそうもありません。ご紹介のサイトは是非訪問させていただきます。
nekoさん
 ガイドに付属していたCDよりロードしたTextEditorのプロジェクトファイルより実行したので、リストに関して細かく比較はしていません。プリントしてつき合わせてみます。そういわれてみれば、昔N88BASICでプログラミングしてたころは丁寧にリストの検証をしてました。

お二方の貴重なご助言に従ってもう一度再トライします。
yu0627
記事: 154
登録日時: 2005年5月31日(火) 14:53

返信@yu0627

#6 投稿記事 by yu0627 »

 ...というわけで、TextEditorのメール送信プログラムのバグ取り&送信元名・送信先名・件名の日本語対応化を行いました。
長いですが、ビビらないでくださいね^^;

 まず、↓から「jcode.dll」をダウンロードしてください。
http://www.vector.co.jp/soft/win95/prog/se281764.html
そして、↓から「base64.dll」をダウンロードしてください
http://hira.hopto.org/ab.htm
そして、解凍して出てきたDLLをTextEditorと同じフォルダに放り込んでください。

 そしたら、SendMailのダイアログを↓の写真のように変更してください。
http://www.exfiction.net/~yu0627/temp/tesmdss.gif

 そしたら、「SendMail.sbp」の最上部に以下のコードを追加してください。
 そして、SendMailThread関数を以下のように書き換えてください。

 そして、送信してみてください。
件名と送信元・先名に日本語を入力しても文字化けしていないはずです。
しかし、まだSMTPの認証システムであるPOPbeforeSMTPとSMTP認証には対応しておりません。
対応してほしい場合には、また言ってください。
まだAB(プログラミング)を始めて1年2ヶ月ぐらいなのでソースは汚いですが^^;
YK

返信@yu0627の返信

#7 投稿記事 by YK »

yu0627さん

 重ね重ね、貴重なアドバイスありがとうございます。手順も初心者用に丁寧に書いてくださいました。
 私のAB歴はほんの1ヶ月にも満たず、超の5乗くらいの初心者なので(・・・***.dllの意味もよくわからないレベルです。)、ちょっとビビッておりますが、挑戦します。(・・・***.dllの意味もよくわからないレベルです。)
 ちなみに、そんな私がABを思い立ったのは、Windowsパソコンで外部機器の制御をしたいと思っていたからです。昔PC98が全盛期の時は、98BASICのインタプリタで、今思えば気の遠くなるようなBASICプログラムを組んでいたこともありましたが、Windowsになってからは、ユーザが容易にI/Oを操作できなくなり、あきらめていました。そんな中、ABを利用した「手作りUSB機器」という本をを知り、またはじめてみようと思った次第です。(今までその類の本を何冊か読んだことがありますが、この本のように具体的にはなかなかはっきり書いてなかったです。)
 もう一度WindowsのIO制御に挑戦しようと思います。
バケさん
記事: 8
登録日時: 2005年9月22日(木) 19:29
お住まい: 広島県
連絡する:

「手作りUSB機器」

#8 投稿記事 by バケさん »

YKさん、こんにちは

WindowsのIO制御頑張ってくださいね。

「手作りUSB機器」を見て汎用USB-IOの件で結構こちらの掲示板に問い合わせされている方が増えてきていますね。
きっかけを作ったのは私なので、こちらの掲示板もチェックする回数を増やして出来るだけサポートしたいと思っています。

ハードがらみは私に問い合わせをしていただけたらと思います。
http://bake-san.com/
YK

WindowsのIO制御

#9 投稿記事 by YK »

バケさん、こんにちは!

応答ありがとうございます。
WindowsのIO制御頑張ります。
ハードがらみのときは、よろしくお願い申し上げます。
すでに、ソフトでは、「バケさんの趣味の部屋」よりvbausbio.dllとbas_vbausbio.basをダウンロードさせて頂き、お世話になっています。
ありがとうございました。

少なくとも「手作りUSB機器」の内容は、実践しようと思います。
とりあえずの目標としては、昔パソコンをいじくっていたときのように、
①スイッチのon/offを読み込んだり(ディジタルデータの入力)、A/D変換をさせる(変換指令としてのディジタルデータの出力)。
②スイッチ情報やA/DデータをAB(又はVB)の配列に取り込む。
③AB(又はVB)で配列データを処理する。
④処理内容によっては、DA変換やディジタル出力を行なう。
など行ないたいと考えています。

ずっとWindowsのIO制御ほとんどあきらめていましたが、「手作りUSB機器」をみて、できるのではないかという感触を得ました。どうでしょうか?
今までは、①の段階で既につまずいていましたから。

もっとも、①を通過してもくぐらなければならないゲートはまだたくさんありますが・・・。(ちなみに②ではどのようにすればよいか私のソフト能力では検討もつきません。)
バケさん
記事: 8
登録日時: 2005年9月22日(木) 19:29
お住まい: 広島県
連絡する:

Re: WindowsのIO制御

#10 投稿記事 by バケさん »

> ②スイッチ情報やA/DデータをAB(又はVB)の配列に取り込む。

> もっとも、①を通過してもくぐらなければならないゲートはまだたくさんありますが・・・。(ちなみに②ではどのようにすればよいか私のソフト能力では検討もつきません。)
A/Dデータはソフトでは難しいのでハード(AD変換ICやPIC)を使う必要があると思います。
http://km2net.com/でUSB-Anを販売しています。
これは汎用USB-IOとまったく同じコントロールでアナログデータを取り込む事が出来るものです。
汎用USB-IOにPICを乗せてAD変換を行っています。

私のブログ関連記事を載せています。
概要
http://bake-san.com/bdenshi/2005/12/usb-anusb.html
サンプルプログラム(AB)
http://bake-san.com/bdenshi/2005/12/usb-anpg.html

参考にして見てください。
YK

A/Dの件

#11 投稿記事 by YK »

バケさん、ありがとうございます。

 A/Dは、当初は、「USB-IOからディジタル信号を出力してそれをデコードして、A/DのICをチップセレクトするとともに、A/Dのスタートをすれば、A/D変換できる」ぐらいに考えておりました。しかし、取り込みが大変で、「どうやって取り込めばいいのだろう?」と悩んでおりました。
A/D変換はやはり難しいのですね。
 PC98時代は、98BASICのIN命令、OUT命令、PEEK、POKEで大体何とかなったのですが、大変さを感じています。しかし、大変ではありますが、逆にWindowsのIO制御ですと、PCの画面をモニタにしたりして、幅が広がり、いろんなことができそうです。
 当初、私がこのプログラミング質問板コーナーで、質問したのは、Text Editor(メール送信機能付)の送信元名の文字化けの件でしたが、それは、「外部機器を監視して、そのデータを取り込み、処理すれば、自分の携帯電話にメッセージを送れるのでは?」と考えていのが始まりでした。こんなことなどPC98時代には逆立ちしても考えられませんでした。

何とか方向が見えてきました。
アドバイスありがとうございました。
バケさん
記事: 8
登録日時: 2005年9月22日(木) 19:29
お住まい: 広島県
連絡する:

Re: A/Dの件

#12 投稿記事 by バケさん »

>  A/Dは、当初は、「USB-IOからディジタル信号を出力してそれをデコードして、A/DのICをチップセレクトするとともに、A/Dのスタートをすれば、A/D変換できる」ぐらいに考えておりました。しかし、取り込みが大変で、「どうやっ
考え方はあっています。
A/DのICをチップセレクトするとともに、A/Dのスタート、そして
一定時間後にデータを取得の処理をPICでするか、ABでコーディングするか
の違いになると思います。
USB-Anの場合は設定をしておけば、PICが定周期でポートにデータがセット
されるのでそれを任意のタイミングで取り込むようになります。
>  当初、私がこのプログラミング質問板コーナーで、質問したのは、Text Editor(メール送信機能付)の送信元名の文字化けの件でしたが、それは、「外部機器を監視して、そのデータを取り込み、処理すれば、自分の携帯電話にメッセージを送れるのでは?」と考えていのが始まりでした。こんなことなどPC98時代には逆立ちしても考えられませんでした。
アナログの入力は無かったのですが自分も同じ事をしました。
セキュリティシステムを作りました。
各センサー(赤外線、ドアセンサーなど)の信号をきっかけに
USBカメラで画像を取り、携帯に画像付のメールを送るといったものです。
また、メールでコマンドを送り返せば、警報ブザーのON/OFF
その他機器の制御が出来るようにしていました。
そのときはVBで作成しているのでUSBカメラの制御、画像の処理等のDllが
VBのサンプルにあります。
これらのDllは、ABでも使えると思います。
返信する