basp21のアップロード方法とsarrayの文字列化

このQ&Aのポイント
  • basp21のアップロード方法と、配列sarrayを文字列として扱う方法について教えてください。
  • テキストファイルのアップロードで、basp21を使用しています。sarrayはvbByte型か配列ですが、それを文字列として扱いたいです。
  • 配列sarrayを文字列に変換する方法が分からずにエラーが発生しています。具体的には、sarray(0)にアクセスするとエラーになります。どのように対処すれば良いでしょうか?
回答を見る
  • ベストアンサー

basp21のアップロード

テキストファイルのアップロードで http://www.hi-ho.ne.jp/babaq/basp21.html#0028 sarray = bobj.FormBinary(barray,"file1") ここまでできました。 sarrayはvbByte型か配列になったものみたいです。 このsarrayを文字列のように扱う方法を教えてください。 Response.Write "最初の3文字は " & Left(sarray) & "<br>" としたいのですが、エラーです。 テキストの1バイト目がAなら、sarray(0)からAや0x30を 取得したいのですがsarray(0)にアクセスするとエラーに なるみたいでした。 Dim buf buf = sarray(0) basp21というより8209の変数の扱いが分かっていません。

  • achm
  • お礼率22% (13/57)

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

適当な変数を用意して Joinでつなげてみてください dim ss ss = Join(sarray) 文字列になると思います マルチパートで取り込んだデータが全てが文字として認識できない可能性もあります Byte配列からUnicode文字列に変換する際にUnicodeで表現できない文字などが化けてしまう可能性があります 配列なら UBound/LBoundで配列の添え字の上限/下限を求められますよ

