2014-02-25 56 views
0

我有一個csv文件被導入MaxMSP並通過javascript對象發送。以下操作發生: 1)標題行從文件中刪除 2)在數組中轉換的csv文件 3)數組中的元素在浮點數中轉換(日期也一樣) 4)索引號放在每個行(因爲MaxMSP中的coll對象需要索引號) 我缺少的是csv文件是反歷史的。我需要按時間順序獲取數據。最合理的方法是逐行逐行讀取文件(刪除標題後)。鏈接到appcsvfile 您可以雙擊js對象來查看代碼。在熱點上放置csv文件後,您可以雙擊coll對象以查看內容。反轉csv文件

這裏去代碼:

function import(filename) 
{ 
    var f = new File(filename); 
    if (f.open) { 
     var i = 0; 
     outlet(0, "clear"); 
     f.readline(); 


     while (f.position < f.eof) 
     { 
      var str = f.readline(); 


      var a = str.split(","); // convert strings to array (elements are delimited by a coma) 
      // a[5] /= 1000; // uncomment to divide the 6th column by 1000  


      var date = Date.parse(a[0]); 
      var date = parseFloat(date); 
      var open = parseFloat(a[1]); 
      var high = parseFloat(a[2]); 
      var low = parseFloat(a[3]); 
      var close = parseFloat(a[4]); 
      var volume = parseFloat(a[5]); 
      var adjusted_close = parseFloat(a[6]); 


     outlet(0, i++, date,open,high,low,close,volume,adjusted_close); // store in the coll   
     } 
     f.close(); 
    } else { 
     error("couldn't find the file ("+ filename +")\n"); 
    } 
} 
+0

只是.reverse()你已經擁有的陣列。 – dandavis

+0

請複製此處格式化的代碼。外部鏈接很快就會死亡,並不是每個人都喜歡(或者被允許在工作場所)下載文件。 –

回答

0

下面是做到這一點的一種方法:

function import(filename) 
{ 
    var f = new File(filename); 
    var csv = []; 

    if (f.open) { 
     var str = f.readline(); //Skips first line. 
     while (f.position < f.eof) { 
      var str = f.readline(); 
      csv.push(str); 
     } 
     f.close(); 
    } else { 
     error("couldn't find the file ("+ filename +")\n"); 
    } 

    //Now you may do whatever you want with each line in the array 
    for (var i=(csv.length-1); i>=0; i--) { 
     alert(csv[i]); 
     //Yes, now you may parse contents of each line in the csv file 
    } 
+0

也許我應該停止今天,但我想完成它。我不應該把一個VAR我= 0;在索引號碼開頭的後面呢?每個條件(csv中的var行)是否正確?你從哪裏得到可變的生產線?你說解析它,我只需要把所有的parseFloat命令是正確的? –

+0

我將其更改爲您的預期格式。回想起來,使用for..in並不是一個好主意。是的,在循環內部,你可以通過parseFloat或csv文件中的任何內容。 – gat

+0

我想我快到了。我收到一條警告沒有定義的錯誤。我應該如何解決這個問題? –