2017-12-01 6 views
1

テキストエリア(ボックス)の値を.txtに書き込む必要があります。「input.txt」に書き込むときにアクセス権が拒否されています テキストボックスからinput.txtを書き込むときにアクセス権が拒否されました。私は下記の提案を使用して編集し、またプロセスエクスプローラを使用してinput.txtのハンドルを削除しました。VBScriptでテキストボックスを.txtに書き込むにはどうすればよいですか?

以下のコードを使用して、テキストボックスのテキストをテキストファイルinput.txtに保存できるようになりました。 バッチファイルを呼び出して、そのテキストを暗号化されたフォームに変更する方法もわかりました。そして、その変更されたテキストを最終出力結果として開くためのリフレッシュボタンを追加しました。 input.txtに保存された後に暗号化され、バッチファイルencrypter.batで暗号化された後、SR-Encrypted.txtファイルから2番目のテキストボックスに開かれたパスワード。追加された更新ボタンを使用してページをリフレッシュします。

ありがとうアグナール!

<html> 
    <script language="vbscript"> 
option explicit 
    Const ForWriting = 2 

    Dim objFSO, objFile, strFileName, objshell 
    strFileName = "input.txt" 
    Set objFSO = CreateObject("Scripting.FileSystemObject") 

Set objShell = CreateObject("WScript.Shell") 

Sub Submitarea 
    Set objFile = objFSO.OpenTextFile(strFileName, 2, True) 
    objfile.Write TextFile.Value 
    objFile.Close 
    MsgBox "Your text has been added to " & strFileName, 64, "Textarea Input" 
End Sub 
</script> 
</html> 
    </head> 
    <title>Example</title> 
    <script language="VBScript"> 
     Sub test 
    set oFSO=CreateObject("Scripting.FileSystemObject") 
    set oFile=oFSO.OpenTextFile("SR-Encrypted.txt",1) 
    text=oFile.ReadAll 
    document.all.ScriptArea.value=text 
    Set objFile = nothing 
    oFile.Close 
     End Sub 
    </script> 
    </head> 

    <script language="vbscript"> 
Option Explicit 

' This is the Sub that opens external files and reads in the contents. 
' In this way, you can have separate files for data and libraries of functions 
Sub Include(yourFile) 
    Dim oFSO, oFileBeingReadIn ' define Objects 
    Dim sFileContents   ' define Strings 

    Set oFSO = CreateObject("Scripting.FileSystemObject") 
    Set oFileBeingReadIn = oFSO.OpenTextFile("try.vbs", 1) 
    sFileContents = oFileBeingReadIn.ReadAll 
    oFileBeingReadIn.Close 
    ExecuteGlobal sFileContents 
End Sub 

' Here we call the Include Sub, then pass it the name of the file we want items from 
Include "mySubLib" 

</script> 
    <body> 
    <button onClick="test()">Refresh Message Encrypter-Decrypter</button> 
    </body> 
</html> 
    </head> 
</html> 
<body> 
    <h1>Write File</h1> 
    <p>How to Write to a File.</p> 

    <textarea name="TextFile" id="TextFile" rows="20" cols="50"></textarea> 

    <input type="button" value="Submit" onclick="Submitarea"> 

</body> 
    <body> 

    </body> 
</html> 
+0

SOを検索してください。検索ボックスに「VBScriptのファイルへの書き込み」と入力します。 https://stackoverflow.com/questions/34045891/how-to-create-text-file-and-write-to-it-in-vbscript – Sorceri

+0

@Scercerそれは手元の問題を解決しません。 OPはすでにファイルに書き出しますが、実際に書きたいデータは書き出しません。ファイルの扱いも改善の余地があります。 –

+0

@AnsgarWiechersの助けを借りて、ボックス内のテキストを "input.txt"に保存する必要があります。 input.txtが開いていなくても許可は拒否されます。 – Steed

答えて

1

「アクセス許可が拒否されました」というエラーは、ファイルが既に開かれている可能性が高いためです。ファイルを実際に書きたい場合にのみファイルを開き、書き込みが終わったらすぐにファイルを閉じます。また、テキスト領域の内容をファイルに書き込む場合は、文字列 "Txtarea"ではなく、テキスト領域の内容を実際に書き込む必要があります。

変更この:これに

Set objFile = objFSO.OpenTextFile(strFileName, 2, True) 
Set objShell = CreateObject("WScript.Shell") 

Sub Submitarea 
    sTxtarea = TextFile.Value 
    objfile.Write "Txtarea" & vbCrLf 
    MsgBox "Your text has been added to " & strFileName, 64, "Textarea Input" 
End Sub 

Set objShell = CreateObject("WScript.Shell") 

Sub Submitarea 
    Set objFile = objFSO.OpenTextFile(strFileName, 2, True) 
    objfile.Write TextFile.Value 
    objFile.Close 
    MsgBox "Your text has been added to " & strFileName, 64, "Textarea Input" 
End Sub 

、問題が消えます。

OpenTextFile()メソッドの2番目のパラメータを、出力ファイルに内容を置き換えるのではなく追加する場合は、2から8に変更します。

0

@ansgar wiechersの編集と提案がすべて正しいため、スクリプトが正しく機能していました。元の質問に対する正確な解決方法については、上記のコードを参照してください。 権限が拒否された原因は、input.txtのハンドルがオープンされたためです。プロセスツリーを使用して、ハンドルとファイルが正常に機能しなくなりました。 ansgar wiechersによって提出された提案は、別の別の問題であったコードを修正しましたが、元の質問を尊重した正しいコードと情報が投稿にあります。ありがとうございました。

関連する問題