【发布时间】:2015-08-25 07:10:53
【问题描述】:
我将此前端 CSS 数据存储在网页中。这是文本文件中的数据。
secid,Initial_shares
002826,3777
0028262,3777
0028262,3777
0028262,3777
0028262,3777
0028262,3777
我需要将此文本文件转换为以下格式。有一次,我将其转换为以下格式,我将能够在前端显示它。下面这个格式用于在jqgrid中显示数据。
var secid =
[
"002826", "0028262", "0028262", "0028262", "0028262", "0028262"];
var Initial_shares =
[
"3777", "3777", "3777", "3777", "3777", "3777"1
];
为了将文本转换为上述格式,我使用了以下 perl 代码。请注意。这种转换是静态的。即它知道有多少列。在这种情况下,将有 2 列。 secid 和 Initial_shares。所以这里是静态代码
my @a=();
my @b=();
my @a1=();
my @b1=();
my @perl_array=();
my @filena = split(/\|/, $filename);
open (TXT, "<$filename") || die "Can't open $filename: $!\n";
while (my $line=<TXT>) {
chomp($line);
($a2, $b2) = split /,/, $line;
push @a,('"', "$a2", '"', ',');
push @b,('"', "$b2", '"', ',');
}
splice @a,0,4; # this splice is used to remove the header name.
splice @b,0,4; # i.e. first row data- secid, Initial_shares
push @a1,"var secid=[@a]";
push @b1,"var Initial_shares=[@b]";
push @perl_array, "@a1; @b1";
close TXT;
@perl_array 将与我们一开始所期望的数据类型完全相似。我会将这个 perl 变量传输到前端进行显示。
在以下情况下我需要帮助。如果不是 2 列,而是 5 列怎么办。我们如何将相同的 csv 文件转换为前面提到的格式。它应该是动态的。有人能解释一下吗?
【问题讨论】:
-
您需要自己尝试提出解决方案,然后我们可以根据需要提出适当的建议和更正。
-
@MattJacob- 同意,但我希望就如何处理它获得一些帮助。主要问题是创建数组。如您所见,我必须为每一列创建数组。如果我有 2 列,我必须创建像 a、b 和 a1、b1 这样的数组,然后使用 push。动态创建数组是一个问题。另外,我如何将数据动态推送到动态数组。
-
@MattJacob-感谢您的方法。我会看看这些并相应地更新。