免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5442 | 回复: 11
打印 上一主题 下一主题

怎样将表数组中的数据写入到文件中 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-28 16:11 |只看该作者 |倒序浏览
通地函数:fetchrow_array将查询结果写入到一个数组中@ci_sz.
怎么将@ci_sz中的数据全部写入到一个文件里呢?
数组内容:
10791
12821
12901
11871
11891
11952
11971
12052
11383
10421
11402
11931


open(IN,">>sz_ci.log"||die "Can not write!";
print IN "@ci_sz\n";
close(IN);
我这样写了之后发现文件里只有一条记录:11931.应该怎么样全部写入文件.不能覆盖.

论坛徽章:
1
未羊
日期:2014-09-08 22:47:27
2 [报告]
发表于 2008-11-28 16:35 |只看该作者
  1. open IN,">",$yourfilename or die "Cannot create file!\n";
  2. foreach (@yourdata){
  3.     print IN "$_\n";
  4. }
  5. close IN;
复制代码

[ 本帖最后由 wxlfh 于 2008-11-28 16:38 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-11-28 16:36 |只看该作者
for(@ci_sz)
{
        print IN $_ ,"\n";
}

论坛徽章:
3
戌狗
日期:2014-09-10 17:07:162015年辞旧岁徽章
日期:2015-03-03 16:54:15wusuopu
日期:2016-06-17 17:43:45
4 [报告]
发表于 2008-11-28 16:36 |只看该作者
原帖由 HF.SKY000 于 2008-11-28 16:11 发表
通地函数:fetchrow_array将查询结果写入到一个数组中@ci_sz.
怎么将@ci_sz中的数据全部写入到一个文件里呢?
数组内容:
10791
12821
12901
11871
11891
11952
11971
12052
11383
10421
11402
1193 ...
  1. my @ci_sz = qw(
  2.         10791
  3.         12821
  4.         12901
  5.         11871
  6.         11891
  7.         11952
  8.         11971
  9.         12052
  10.         11383
  11.         10421
  12.         11402
  13.         11931
  14.         );


  15. open IN,">>sz_ci.log" || die "Can not write!";
  16. map { print IN $_, "\n"; } @ci_sz;
  17. close(IN);
复制代码

论坛徽章:
1
未羊
日期:2014-09-08 22:47:27
5 [报告]
发表于 2008-11-28 16:40 |只看该作者
楼上map用得好,呵呵

论坛徽章:
0
6 [报告]
发表于 2008-11-28 16:47 |只看该作者

回复 #3 hr_it 的帖子

&get_ci_sz();
sub get_ci_sz{
        my @ci_sz;
        my $sql_sz="select count(*) a,c.ci from unicom:hb_cm_cell a ,unicom:ne_bsc b ,unicom:ne_cell c where a.type1=b.china_name and c.city_id=b.city_id and c.ci=a.ci   and b.city_id='114' and c.n_confirm<>1 group by 2 having count(*)>1";
        $sth=$dbh->prepare($sql_sz);
        $sth->execute();
        while(my @row=$sth->fetchrow_array){
                @ci_sz=$row[1];
                open(IN,">sz_ci.log"||die "Can not write!";
                foreach(@ci_sz){
                                print IN "$_\n";
                }
                close(IN);
        }
        }
}

这样也不行,more sz_ci.log.也是一行

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
7 [报告]
发表于 2008-11-28 16:49 |只看该作者
LZ是别的地方搞错了,原来的方法是可以成功输入的。

论坛徽章:
0
8 [报告]
发表于 2008-11-28 16:54 |只看该作者

回复 #7 FinalBSD 的帖子

全部程序都贴这里了,不知道是怎么搞的,高手帮忙

论坛徽章:
0
9 [报告]
发表于 2008-11-28 17:12 |只看该作者
大哥, 这是追加方式,你这里写错了.

open(IN,">>sz_ci.log"||die "Can not write!";

论坛徽章:
0
10 [报告]
发表于 2008-11-28 17:19 |只看该作者

回复 #9 hr_it 的帖子

但是这样程序每运行一次,就会追加一次.有没有其它办法呀?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP