Vbscript 如何使用hta中包含的换行符文件进行格式化

Vbscript 如何使用hta中包含的换行符文件进行格式化,vbscript,hta,Vbscript,Hta,当我用当前脚本加载一些csv文件时。Textarea的格式与csv格式不同: 1.csv: text1 text2 现在1.csv输出: text1 text2 text1 text2 预期1.csv输出: text1 text2 text1 text2 事实上,textarea无法为我创建新行,原因不明 剧本: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtm

当我用当前脚本加载一些csv文件时。Textarea的格式与csv格式不同:

1.csv:

text1
text2
现在1.csv输出:

text1 text2
text1
text2
预期1.csv输出:

text1 text2
text1
text2
事实上,textarea无法为我创建新行,原因不明

剧本:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <hta:application
     applicationname="MyHTA"    
     border="thick"
     borderstyle="normal"
     caption="My HTML Application"
     contextmenu="no"
     icon="myicon.ico"
     maximizebutton="no"
     minimizebutton="yes"
     navigable="no"
     scroll="yes"
     selection="no"
     showintaskbar="yes"
     singleinstance="yes"
     sysmenu="yes"
     version="1.0"
     windowstate="normal"
 >
 <script language="vbscript">  

Sub RunCommonDialog  
  Set objDialog = CreateObject("UserAccounts.CommonDialog")  
  objDialog.Filter = "CSV Files (*.csv)|*.csv|All Files|*.*" 
  objDialog.InitialDir = "C:\Documents and Settings\All Users\Desktop" 
  intResult = objDialog.ShowOpen  
  If intResult = 0 Then  
    Exit Sub  
  Else  
    CommonDialog.value = objDialog.FileName  
    CommonDialog_Span.innerHTML = objDialog.FileName  
    Const ForReading = 1
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTextFile = objFSO.OpenTextFile(objDialog.FileName, ForReading)
    contents = objTextFile.ReadAll
    objTextFile.Close
    Set objFSO = Nothing
    Set objReadFile = Nothing
    PRE.innerHTML = contents
  End If  
End Sub  
 Sub reloadHTA()
 location.reload True
End Sub

</script>
<body> 
<input type="hidden" id="CommonDialog"><input type="button" onclick="RunCommonDialog" value="Browse..."><input class = "StdBtt Meta" type = "BUTTON" value = "Reset" onclick = "reloadHTA"><br>
<p>File: <span id="CommonDialog_Span"></span></p>
<textarea rows="4" cols="88" name="PRE" readonly="readonly">
</textarea> 
</body> 

子运行公共对话框
Set objDialog=CreateObject(“UserAccounts.CommonDialog”)
objDialog.Filter=“CSV文件(*.CSV)|*.CSV |所有文件|*.*”
objDialog.InitialDir=“C:\Documents and Settings\All Users\Desktop”
intResult=objDialog.ShowOpen
如果intResult=0,则
出口接头
其他的
CommonDialog.value=objDialog.FileName
CommonDialog_Span.innerHTML=objDialog.FileName
常数ForReading=1
设置objFSO=CreateObject(“Scripting.FileSystemObject”)
设置objTextFile=objFSO.OpenTextFile(objDialog.FileName,ForReading)
contents=objTextFile.ReadAll
objTextFile.Close
设置objFSO=Nothing
Set objReadFile=Nothing
PRE.innerHTML=内容
如果结束
端接头
子重新加载hta()
location.reload True
端接头

文件:


如果您使用的.hta将重点放在您的问题上-例如

<html>
 <head>
  <hta:application id="t"></hta>
  <title>t</title>
  <script language="vbscript">
   Sub ol()
     MsgBox "ol"
     a = Array("line1", "line2")
     document.all.ta1.value = Join(a, vbCrLf)
     document.all.ta2.innerHTML = Join(a, vbCrLf)
   End Sub
  </script>
 </head>
 <body onload="ol">
  <textarea id="ta1" rows="4" cols="88"></textarea>
  <textarea id="ta2" rows="4" cols="88"></textarea>
 </body>
</html>

T
副总理()
MsgBox“ol”
a=数组(“第1行”、“第2行”)
document.all.ta1.value=连接(a,vbCrLf)
document.all.ta2.innerHTML=Join(a,vbCrLf)
端接头
您一眼就会发现问题是由使用
.innerHTML
而不是
.value
引起的

(顺便说一句:你应该在你的.html上使用一个验证器(tidy,…)

更新:

证据:


很好的示例Ekkehard,但这仅适用于数组,当我尝试从文件加载ReadAll时,会收到错误消息,如:键入mismatch'Join'@KalinBorisov-如果您不尝试将Join()应用于.ReadAll()的结果,而是立即将其分配给.value,您将看到它“起作用”。是的,我试着什么也不做happen@KalinBorisov-我添加了一个屏幕截图,作为将.ReadAll()的结果分配给.value“有效”的证据。我希望这能帮助您找出导致脚本失败的原因-如果不是,请发布最少的代码来重现问题。非常感谢@Ekkehard.Horner,现在我了解了您的观点非常有用的示例。