作者handsomegirl (薰)
看板perl
标题[问题] 关於glob
时间Wed Jul 11 10:07:11 2007
又来问问题啦~~~这次是已经有找到档案里面的内容,
却没有办法对内容作处理,我的表达能力不好,贴出程式码看看比较好
这是我第一种写法,
#!usr/bin/perl
chdir ("c:\\Perl\\csv");
@mutifile=glob("*.csv");
foreach(@mutifile)
{
open(FILE,$_);
@file=<FILE>;
print @file;
close(FILE);
}
open f,">c:\\test\\0710.txt";
foreach $FOUND_STAGE(@file)
{
if ($FOUND_STAGE=~/Stage_No/)
{
$flag=1 ;
@array=split/,/,$FOUND_STAGE;
$first = $array[2] if $array[1]=~/Stage_No/ ;
next ;
}
if ($FOUND_STAGE=~/^\s/){$flag=0 ; next; }
@array=split/,/,$FOUND_STAGE ;
next if $array[1]=~/Start_Date/;
print f "$array[1] $array[2] $array[5] $array[6]\n" if $flag==1 ;
}
close f;
後来我有用find试着写
use File::Find;
find(\&wanted,'c:\\Perl\\csv',"c:\\Perl\\lib");
sub wanted{
if(/.csv/){
open(FILE,"$File::Find::name");
H:while(@file=<FILE>){
open f,">>c:\\test\\0711.txt";
foreach $cycle{
foreach $FOUND_STAGE(@file)
{
if ($FOUND_STAGE=~/Stage_No/)
{
$flag=1 ;
@array=split/,/,$FOUND_STAGE;
$first = $array[2] if $array[1]=~/Stage_No/ ;
next ;
}
if ($FOUND_STAGE=~/^\s/){$flag=0 ; next; }
@array=split/,/,$FOUND_STAGE ;
next if $array[1]=~/Start_Date/;
if ($flag==1){
print f "$array[1] $array[2] $array[5] $array[6]\n" ;
}
}
}
}
}
close f;
都一样把资料放在@file
也都有读到,我有print过
但是就是他只对一个档案作处理
没有办法处理全部的
还有每个csv的档案都有时间,要怎麽把他印在每个处理过後资料的开头?
谢谢指教
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.65.55.161