gpt4 book ai didi

vbscript - 编辑文本并保存

转载 作者:行者123 更新时间:2023-12-02 01:38:59 25 4
gpt4 key购买 nike

我在hta中做一个脚本,需要他具备以下功能:

它具有以下功能:

  1. 如果文件 .txt 不存在,则不要打开脚本。
  2. 删除输入框并仍然能够保存更改。
  3. 如果用户尝试保存空文本,则会出现错误。
  4. 如果用户进行了有效修改(非空),则显示一条消息声明已保存。

代码:

 <HTML>
<head><title>Name</Title>
<HTA:Application
Border= "thin"
Application="/md/input"
Scoll="NO"
Singleinstance="Yes"
Icon="01.ico">
ShowInTaskbar="Yes"
Caption="Yes">
</Head>
<Script Language="VBSCRIPT" Type = "text/vbscript">
Sub Window_Onload
Window.resizeTo 400,500
End Sub
Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8
Set fSo1 = CreateObject("Scripting.FileSystemObject")
wkDir = "test.txt"
'----------------------------------------------------------
sub Window_onLoad()
Window.resizeTo 400,500
set oFSO=CreateObject("Scripting.FileSystemObject")
set oFile=oFSO.OpenTextFile("Test.txt",1)
text=oFile.ReadAll
document.all.DataArea.value=text
oFile.Close
end sub
'----------------------------------------------------------
FUNCTION SaveFile(FileName, DataArea)
CALL FileStat(FileName, msg)
on error resume next
sFile = wkDir & FileName.value
Set wrFile = fSo1.OpenTextFile(sFile, ForWriting)
wrFile.writeline(DataArea.value)
self.close
END FUNCTION
'----------------------------------------------------------
FUNCTION CloseFile(FileName, DataArea)
Call FileStat(FileName, msg)
on error resume next
cFile = wkDir & FileName.value
Set wrFile = fSo1.OpenTextFile(cFile, ForAppending)
wrFile.Close
DataArea.value = ""
FileName.Value = ""
END FUNCTION
'----------------------------------------------------------
FUNCTION QuitEdit
self.close
END FUNCTION
'----------------------------------------------------------
FUNCTION FileStat(FileName, msg)
eFile = wkDir & FileName
IF (fSo1.FileExists(eFile)) THEN
msg = oFile & " exists."
ELSE
on error resume next
END IF
END FUNCTION
'----------------------------------------------------------
</Script>
<body bgcolor="C0C0C0">
<Table>
<Th> Name </Th>
<TR><td><input type="text" name="FileName"></td></TR>
</Table>
<Table border="2">
<TR><td>
<textarea name="DataArea" rows="18" cols=37></textarea>
</td></TR>
<TR><td>
<input type="BUTTON" value="Save" onclick="SaveFile FileName, DataArea">
<input type="BUTTON" value="Cancel" onclick="QuitEdit">
</td></TR>
</Table>
</body>
</html>

最佳答案

90%的问题都是写的代码引起的。因此,获得好脚本的简单方法是摆脱该代码。 4% 的 VBScript 问题是由没有以“Option Explicit”开头引起的。所以让我们补充一下。 4% 的 VBScript 问题是通过“On Error Resume Next”隐藏错误造成的。永远不要在全局范围内使用它,并且永远不要在它之后最多两行没有检查。

删除 (a) 与编辑文件无关的所有内容(图标、其他不相关的 HTA 属性、调整大小、重复(wkDir、“test.txt”)、看起来像是按小时付费的程序员编写的内容(调用语句、没有返回的函数、使用一次的变量)和 (b) - 目前 - 必须 编写的代码解决“编辑文件”问题,我们得到:

<html>
<head>
<title>Edit File Demo</title>
<hta:application
id="demo"
></hta>
<script type="text/vbscript">

Option Explicit

Sub Window_OnLoad()
End Sub

Sub SaveFile()
End Sub

</script>
</head>
<body>
<form>
<textarea name="DataArea" rows="18" cols=37></textarea>
<input type="BUTTON" value="Save" onclick="SaveFile">
</form>
</body>
</html>

没有所有的脂肪,将脚本放入头部并将小部件放入表单中是很自然的。

现在是所需的代码:我们需要一个文件规范(比名字更好)和一个/唯一的 FileSystemObject(永远不会被命名为 ofs1);如果文件存在,应该加载到文本区域;应保存文本区域的内容。所以新的 VBScript 部分是:

Option Explicit

Const csFSpec = "E:\trials\SoTrials\answers\8841045\hta\29505115.txt"
Dim goFS : Set goFS = CreateObject("Scripting.FileSystemObject")

Sub Window_OnLoad()
If goFS.FileExists(csFSpec) Then
document.all.DataArea.value = goFS.OpenTextFile(csFSpec).ReadAll()
Else
document.all.DataArea.value = csFSpec & " created"
End If
End Sub

Sub SaveFile()
goFS.CreateTextFile(csFSpec).Write document.all.DataArea.value
End Sub

关于vbscript - 编辑文本并保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29505115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com