0

我有一个如下所示的 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 方面的专家,而且这次谷歌也没能帮助我。

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

4

2 回答 2

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() 并为 ie8 compat 使用了正则表达式...

于 2013-07-04T09:08:56.697 回答
1

尝试过滤行:

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

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

但是,如果您知道最后一行是空的,为什么不选择更简单的东西data.split('\n').slice(0, -1)呢?

于 2013-07-04T09:04:27.580 回答