tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルPOSTされたデータの読み方
記事No2328
投稿日: 2005/09/28(Wed) 23:22
投稿者こばち
[OSのVer]:Windows xp    [VBのVer]:VB.NET2003
はじめまして、こばちと申します。
ASPからVB.NETへの移行を行おうと思っています。
今、私がやっているシステムは、クライアントにDelphi6.0で開発されたexeがあり、サーバー側にasp
で作成されたプログラムがIISで動作しています。つまり、ウェブ開発ではないのですが、ウェブの機
構を使って文字列の交換を行うという変則的なやり方をしています。で、このサーバー側のaspを
vb.netで書き直す予定です。
で、クライアント側DelphiのexeはGetでは文字列制限があるので、Postメソッドを利用して送信して
きますので、vb.net側はPostされた文字列を読む必要があります。
[asp時代のコーディング]
<%
Dim ReturnData
DIM binRead
DIM byteCount
Dim cText
byteCount = Request.TotalBytes
binRead = Request.BinaryRead(byteCount)
cText = Bin2Str(binRead)  'バイナリを文字列に変換するユーザ定義関数
Response.Write(cText)
%>
<%
Function Bin2Str(byteData)
    Bin2Str =""
    i = 1
    Do While i <= LenB(byteData)
        u = Hex(AscB(MidB(byteData, i, 1)))
        If ((CInt("&H" & u) >= &H81) And (CInt("&H"
& u) <= &H9F)) _
            Or ((CInt("&H" & u) >= &HE0) And (CInt("&H&qu
ot; & u) <= &HFC)) Then 'Code Page 932
            l = Hex(AscB(MidB(byteData, i + 1, 1)))
            intChar = CInt("&H" & u & l)
            s = Chr(intChar)
            i = i + 2
        Else
            intChar = CInt("&H" & u)
            s = Chr(intChar)
            i = i + 1
        End If
        Bin2Str = Bin2Str & s
    Loop
End Function
%>
<%
Function Str2Bin(strData)
'バイナリのバイト文字を文字列に変換する。

End Function
%>
>%
[ここまで]

実は、Str2Binという関数は夢野國夫さんという方がhpで公開されているものです。中身はそちらを娯楽下さい。正直内容に関しては全く理解していないで利用させていただいていました。
また、Request.BinaryReadに関してはhelpを参照しても「aspとの互換性のために残した」と記述して
ありますので、vb.netではもっと楽な方法で取得できるのでは、とも思うのですが、InputStreamなど
それらしいものを利用しても上手く行かない状況です。
ずっとクラサバ畑にいたので、こうしたhttpのやり取りは今ひとつスキルが足らないのですが、何卒
ご教授いただけませんでしょうか。
  

[ツリー表示へ]
タイトルRe: POSTされたデータの読み方
記事No2329
投稿日: 2005/09/29(Thu) 08:12
投稿者花ちゃん
回答ではありません。ここの初めにお読み下さいは読んで頂いたのでしょうか?

> 実は、Str2Binという関数は夢野國夫さんという方がhpで公開されているものをパチったもので、正直
> 内容に関しては全く理解していないで利用させていただいていました。

そのコードをここへ投稿して頂いても問題ないのでしょうか?
サイトの右下に Copyright ○C が書いてあったような。

又、コードを投稿される場合は、図表モードで段落等をキチンと表示させて
投稿されないと、読みにくくてレスが付かない原因にもなります。

図表モードへの修正は、最下部から[修正]で行えます。

[ツリー表示へ]
タイトルRe^2: POSTされたデータの読み方
記事No2332
投稿日: 2005/09/29(Thu) 13:38
投稿者こばち
お世話になります。自己レスです。
コードに関しては、書籍などでは出自をはっきりさせれば引用可能と伺っていましたので(自分で書いた
ような書き方はNG)、大丈夫かな、と思ってましたが、気を付けます。
尚、vb.netでは
System.Text.Encoding.UTF8.GetString(byte())
(UTF8以外にもUNICODE,SJISなどが利用できる)
とやると読めました。

[ツリー表示へ]