関連するQ&A

  • BASP21 空白のメッセージ

    BASP21をインストールしたかったので http://www.hi-ho.ne.jp/~babaq/basp21.html から http://www.hi-ho.ne.jp/babaq/data/Bsmtp20070629-587.lzh を落として、デスクトップにBsmtp20070629-587.lzhをダウンロードしたのですが このファイルをダブルクリックすると Explzh (x64)で開かれ、Bsendm.exeをダブルクリックすると 画像のように何もメッセージのないメッセージボックスが開かれるのですが これはインストールできないのでしょうか? win764bitです。

  • BASP21のインストールをしたいのですが

    BASP21のインストールをしたいのですが http://www.hi-ho.ne.jp/babaq/basp21.html の ●BASP21.DLL (160KB) 本家(COMコンポーネント) は、リンクがなく、ダウンロードページへ行けないのですが どこからダウンロードすればいいのでしょうか? 下に色々なエンジンがありますが、どれをダウンロードすればわからないので 他の方法で本家のをダウンロードしたいです。

  • BASP21 DLL

    http://www.hi-ho.ne.jp/~babaq/basp21.html からBASP21 DLLを使おうと思い、 Down Load! Bsmtp20070629-587.lzh(119KB) を解凍したのですが、 開けません。 Down Load! Bsmtp20070531.lzh(119.1KB) も同じ結果でした。 環境はwin10 Homeです。 実行ファイルの「Bsendm.exe」をダブルクリックで開こうとすると BSENDM cannot open となります。

  • Basp21に詳しい方!!

    まったくの初心者です。 送信するメールにファイル添付されるようにしたいのですが、 どうしてもエラーが出てしまいます。 どこが間違えていますか? ----------------------------------------------------------------------------------------------------------- 'Basp21でメールを送信します。 Set Basp = Server.CreateObject("basp21") tb = Request.TotalBytes br = Request.BinaryRead(tb) fn = Basp.FormFileName(br,"includedFile") fpath = Mid(fn,InstrRev(fn,"\")+1) leng = Basp.FormSaveAs(br,"includedFile",fpath) End If rc = Basp.SendMail(host, mailTo, mailFrom, subject, body, fpath) If rc = "" Then Response.Write "送信完了" Else Response.Write "送信失敗:" & rc End If set basp = Nothing

  • BASP21のファイルアップロードでエラー

    IIS7.0の環境にBASP21をインストールして、ブラウザからのファイルアップロードを処理しようとしています。BASP21は、BASP21-2003-0211.exe をインストールしました。 症状は、ブラウザ(MSIE 7.0.5730.13)からファイルアップロードをすると、うまくいくときもあるし、うまくいかないときもあるという感じです。 うまくいくときは FormSaveAs でファイルが保存され、そのファイルを読み出して処理することができます。 うまくいかないときは FormSaveAs が -2(名前が見つかりません)を返し、ファイルが保存されません。 HTMLのフォームの部分は以下のようになっています。 <form enctype="multipart/form-data" method=POST action="upload1.asp"> <input type="hidden" name="MAX_FILE_SIZE" value="3000000"> ファイル名:<input type="file" name="userfile" size="60"><br /> <input type="submit" value="ファイルを送信"><br /> </form> 同じファイルを何度も送信して試してみたところ、a = Request.TotalBytes のところで、a にセットされる値が変わることがわかりました。 テストに使ったファイルでは、うまくいくときは 818 になり、うまくいかないときは 821 になりました。ファイルそのものは 413 バイトなので、付加されるヘッダ情報に違いがあるのではないかと思いました。 そこで、パケットモニタを使用して送信されるデータを見てみたところ、boundary= の後ろに指定される文字の長さによって動きが変わってくるように見えました。 マイナス連続の後ろが 7d934f3211530(13文字)→NG マイナス連続の後ろが 7d9274d11530(12文字)→OK 送信フォームの中にはパーツが2つあり、末尾のboundaryも含めて3つになりますので、1文字違うと合計で3バイト違ってきますので計算は合います。 このあたりの情報は、どこかにないでしょうか?BASP21の使い方が悪いのか、HTMLやASPの書き方が悪いのか、わからないので困っています。

  • Access2003からシンプルにファイルを添付してメール送信したいと

    Access2003からシンプルにファイルを添付してメール送信したいと考えています。 こちら(http://www.site-cooler.com/kwl/asp/19.htm)を参考に、BASP21というコンポーネントを利用してACCESS上のフォームにボタンを用意してコードビルダで下記のように記述してみましたが、「コンパイルエラー:構文エラー」と表示されました。 どのように改善すれば良いのでしょうか。 ACCESS初心者の為、すみませんがご教示お願いします。 --------------------------------------------------------------------------- Private Sub コマンド0_Click() Set bobj = Server.CreateObject("basp21") bobj.SendMail() <%@ LANGUAGE = VBSCRIPT %> <% Dim strServer 'SMTPサーバ Dim strTo '宛先 Dim strFrom '送信元 Dim strSub 'メール標題 Dim strBody 'メール本文 Dim strFile '添付ファイル Dim result '戻り値 strServer = "smtp.xxxx.co.jp" strTo = "xxxx@xxxx.co.jp" strFrom = "xxxx@xxxx.co.jp" strSub = "件名" strBody = "本文です。" & vbCrLf & "本文終了" strFile = "c:\text.txt" Set bobj = Server.CreateObject("basp21") result = bobj.SendMail(strServer, strTo, strFrom, strSub, strBody, strFile) If result <> "" Then Response.Write ("メール送信エラー :" & result) Response.End End If Response.Write ("メール送信完了") %> If result <> "" Then Response.Write ("メール送信エラー :" & result) Response.End End If End Sub ---------------------------------------------------------------------------

  • BASP21を使ってEXCELからメールの送信

    BASP21を使ってEXCELからメールの送信をしたいのですが、できません。 自分なりに調べた結果、下記のコードになったのですが、どこかおかしいのでしょうか? エラー表示は次になります。 530 5.7.1 client was not authenticated from メールアドレス よろしくお願いいたします。 Sub ボタン2_Click() ''[送信]ボタン Dim bobj, msg As String, i As Long Dim Server As String, Mailto As String, MailFrom As String Dim Subject As String, Attach As String, Body As String On Error Resume Next Set bobj = CreateObject("basp21") ''BASP21オブジェクト ''BASP21がインストールされているかどうかを判定する If Err = 429 Then MsgBox "BASP21がインストールされていません。", vbCritical Exit Sub End If ''必須データのチェック Server = "mail.○○○.com:587:60" ''SMTPサーバー Mailto = "○○○@hotmail.co.jp" ''宛先 MailFrom = "△△△@×××.co.jp" ''差出し人 Subject = "更新連絡" ''タイトル Body = "システムが更新しました" ''本文 msg = bobj.SendMail(Server, Mailto, MailFrom, Subject, Body, Attach) Set bobj = Nothing If msg <> "" Then MsgBox msg, vbExclamation Else MsgBox "メールを送信しました。", vbInformation End If End Sub

  • BASP21のエラーについて

    Windows XP Excel2003でBASP21を使用してメールを送信させています。 次のようなコードを使用して送信すると エラーの内容 "xxxsmtp.mail.yahoo.co.jp Closig transmission channel You must be pop-aut" 翻訳で ”あなたはホップアップ同型を伝送チャネルにする必要があり” Sub AB_jidou() Dim bobj, msg As String Dim Server As String, Mailto As String, MailFrom As String, Subject As String, Body As String Set bobj = CreateObject("basp21") ''BASP21オブジェクト Server = "xxxsmtp.mail.yahoo.co.jp" ''SMTPサーバー Mailto = "xxxx8743@xxxx.ne.jp" MailFrom = "xxxxxx0@xxx.ne.jp" ''差出し人 Subject = " 取引情報" ''タイトル Body = Sheets(1).Range("U34") ''本文 msg = bobj.SendMail(Server, Mailto, MailFrom, Subject, Body, "") Set bobj = Nothing If msg <> "" Then MsgBox msg End Sub ところが受信を実行するとそれ以降送信が可能になります。 プログラムが走っている間は良いのですが一度閉じてまた立ち上げると同じ症状になります。 その都度受信をするのは大変ですので何とかしたいのですがご存じの方教えてください。 よろしくお願いします

  • BASP21でファイル日時を取得したい

    baspについての質問です。 特定のディレクトリの状態を確認したいので、下記のスクリプトを作りました。これでファイル名は取れるのですが、ファイル日時をどのように取得すれば良いか分かりません。 どなたかアドバイスいただけますよう、お願いいたします。 -------------------------------------------------- Set bobj = wscript.CreateObject("basp21") farray = bobj.ReadDir("c:\*.*") if IsArray(farray) then pos = InstrRev(name,"\") dirname = Left(name,pos) ctr = Ubound(farray) for i = 0 to ctr fullname = dirname & farray(i) wscript.echo farray(i) next end if

  • バイナリデータの表示

    ASP初心者です。 下記のソースの表示結果を[表示]→[ソース]で[ファイル保存] を使い"after_test.bin"として保存しました。 バイナリエディターで元の"test.bin"と結果の"after_test.bin"を見比べると 1.'20'が'00'に変わってしまう 2.'0D'→'0D0A'になり1バイトずれる(BinaryWrite?) この問題を回避するには、どうしたら良いのでしょうか?宜しくご指導願います。 '-------------------------------------------- Dim bobj Dim barray Set bobj = Server.CreateObject("basp21") barray = bobj.BinaryRead(Server.MapPath(test & ".bin") Response.BinaryWrite barray Set bobj = Nothing Call Response.End

専門家に質問してみよう