2011-12-23 40 views
0

下面喜是图表数据进行数据采样这是我从URL 在这个如何来标记图表数据的csv文件在传统的ASP

 
ARRAY ' ' 3 8 
Y 
25 75 100 125 150 175 200 225 
'A' 3 8 6 7 5 3 2 7 
'B' 1 9 7 8 4 7 2 5 
'C' 8 7 3 6 56 9 111 8 

现在读我想这个数据保存到一个CSV文件,如下

 
Time A B c 
25  3 1 8 
75  8 9 7 
100  6 7 3 
125  7 8 9 
150  5 4 56 
175  3 7 9 
200  2 2 111 
225  7 5 8 

事实上,我必须先读出的数据转换成一个阵列,其中每个元素将包含所述数据文件的一行,现在,我将具有由空间向每个元件分割,并将其存储在一个二维阵列,现在对于每个阵列的每个第i个索引,我必须创建一个彗星分隔线,然后在行尾加“\ n”,最后保存是到一个csv文件。

我不太了解VB脚本和经典ASP的语法,这就是为什么我面临这个问题。请帮我

回答

1

为了让你开始:

Sub doReOrder(sFSpecI, sFSpecO, sCol1) 
    Dim oTS : Set oTS = goFS.OpenTextFile(sFSpecI) 
    Dim sData : sData = oTS.ReadLine() ' ARRAY ' ' 3 8 
    Dim aParts : aParts = Split(sData, " ") 
    Dim nCols : nCols = CByte(aParts(3)) ' Count vs UBound vs Data! 
    Dim nRows : nRows = CByte(aParts(4)) 
    Dim nRows2 : nRows2 = nRows + 1 
    oTS.SkipLine ' Y 
    ' get table in one string, prepend col1 name, clean ' 
    sData = "'" & sCol1 & "' " & Replace(oTS.ReadAll(), vbCrLf, " ") 
    sData = Trim(Replace(sData, "'", """")) 
    ' get table in flat array 
    aParts = Split(sData, " ") 
    oTS.Close 
    Set oTS = goFS.CreateTextFile(sFSpecO, True) 
' WScript.Echo Join(aParts, "|") 
    ReDim aData(nCols) ' hold one (new) row to prep for Join 
    Dim nRow 
    For nRow = 0 To nRows 
     Dim nCol 
     For nCol = 0 To nCols 
      ' magic column hopping 
      aData(nCol) = aParts(nRow + nCol * nRows2) 
     Next 
     oTS.WriteLine Join(aData, ",") 
    Next 
    oTS.Close 
End Sub 

测试:

Dim sFSpecI : sFSpecI = "..\Data\f1.txt" 
    Dim sFSpecO : sFSpecO = "..\Data\f1.csv" 
    Dim sCol1 : sCol1 = "Time" ' dangerous - possibly reserved in SQL 
    WScript.Echo goFS.OpenTextFile(sFSpecI).ReadAll() 
    doReOrder sFSpecI, sFSpecO, sCol1 
    WScript.Echo goFS.OpenTextFile(sFSpecO).ReadAll() 

输出:

ARRAY ' ' 3 8 
Y 
25 75 100 125 150 175 200 225 
'A' 3 8 6 7 5 3 2 7 
'B' 1 9 7 8 4 7 2 5 
'C' 8 7 3 6 56 9 111 8 

"Time","A","B","C" 
25,3,1,8 
75,8,9,7 
100,6,7,3 
125,7,8,6 
150,5,4,56 
175,3,7,9 
200,2,2,111 
225,7,5,8