フォームの値をHTMLファイルに出力する方法について

このQ&Aのポイント
  • 「1.htm」で入力された値を「2.asp」でCドライブにHTMLファイルとして出力する方法について教えてください。
  • 現在、出力がうまく行っていない状況です。
  • また、タグの表示方法もわかりません。
回答を見る
  • ベストアンサー

フォームの値をHTMLファイルに出力したい

「1.htm」で入力された値を 「2.asp」でCドライブにHTMLファイルとして出力したいと考えています。 しかし、うまく出力されません。 どなたかご教授お願いします。 ***1.htm*** <form method="POST" action="2.asp"> <input name="text1" type="text"> </form> ***2.asp*** <% Set fso = CreateObject("Scripting.FileSystemObject") Set ts = fso.OpenTextFile("c:\test.htm",8,True) strWriteText = FormatDateTime( Now , vbGeneralDate ) & _ Request.Form("text1") & _ ↑ここが表示されない。タグの表示方法もわかりません。 %>

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

  • ベストアンサー
回答No.3

> strWriteText = ts.WriteLine "<table>" WriteLineメソッドには戻り値がないので、結果を変数に代入することはできません。 > ts.write strWriteText ts.write strWriteText で一度に出力するのであれば、あらかじめ strWriteTextに改行コードを含む全ての文字列を格納しておく必要があります。 色々な書き方がありますが、下記にサンプルを記しておきます。 <% Set fso = CreateObject("Scripting.FileSystemObject") Set ts = fso.OpenTextFile("c:\test.htm",8,True) strWriteText = FormatDateTime( Now , vbGeneralDate ) & _ Request.Form("text1") ts.WriteLine "<table>" ts.WriteLine "<tr><td>テスト</td></tr>" ts.WriteLine "<tr><td>" & strWriteText & "</td></tr>" ts.WriteLine "</table>" ts.Close %>

その他の回答 (2)

回答No.2

Writeメソッドの引数に出力したい文字列を指定するだけです。 改行を入れたいのであれば、WriteLineメソッドを使うと良いでしょう。 ts.WriteLine "<table>" ts.WriteLine "<tr><td>テスト</td></tr>" ts.WriteLine "<tr><td>" & strWriteText & "</td></tr>" ts.WriteLine "</table>"

smorgas030
質問者

お礼

回答ありがとうございます。 以下のようにしましたが、うまく出力できません。 どこがおかしいのでしょうか。 Set fso = CreateObject("Scripting.FileSystemObject") Set ts = fso.OpenTextFile("c:\test.htm",8,True) strWriteText = ts.WriteLine "<table>" ts.WriteLine "<tr><td>テスト</td></tr>" ts.WriteLine "<tr><td>" & strWritetext1 & "</td></tr>" ts.WriteLine "</table>" ts.write strWriteText ts.Close よろしければご教授ください。

回答No.1

2.aspで表示するのではなく、別ファイルに出力するのですか? それなら、 Set fso = CreateObject("Scripting.FileSystemObject") Set ts = fso.OpenTextFile("c:\test.htm",8,True) strWriteText = FormatDateTime( Now , vbGeneralDate ) & _ Request.Form("text1") ts.write strWriteText で、出力できます。(インターネットゲストアカウントに書き込み権限が必要です。) 2.aspで出力するなら response.write strWriteText で表示できます。

smorgas030
質問者

お礼

回答ありがとうございます。 文章がわかりにくくて申し訳ありません。 別ファイルで出力させたいと思っています。 教えていただいたようにやったらうまくできました。 ありがとうございました。 また、別ファイルですが、以下のように出力したいと考えています。 「text1」以外の部分はどのように、 記述したらいいのかわかりません。 よろしければご教授ください。 宜しくお願いします。 <table> <tr><td>テスト</td></tr> <tr><td>"text1"</td></tr> </table>

