• ベストアンサー

aspで標準入力は受け取れますか?

http://www.geocities.jp/java_iappli/java94.htm 上記のページを参考に、iアプリで入力された内容をCGIプログラムを利用してテキストファイルに書き込むことを考えています。 しかし、事情によりサーバ側のプログラムにはaspしか使えません。 aspで標準入力を受け取ることができるのか、できるとしたらどうやればいいのか、自分では調べてもわかりませんでした。 ご存知の方、お力をお貸しください。 よろしくお願いします。

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

  • ベストアンサー
  • Lchan0211
  • ベストアンサー率64% (239/371)
回答No.2

http://www.site-cooler.com/kwl/asp/10.htm#10-3http://msdn.microsoft.com/ja-jp/library/cc338854.aspx にある通り、「符号なしバイト配列」が返されます。 このデータを処理する場合、 BASP21を利用して、バイト配列のままファイルに書くか、 (参考:http://www.hi-ho.ne.jp/babaq/basp21.html#0023) 自前でバイナリ文字列変換処理を実施してファイルに 書きこむ必要があると思います。 (参考:http://yumenokunisha.com/html/develop/bin2str.htm) または、Request.Formで処理できるよう、クライアント(iアプリ) とのインタフェースを見直す手もあると思います。

その他の回答 (2)

  • Lchan0211
  • ベストアンサー率64% (239/371)
回答No.3

参考に示したURLがうまくリンクされてなかったので、 URLだけ再投稿します。 (BASP21のBinaryWrite) http://www.hi-ho.ne.jp/babaq/basp21.html#0023 (バイナリ文字列変換処理9 http://yumenokunisha.com/html/develop/bin2str.htm

souitirou1
質問者

お礼

2番の投稿とまとめて返答いたします。 BASP21のページを参考に、バイト配列でdatファイルに書き込む方法を試してみたところ、うまくいきました! 以下がソースです。 data=Request.BinaryRead(Request.TotalBytes) Set objBASP=Server.CreateObject("basp21") ret=objBASP.BinaryWrite(data,"datファイル名",1) Set objBASP=Nothing バイナリ文字列変換処理や、iアプリからの送信方法の見直しもチャレンジしてみるつもりですが、 ひとまずこれで解決としたいと思います。 この疑問がこんな短時間で解決するとは思いませんでした。 Lchan0211さん、ありがとうございました!

  • Lchan0211
  • ベストアンサー率64% (239/371)
回答No.1

CGI(perl)で標準入力から読み取るデータは、 http(POSTメソッド)のリクエストボディです。 aspの場合、このデータは request.BinaryReadで読み取ることができます。 (参考) http://www.site-cooler.com/kwl/asp/10.htm#10-3

souitirou1
質問者

補足

回答ありがとうございます! 早速URLを参考にaspファイルを考えてみたのですが、うまく動きません。。。。 Set objFSO=Server.CreateObject("Scripting.FileSystemObject") Set objFile=objFSO.OpenTextFile("書き込むファイル名",8,false) data=Request.BinaryRead(Request.TotalBytes) For Each item in data   objFile.WriteLine data(item) Next objFile.Close Set objFile=Nothing Set objFSO=Nothing 上記のプログラムの4行目で「型が一致しません」とエラーが出てしまいます。 読み取るデータは何型なのでしょうか? 尚、iアプリのプログラムは http://www.geocities.jp/java_iappli/java94.htm に書かれているものとほとんど同じです(cgiをaspに変えているだけです)。

