Javascript,strip / ignore CSV文件的最后一行

时间:2013-07-04 09:00:09

标签: javascript csv ftp

我的CSV文件如下所示:

Dato,11/2012,12/2012,01/2013,02/2013,03/2013,04/2013,05/2013,06/2013,07/2013
Freespace,4942,4729,4930,4889,4777,4799,4302,4567,4600
Allokeret,6784,7272,7079,7112,7232,7210,7707,7441,7408

上面你看不到的是这些3下面有一个空白(空)行。

上面的文件是在大型机上创建的,我已经确认那里没有控制字符,这可能会导致出现额外的空白行,通过下面的十六进制字符进行演示:

Dato,11/2012,12/2012,01/2013,02/2013,03/2013,04/2013,05/2013,06/2013,07/2013    
C8A96FF6FFFF6FF6FFFF6FF6FFFF6FF6FFFF6FF6FFFF6FF6FFFF6FF6FFFF6FF6FFFF6FF6FFFF    
4136B1112012B1212012B0112013B0212013B0312013B0412013B0512013B0612013B0712013    
Freespace,4942,4729,4930,4889,4777,4799,4302,4567,4600                          
C988A98886FFFF6FFFF6FFFF6FFFF6FFFF6FFFF6FFFF6FFFF6FFFF                          
695527135B4942B4729B4930B4889B4777B4799B4302B4567B4600                          
Allokeret,6784,7272,7079,7112,7232,7210,7707,7441,7408                          
C9999898A6FFFF6FFFF6FFFF6FFFF6FFFF6FFFF6FFFF6FFFF6FFFF                          
133625953B6784B7272B7079B7112B7232B7210B7707B7441B7408                          

我怀疑当我将文件FTP到本地网络上的服务器时会发生一些事情,导致出现额外的空行。

我使用的javascript:

    $.get("../classic_3270/KMDprod1/INFO.CPU.REPORT.MFDISK" + kunde + ".txt", function (data) {
        var lines = data.split('\n');
        $.each(lines, function(lineNo, line) {
            var items = line.split(',');
            if (lineNo == 0) {
                $.each(items, function(itemNo, item) {
                    if (itemNo > 0) graph.xAxis.categories.push(item);
                })
                ;
            }

(此代码将从CSV文件中提取数据,并将其推送到图形软件)

有没有办法可以修改上面的内容,以便忽略最后一行,这是空的?

我必须诚实并且承认我不是javascript的专家,谷歌这次也无法帮助我。

我希望我已经提供了足够的信息。提前谢谢。

2 个答案:

答案 0 :(得分:1)

尝试过滤这些行:

var lines = $.grep(data.split('\n'), Boolean);

这也会删除所有空行,而不仅仅是最后一行。

但如果你知道你的最后一行是空的,为什么不去寻找像data.split('\n').slice(0, -1)这样简单的东西?

答案 1 :(得分:1)

$.get("../classic_3270/KMDprod1/INFO.CPU.REPORT.MFDISK" + kunde + ".txt", function (data) {
        var lines = data.replace(/^\s+|\s+$/g,"").split('\n');
        $.each(lines, function(lineNo, line) {
            var items = line.split(',');
            if (lineNo == 0) {
                $.each(items, function(itemNo, item) {
                    if (itemNo > 0) graph.xAxis.categories.push(item);
                })
                ;
            }
  ...

我取出了trim()并使用regexp进行ie8 compat ...