在我的代码中,我想以表格形式查看CSV中的所有数据,但它只显示最后一行.第1行和第2行怎么样?这是数据:
1,HF6,08-Oct-08,34:22:13,df,jhj,fh,fh,ffgh,gh,g,rt,ffgsaf,asdf,dd,yoawa,DWP,tester,Pattern 2,hf35,08-Oct-08,34:12:13,dg,jh,fh,fgh,fgh,gh,gfh,re,fsaf,asdf,dd,yokogawa,DWP,DWP,Pattern 3,hf35,08-Oct-08,31:22:03,dg,jh,fh,fgh,gh,gh,gh,rte,ffgsaf,asdf,dfffd,yokogawa,DWP,DWP,ghh
这是代码:
#! /usr/bin/perl print "Content-type:text/html\r\n\r\n"; use CGI qw(:standard); use strict; use warnings; my $line; my $file; my ($f1,$f2,$f3,$f4,$f5,$f6,$f7,$f8,$f9,$f10,$f11,$f12,$f13,$f14,$f15,$f16,$f17,$f18,$f19); $file='MyFile.txt'; open(F,$file)||die("Could not open $file"); while ($line=) { ($f1,$f2,$f3,$f4,$f5,$f6,$f7,$f8,$f9,$f10,$f11,$f12,$f13,$f14,$f15,$f16,$f17,$f18,$f19)= split ',',$line; } close(F); print ""; print ""; print ""; print " FUSION SHIFT REPORT "; print ""; print ""; print "
"; print ""; print "";"; print " "; print "RECORD No. "; print "TESTER No. "; print "DATE "; print "TIME "; print "DEVICE NAME "; print "TEST PROGRAM "; print "DEVICE FAMILY "; print "SMSLOT "; print "DIE LOT "; print "LOADBOARD "; print "TESTER "; print "SERIAL NUMBER "; print "TESTER CONFIG "; print "SMSLOT "; print "PACKAGE "; print "SOCKET "; print "ROOT CAUSE 1 "; print "ROOT CAUSE 2 "; print "ROOT CAUSE 3 "; print ""; print " "; print "$f1 "; print "$f2 "; print "$f3 "; print "$f4 "; print "$f5 "; print "$f6 "; print "$f7 "; print "$f8 "; print "$f9 "; print "$f10 "; print "$f11 "; print "$f12 "; print "$f13 "; print "$f14 "; print "$f15 "; print "$f16 "; print "$f17 "; print "$f18 "; print "$f19 "; print "
Paul Dixon.. 14
您需要在里面输出表行在while循环,因为这是您读取行的位置.
所以改变代码吧
输出表头
逐行读取文件输出表行
输出表格页脚
如果稍微简化一下,这就是你的循环看起来如何......
while ($line=) { print " "; my @cells= split ',',$line; foreach my $cell (@cells) { print " "; }$cell "; } print "
小智.. 7
HTML :: Template会让您的生活更轻松.这是我的缩减模板.
#!/usr/local/bin/perl use strict; use warnings; use HTML::Template; my @table; while (my $line = ){ chomp $line; my @row = map{{cell => $_}} split(/,/, $line); push @table, {row => \@row}; } my $tmpl = HTML::Template->new(scalarref => \get_tmpl()); $tmpl->param(table => \@table); print $tmpl->output; sub get_tmpl{ return <TMPL } __DATA__ 1,HF6,08-Oct-08,34:22:13,df,jhj,fh,fh,ffgh,gh,g,rt,ffgsaf,asdf,dd,yoawa,DWP,tester,Pattern 2,hf35,08-Oct-08,34:12:13,dg,jh,fh,fgh,fgh,gh,gfh,re,fsaf,asdf,dd,yokogawa,DWP,DWP,Pattern 3,hf35,08-Oct-08,31:22:03,dg,jh,fh,fgh,gh,gh,gh,rte,ffgsaf,asdf,dfffd,yokogawa,DWP,DWP,ghh
AmbroseChape.. 6
$f1,$f2,$f3,$f4任何时候你都会看到类似闹钟的代码应该消失.使用数组.
1> Paul Dixon..:您需要在里面输出表行在while循环,因为这是您读取行的位置.
所以改变代码吧
输出表头
逐行读取文件输出表行
输出表格页脚
如果稍微简化一下,这就是你的循环看起来如何......
while ($line=) { print " "; my @cells= split ',',$line; foreach my $cell (@cells) { print " "; }$cell "; } print "
2> 小智..:HTML :: Template会让您的生活更轻松.这是我的缩减模板.
#!/usr/local/bin/perl use strict; use warnings; use HTML::Template; my @table; while (my $line = ){ chomp $line; my @row = map{{cell => $_}} split(/,/, $line); push @table, {row => \@row}; } my $tmpl = HTML::Template->new(scalarref => \get_tmpl()); $tmpl->param(table => \@table); print $tmpl->output; sub get_tmpl{ return <TMPL } __DATA__ 1,HF6,08-Oct-08,34:22:13,df,jhj,fh,fh,ffgh,gh,g,rt,ffgsaf,asdf,dd,yoawa,DWP,tester,Pattern 2,hf35,08-Oct-08,34:12:13,dg,jh,fh,fgh,fgh,gh,gfh,re,fsaf,asdf,dd,yokogawa,DWP,DWP,Pattern 3,hf35,08-Oct-08,31:22:03,dg,jh,fh,fgh,gh,gh,gh,rte,ffgsaf,asdf,dfffd,yokogawa,DWP,DWP,ghh
3> AmbroseChape..:$f1,$f2,$f3,$f4任何时候你都会看到类似闹钟的代码应该消失.使用数组.
这应该是一个评论.它并不试图回答这个问题.
4> Greg Hewgill..:请允许我用一个较小的例子来演示.
my $f; while ($line =) { $f = $line; } print $f; 上面的代码将读取文件F的每一行,将每一行分配给变量
$f
.每次分配新行时,前一行都会被覆盖.当它到达文件末尾时,它会打印出$f
一次的值.my $f; while ($line =) { $f = $line; print $f; } 上面的代码
推荐阅读
如何解决《键入表示非空的字符串或F#中的空格》经验,为你挑选了1个好方法。 ... [详细] 如何解决《如何正确使用dataLayer.push()更新数组中嵌套对象的值?》经验,为你挑选了1个好方法。 ... [详细] 如何解决《无法使用bootstrap-sass与webpack一起工作》经验,为你挑选了1个好方法。 ... [详细] 如何解决《Django上的用户角色架构》经验,为你挑选了1个好方法。 ... [详细] 如何解决《使用MultibranchWorkflow清理构建》经验,为你挑选了2个好方法。 ... [详细] 如何解决《如何告诉Gradle始终使用--console=plain?》经验,为你挑选了0个好方法。 ... [详细] 如何解决《在C++11中使用shared_from_this()而不使用托管共享指针》经验,为你挑选了0个好方法。 ... [详细] 如何解决《在gitrebase期间找到分支名称》经验,为你挑选了0个好方法。 ... [详细] 如何解决《从C++std::vector中的线程中启动可运行对象》经验,为你挑选了1个好方法。 ... [详细] 如何解决《AndroidStudio更新破坏了我的模拟器》经验,为你挑选了3个好方法。 ... [详细] 如何解决《ScikitLearnMultilabel分类:ValueError:您似乎正在使用传统的多标签数据表示》经验,为你挑选了1个好方法。 ... [详细] 如何解决《无法在AsyncTask中访问"findViewById"》经验,为你挑选了1个好方法。 ... [详细] 如何解决《Haskell从文件中读取一个Map》经验,为你挑选了1个好方法。 ... [详细] 如何解决《Webpack手表没有在Windows上使用Webstorm?》经验,为你挑选了1个好方法。 ... [详细] 如何解决《KafkaProducer0.9性能问题与小消息》经验,为你挑选了1个好方法。 ... [详细] 如何解决《如何在GoogleMapsApiV2Android上组合,合并或加入圈子》经验,为你挑选了0个好方法。 ... [详细] 如何解决《从每个案例的创建时间开始计算开放案例的更有效方法》经验,为你挑选了1个好方法。 ... [详细] 如何解决《moment.js:如何获得短日期格式?》经验,为你挑选了0个好方法。 ... [详细] 吐了个 "CAO" !Tags | 热门标签RankList | 热门文章
- 1与Moq嘲笑代表
- 2如何访问视图insde菜单中的actionLayout
- 3我可以在子查询中使用"ORDER BY"子句吗?
- 4在Android 6.0上,Alarm Manager无法在后台运行
- 5建议C++容器保存前20个最小值
- 6mysql在group_concat中的计数项目
- 7如何检查Google API下的设备是否启用了位置服务
- 8在提交表单之前,根据下拉列表的值更改动态填充表单字段
- 9尝试呈现其视图不在窗口层次结构中的UIViewController
- 10Cmake不会工作 - 没有当前的工作目录
- 11变量顺序对sscanf有影响吗?
- 12Arduino Yun vs tessel vs espruino
- 13在悬停时旋转字体真棒图标
- 14在VBScript中调用exe
- 15无法在沙箱环境中加载iframe
- 16insmod错误:插入'./hello.ko': - 无效的模块格式"
- 17django conn_max_age和uwsgi
- 18将float(1.2)拆分为舍入数(1)和十进制(2)
- 19AJAX提交和500服务器错误
- 20wxPython:如何一键清除TextCtrl中的默认文本
DevBox开发工具箱 | 专业的在线开发工具网站 京公网安备 11010802040832号 | 京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有