関連するQ&A

  • ASPで検索をしたいのですが可能でしょうか。

    ハッキリ申しましてASPには何の知識もありません。 的外れな質問でしたらお許しください。 会社の課のホームページを作っていまして「検索ページをつけて欲しい」と 言われました。CGIかな?と思いまして(CGIも良く判らないのですが) サーバーの管理者に聞きましたらASPを使って下さいと言われました。 で、何がやりたいかと言いますと、 サーバーの中の課のディレクトリの中に、File1234.htmというファイルが あるとします。そしてそのファイルを検索して表示させたいのです。 ASPでこの様なことは出来るのでしょうか? 色々yahooなどで調べたのですが、イマイチ理解出来ませんでした。 よろしくお願い致します。

  • iアプリの起動

    iアプリプログラミングと言うサイトにあった、カメラ画像を送信するというiアプリを使用してみたところ、 fomaや505等の機種では起動できたのですが。 506シリーズでは「αエラーが発生しました」と出てきてiアプリの起動さえできませんでした。 どのような原因が考えられるのか思いつくかたがいらっしゃったら教えてくださいませんか? http://www.geocities.jp/java_iappli/

  • メールを標準入力として受け取るには

    現在、Xserverというレンタルサーバーを利用して 特定のアドレスに送られてきたメールの本文をサーバーに保存する、といったCGIを作成しています。 今現在、サーバーのメールフィルターにおける転送設定は下記のように設定しています。 | /usr/bin/perl /home/hoge/public_html/piyo.cgi これでメール受信時にこのCGIを起動することは確認できたのですが、標準入力を見たところ、 Return-Path: <差出人のメールアドレス> しかないようです。 一般的に、CGIにパイプしてメール本文を受け取るといった動作は可能なのでしょうか? phpでは可能、のような記事はあったのですが、当方phpは未熟で可能であればCGIで何とかしたいと思っています。 問題解決のため、皆様の知恵をお貸しいただければ幸いです。よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • nodeでJavaScriptの標準入力

    JavaScriptを勉強中です。実行環境はnode.jsを使用しています。標準出力の代わりにはconsole.log();を使用しているのですが、標準入力の代わりになるようなものは何かないのでしょうか?できれば一行で簡潔に書ける関数がいいです。getsとか。readlineとか。そういうの何かないのでしょうか? 僕が使える言語は、Ruby、Java、C、Python、Common Lispです。 これらの言語を身につけた時と同じように、JavaScriptもまずCUIで色々オモチャを作って、言語仕様を理解したいのです。 JavaScriptは、上記のようなサーバサイド向けの言語とは違い、クライアントサイドのDOM操作が中心で、素直にブラウザで実行して勉強すればいいのはわかっているのですが、prototypeの継承とかprivate変数の使い方とか名前空間についてキチンと理解するにはCUIで遊ばないとダメな気がして、それで標準入出力の代わりになるものが欲しいと思ったのですが、ないのでしょうか? それとも、そもそもまずは言語仕様をCUIで勉強するっていう発想自体がやっぱり間違っているんですかね?簡易CGIサーバでも用意してdocument.writeでブラウザに表示した方がいいのかな。でもブラウザで勉強するにしても、文字列の入力ができないと捗らない気がします。まさか文字列の入力にはフォームでも使えってことなんですかね? 回答よろしくお願いします。

  • PerlでのSessionの使い方について。。。?

    こんにちは。よろしくお願いします。 ただいま、Perlの経験も無いのに、Perlのシステムを触って改版作業中です(涙(普段はASPで開発を行っています。 調べて、可能であろうことは分かった(?)のですが、技術と知識が足りないようです。力をお貸し願えませんでしょうか? 現状、やりたいことは、Perlのプログラムの中で、Sessionを利用したい。ということです。 もうちょっと前提の条件として。。。ASPのページから、ASPのSessionを保持したまま、Perlで呼び出してそれを使って~。。。とか、やりたいのですが、その前に、PerlでSessionの利用方法がイマイチ分かりません。 既存の、質問掲示板~のようなシステムがPerlで作ってあります。 そのトップページにあたるindex.plプログラム内で、「CGI::Session」を宣言して。。。 と、宣言した時点で、既にページが表示されなく。。。 参考サイトとして http://okilab.jp/project/document/japanate/perldoc/html/CGI-Session-4.14/CGI/Session.htm や http://okilab.jp/project/document/japanate/perldoc/html/CGI-Session-4.14/CGI/Session.htm あたりを見ているのですが、 最初に「use」で呼び出して~。。。が呼び出せない。。。? ということで、環境が。。。正しくない?のかと、いろいろと考えてはいますが、なんともなりません。 CGI::Sessionは、Perlが使える標準の設置状態から、追加で何かいれなくてはいけないのですかね?? 支離滅裂な文章になってしまいましたが、アドバイスいただけると幸いです。(ちなみに、一番の担当者がお休み中なため、自分が対応中です_no

    • ベストアンサー
    • Perl
  • aspとcgiについて基本を知りたいのですが!初心者向けにお願いします。

    windows2000PROでただいまホームページを作って勉強しています。 環境としてはこんな具合です。 IISにてweb環境を作成。 同時にIISでftpサーバをインストール&設定。 簡単なcgiを動かしたかったのでactivestate.comからactive perlをdownloadしてインストールしました。 動かしたいcgiはlogin.cgiと言う短いperl言語のcgiです。 index.htmlからリンクで動かそうとしましたが、上手くいきません。 active perlのサンプルプログラムを動かしたら上手く動いたのですが、拡張子がサンプルでは.aspとなっています。 思い切ってlogin.cgiをlogin.aspとして動かしたら、なんか動いちゃいました。 login.cgiをdownloadしたホームページの説明ではlogin.cgiの名称で一部変更してコピーと書いていますので、多分見当違いのことをしていると思っています。 基本的な概念が理解できていませんので、asp/cgiの基礎を知りたいと思います。 あわせて今回の間違いも指摘して頂けたらありがたいと思います。 宜しくお願い致します。

    • 締切済み
    • CGI
  • C言語・標準入力でquitを入力で終わるプログラム

    C言語標準入力でquitを入力で終わるプログラムを作っているのですが うまくいきません #include <stdio.h> int main(void) { int i, n; double data[100]; printf("数字を入力してください。\n"); printf("入力を終えるときにはCtrl-dを押してください。\n"); n = 0; while (scanf("%lf", &data[n]) != EOF) { n++; } for (i=0; i<n; i++) { printf("data[%d] = %f\n", i, data[i]); } return (0); } と今はとりあえづ作ってみたのですが 今のままではCtrl-dでループから抜ける形になっています strcmp関数を使うとは思うのですが strcmp関数はchar型なのでエラーが出てしまいます; このやり方じゃないchar型にしてやり直さないといけないでしょうか; Linux CentOS gcc でやっています 標準入力で数字を入力しそれを格納 quitを入力するまで繰り返す quitを入力で終了、これまで格納していた文字列の表示 簡単なプログラムの流れとしては上記の感じです よろしくお願いします。

  • HTMLから入力される文字コードについて

    HTMLにテキストボックスを配置し、入力された値をアプリケーションサーバ上(Java)で処理するというアプリを作成しているのですが、テキストボックスに環境依存文字(Unicode)とShift-JIS文字が混在した場合にHTTPRequest内が文字化けしてしまいます。 環境依存文字が入力されたかどうかはサーバー側では判別不明(既に文字化けしてるため)なんですが、一般的にはどう処理しているのでしょうか??

  • WINDOWS2003から.ASPが表示されない。

    最近は、.NETによるWEB開発の風潮がありますが、当社ではまだ従来のASP(アクテイブサ-バペ-ジ)が主流です。 今回、Windows2003サ-バに.ASPのテキストファイルを移行してInternet Explorerから表示させようとすると ”プログラムの実行が許可されていないディレクトリから、CGI、ISAPI、またはその他の実行可能プログラムを実行しようとしました”という表示と ”HTTP エラー 403.1 - アクセスは許可されていません”というエラ-メッセ-ジが表示されます。 IISに対する知識がサッパリないのですが、申し訳ありません、どなたかアドバイスよろしくお願いします。

  • 標準I/OからのEOFの入力

    iBook(OSX)のプロジェクトビルダーでcarbonのファイルを作っています。プログラムの中で  getchar() != EOF という文で入力がEOFかどうかを検出しようとしているのですがreturnやenterではEOFと認識されないようです。標準I/O (キーボード)からEOFを入力するにはどうしたら良いのでしょうか。

    • 締切済み
    • Mac

専門家に質問してみよう