ファイルを読み込み配列に入れるには・・

[上に] [前に] [次に]
りいこ@ 1999/11/26(金) 01:59:12
非常に初歩的な質問で申し訳ありません。

ディレクトリ A B C があったとします。
A、B、C の中には、それぞれdata.datといファイルがあり
そのファイルdata.datを一行読み込み同じ配列に
入れるには、どのようにしたら良いでしょうか。

ご教授の程、よろしくお願いします。

ふじ 1999/11/26(金) 02:33:51
#とりあえず、言語が Perl5 だとして。

foreach $dir('a', 'b', 'c'){
    open IN, "< $dir/data.dat" or die "can't open $dir/data.dat $!";
    $data = <IN>;
    push @data, $data;
    close IN;
}

こんなので。
data.dat の先頭の一行を読み込んで配列 @data に入れます。

やりたいことはこれで良いのでしょうか?
# 外してたら、もうちょっと具体的にやりたいことを
# 書いてもらえると、答えやすいです。

りいこ@ 1999/11/26(金) 07:23:00
ふじさんありがとう御座いました。
おかげ様で思って居た事が出来ました。

応用としてa,b,c,d,e,f,g 程度ならば 'd','e,','f'を
付け足せば良いと解るのですが
a〜z や アルファベットではなく数字で1〜50 や 1〜100等
の場合は、やはり
'1','2','3',・・・・・ '50' という具合に
書かなければいけないのでしょうか?

匿名不希望 1999/11/26(金) 07:39:14
> '1','2','3',・・・・・ '50' という具合に
ならば、

> foreach $dir('a', 'b', 'c'){
の行を
for ($dir=1; $dir<=50; $dir++) {
で良いかと。

foreach $dir(1..50){
は出来ないんでしたっけ?

Aurai [E-Mail] 1999/11/26(金) 07:55:31
やりかたいろいろ

foreach $_ ('a'..'z') {
  print;
  print "\n";
}

foreach $_ (1..50) {
  print;
  print "\n";
}

foreach $_ ('00'..'99') {
  print;
  print "\n";
}

りいこ@ 1999/11/26(金) 19:54:43
匿名不希望さん、Auraiさんありがとう御座いました。
最初に行いたかった動作は、おかげ様で出来るようになりました。

そして、他の投稿を見ていて付け足したい動作があったので
すが

foreach $_ ('a'..'z') {
    open IN, "< $dir/data.dat" or die "can't open $dir/data.dat $!";
    $data = <IN>;
    push @data, $data;
    close IN;
}

これに各ファイルの最終更新日を付けるには
どうのようにすれば良いでしょうか
何度も何度も申し訳ありませんが、ご教授の程お願いします。

時刻を入れて $mtime を push 等で付け足せば良いのでは?
あたりまでは解るのですが・・ 

P初心者 1999/12/01(水) 10:19:02
以下で、いけませんか〜
実際やっていませんが...。

foreach $_ ('a'..'z') {
    open IN, "< $dir/data.dat" or die "can't open $dir/data.dat $!";
    $data = <IN>;
    push @data, $data;
############################### ADD
    @stat = stat IN;
    push @data, localtime($stat[9]);
############################### END
    close IN;
}

[上に] [前に] [次に]