从csv文件中分配变量

时间:2013-02-20 21:15:33

标签: vbscript

我有一个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

由于 帕特里克斯托达德

2 个答案:

答案 0 :(得分: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 firmSelectChange(value)
    dataArr = objFirmDict.Item(value)
    code = dataArr(0)
    server = dataArr(1)
End Sub

答案 1 :(得分:0)

您可以使用TDC(Tabular Data Control)。

<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>

输出结果:

screenshot