関連するQ&A

  • ファイルシステムオブジェクトのメソッドについて

    こんにちは、皆さん。 以下のプログラムでコピーしようとしたら、 オブジェクトがメソッド、プロパティをサポートしてないという メッセージが表示されてしまいました。 Set fso = CreateObject("Scripting.FileSystemObject") fso.CopyFile "c:\aaa.txt", "c:\temp\" Set fso = CreateObject("Scripting.FileSystemObject") Set src = fso.GetFile("c:\aaa.txt") fso.Copy "c:\temp\" こういった場合、どんなメソッドがあるか確認するには どうしたらよいでしょうか? また、ファイルをコピーするにはどうしたらよいでしょうか? よろしくお願いします。

  • VBSでテキストファイルを作成

    こんにちは。 set fso = createobject("Scripting.FileSystemObject") fso.createfolder("倉庫") を実行すると、実行したスクリプトが存在する場所に「倉庫」という名のフォルダが作成されます。 その倉庫というフォルダの中にテキストファイルを作成するにはどうすればよいでしょうか? set fso = createobject("Scripting.FileSystemObject") fso.createfolder("倉庫") set fo = fso.opentextfile(FILENAME) close.fo 相対的にファイルの場所を指定する方法がわかりません。 絶対パスでないとだめなのでしょうか?

  • csvファイルを読み込む方法について

    aspにてscvファイルを読み込む際、直接ファイル名を指定するとうまくいくのですが、ファイル名を変数で指定しようとすると、「ファイルが見つかりません」というエラーになってしまいます。どのように記述すれば良いでしょうか。お教えください。よろしくお願いいたします。 (例) 'OK Set objFS = CreateObject("Scripting.FileSystemObject") Set objText = objFS.OpenTextFile(Server.MapPath("aaa.csv"),1) 'NG fname = "aaa.csv" Set objFS = CreateObject("Scripting.FileSystemObject") Set objText = objFS.OpenTextFile(Server.MapPath(fname),1) また、 Set objText = objFS.OpenTextFile(Server.MapPath("""" & fname & """"),1) としてもダメでした。以上です。

  • VB6.0 CreateObject以外のファイルI/O

    以前CreateObject("Scripting.FileSystemObject")を使用してファイルを読込む方法、一行ずつ書込む方法を教えていただいたのですが。 環境によってはウイルスチェックに引っかかってしまうようで、別な手段を取らなければならなくなりました。 読込み: Set objFso = CreateObject("Scripting.FileSystemObject") Set objTxtSt = objFso.OpenTextFile(strFilePass, 1) strData = CStr(objTxtSt.ReadAll()) 書込み: Set objFso = CreateObject("Scripting.FileSystemObject") Set objTxtSt = objFso.OpenTextFile(strFilePass, 2, False) Call objTxtSt.WriteLine(strData) 現在の処理は以上です。 上記と同じ処理をCreateObjectを使用せずに作成するにはどのようにすればよろしいでしょうか。

  • ファイル内容書き換えでエラーが発生

    webサーバのosがWin2000IISで正常に動作しているASPがあるのですが、このほど、webサーバをXPで構築したところ、エラーとなります。Win2000とXPの違いなのか、わからないのですが、私がWin2000のころに設定したことをし忘れているためXPでエラーになっているのかもわかりません。下記記述でエラーとなります。(当然、c:\wwwcnt\cnt_mem.txtは存在します) Microsoft VBScript 実行時エラー (0x800A0046) 書き込みできません。 po001.asp, line 7 よろしくお願いいたします。 <% set fso = server.createobject("scripting.filesystemobject") set tso = fso.opentextfile("c:\wwwcnt\cnt_mem.txt",1,false) c_mem = tso.readline c_mem = c_mem + 1 tso.close set tso = fso.opentextfile("c:\wwwcnt\cnt_mem.txt",2,true) tso.writeline c_mem tso.close %>

  • テキストファイルの更新?

    ASP初心者です。 テキストファイルを出力したいのですが下記のエラーがでます。ファイルのインターネットユーザーはアクセス可能にしています。 Microsoft VBScript 実行時エラー (0x800A0046) 書き込みできません。 ソースは下記です。 Set Fs = Server.CreateObject("Scripting.FileSystemObject") Set Stream = Fs.OpenTextFile("topnews.html",2,true) Stream.WriteLine "<html>"        ・        ・ 原因として何が考えられますか?お教え願います。

  • FileSystemObject Win2008Server

    FileSystemObject Win2008Server 今までのWin2003ServerをWindows2008サーバーに更新しました。 Accessデータベース関係は今まで通り処理出来るのですが FileSystemObjectを使ったTextファイルからの読み込みや加工が 出来なくなりました。 VBScriptで社内DBを稼働させています。 サーバーや設定の事はあまり詳しくないのですが 何をチェックすればいいのか、ご指導お願いします。 (1)これはエラーになりません Set connectObj = Server.CreateObject("ADODB.Connection") ConnectObj.Open "xxx" 以下Accessの読み書き (2)この実行でエラーになります。 Set fso = Server.CreateObject("Scripting.FileSystemObject") set tso = fso.OpenTextFile(fp,1) この実行でエラーになります。 以下テキストファイルの処理 お手数ですが宜しくお願いします。

  • エクセルマクロ(vba)のFSO.OpenTextFileを利用したファイルへの追記について

    FSOを利用して、特定のファイルがなければ、FSO.CreateTextFileを使ってファイルを作成して、ログを記入します。 特定のファイルがあれば、FSO.OpenTextFileを使って追記します。 ファイルが存在しないので新規でファイル作成を行ってからログを記入するのははうまくいくのですが、ファイルが存在するので、ファイルを開いて追記する場合ががうまくできません。 何が原因なのでしょうか? 以下がそのプログラムです。 アドバイスをよろしくお願いします。 Dim excel_folder excel_folder = ThisWorkbook.Path excel_folder = excel_folder & "\log.txt" Set objShell = CreateObject("Wscript.Shell") Dim FSO Set FSO = CreateObject("Scripting.FileSystemObject") Dim stream, data_text If FSO.fileexists(excel_folder) Then Set stream = FSO.OpenTextFile(Filename:=excel_folder, IOMode:=ForAppending, Create:=True) Else: Set stream = FSO.CreateTextFile(Filename:=excel_folder, Overwrite:=True) End If data_text = "test" stream.writeLine (data_text) stream.writeLine (vbCrLf) stream.Close

  • テキストファイルに一行文字を追加したい

    バッチ処理でテキストファイルの最後に文字列を追加する作業をやりたいのです。 普通の文字列ですと、1)のようにして上手くいきます。 ところが「"」の入った文字列を一行加えようと2)のようにすると、エラーになってしまいます。どうしたら前に進めるでしょうか? --------- 1)上手くいくケース ----------- Set fso = CreateObject("Scripting.FileSystemObject") Set tmpFile = fso.GetFile("C:\test\hoge.txt") Set f = tmpFile.OpenAsTextStream(8, -2) f.Write("一行追加しました") f.close Set f = Nothing Set tmpFile = Nothing Set fso = Nothing --------- 2)上手くいかないケース ----------- Set fso = CreateObject("Scripting.FileSystemObject") Set tmpFile = fso.GetFile("C:\test\hoge.txt") Set f = tmpFile.OpenAsTextStream(8, -2) f.Write("一行"追加"しました") f.close Set f = Nothing Set tmpFile = Nothing Set fso = Nothing

  • ASPでテキストファイルにデータを出力

    フォーム20020128.aspの入力内容をpostメソッドで20020128_result.aspに送り、記録用テキストファイル20020128_kiroku.txtに書き込むASPスクリプトを作成しましたが、IE6.0ステータス行に『ページ/asp/20020128_result.aspを開いてます。』というメッセージがプログレスバーとともに表示され、地球アイコンが回り続けます。 動作テスト時のIISおよび、当該ディレクトリ、ファイルの権限は全てチェックをつけてあります。定数の実数表記、仮想から物理ディレクトリへの変更、PostからGetへの変更等色々トライし、状況は変わらずです。 記録用テキストファイルは更新日時が作成日時のままなので追記は行われてません 動作テストは、Win2000サーバー(IIS Ver.5, ASP Ver.3)とプロフェッショナルとで実施、パス指定に間違いがないか、.FileExists等で確認をしました。 問題解決方法等につき諸先輩方のアドバイスを乞う次第です。 どうぞよろしくお願いいたします。 【仮想ディレクトリ】 /asp ├20020128.asp ├20020128_result.asp └20020128_kiroku.txt 【20020128.asp】 <form method="post" action="20020128_result.asp"> お名前:<input type="text" name="namae"><br> ご住所:<input type="text" name="jusho"><br> お電話:<input type="text" name="denwa"><br> <input type="submit" value="送信"> <input type="reset" value="取消"> </form> 【20020128_result.asp】 <% Set objFs = Server.CreateObject("Scripting.FileSystemObject") Set objTs = objFs.OpenTextFile(Server.MapPath("/asp/20020128_kiroku.txt"), ForAppending)  objTs.Write Request.Form("namae") & ","  objTs.Write Request.Form("jusho") & ","  objTs.WriteLine Request.Form("denwa")  objTs.Close %>

専門家に質問してみよう