0

我有一个 csv 文件(示例)

Firm,Code,Server
Adsuar,BZ,RKASP01
Ahlers,AU,RKASP02
Andrews,CW,RKASP02
Armbrecht,AS,RKASP02
Barron,ZZ,RKASP01
Beckman,BI,RKASP02

我试图在 vbscript 中找到一种方法,在我的网站上有一个列出 A 列值的选择框,然后在同一行中用 B 列和 C 列的内容填充两个变量。

我有读取 csv 文件所需的东西,并且可以遍历文件并回显所有内容,但是我在寻找从这里去哪里时遇到了一些麻烦。任何关于我可以从哪里开始的建议将不胜感激。

我目前拥有的代码是

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("\\rkaspctl01\n$\wwwroot\dev\clients.csv", 1)

do while not (objTextFile.AtEndOfStream)
  arrStr = Split(objTextFile.ReadLine, ",")
  strFirm = arrStr(0)
  strCode = arrStr(1)
  strServer = arrStr(2)
Loop

objTextFile.close

谢谢帕特里克·斯托达德

4

2 回答 2

0

您可以使用 TDC(表格数据控件)。

<HTML>
<HEAD>
<TITLE>TDC Example</TITLE>

<OBJECT ID="dataTDC" CLASSID="CLSID:333C7BC4-460F-11D0-BC04-0080C7055A83">
  <PARAM NAME="TextQualifier" VALUE="">
  <PARAM NAME="FieldDelim" VALUE=",">
  <PARAM NAME="DataURL" VALUE="data.csv">
  <PARAM NAME="UseHeader" VALUE="true">
</OBJECT>

</HEAD>
<BODY>

<TABLE DATASRC="#dataTDC" BORDER="1" CELLSPACING="0">
  <THEAD>
    <TR>
      <TD><B>Firm</B></TD>
      <TD><B>Code</B></TD>
      <TD><B>Server</B></TD>
    </TR>
  </THEAD>
  <TR>
    <TD><SPAN DATAFLD="Firm"></SPAN></TD>
    <TD><SPAN DATAFLD="Code"></SPAN></TD>
    <TD><SPAN DATAFLD="Server"></SPAN></TD>
  </TR>
</TABLE>

</BODY>
</HTML>

输出结果:

截屏

于 2013-02-21T10:05:31.360 回答
0

开始将数据放入键/值对(字典)中,其中键是 A 列的值,值是包含 B 列和 C 列值的数组:

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("\\rkaspctl01\n$\wwwroot\dev\clients.csv", 1)
Set objFirmDict = CreateObject("Scripting.Dictionary")

do while not (objTextFile.AtEndOfStream)
  arrStr = Split(objTextFile.ReadLine, ",")
  objFirmDict.Add arrStr(0), array(arrStr(1), arrStr(2))
Loop

objTextFile.close

现在您可以使用字典中的键填充您的列表框。
伪代码:

firmListbox = document.getElementById("firmSelect")
For each firm in objFirmDict.Keys
    Set newOption = document.createElement("option")
    newOption.text = firm
    newOption.value = firm
    firmListbox.Add newOption, Nothing
Next

选择一个选项后,使用正确的文本更新这两个变量。

在您的网页上:

<input type="select" id="firmSelect" onchange="vbscript:firmSelectChange me.Value">

onchange 事件调用firmSelectChange sub。这必须从字典中检索两个变量。请注意:字典必须具有文档的全局范围。

此处理子的伪代码:

Sub firmSelectChange(value)
    dataArr = objFirmDict.Item(value)
    code = dataArr(0)
    server = dataArr(1)
End Sub
于 2013-02-21T09:38:57.050 回答