プロが教えるわが家の防犯対策術!

超初心者です。

いま、表計算的なスクリプトを記述しています。

あるファイルの行数を取得する関数ってあるんでしょうか?

ファイルに記述されている数値を足したり引いたりするのですが、forを使っての計算の際にファイルの行数が必要となりました。

A 回答 (2件)

Perlにですね。

ないはずです。
行数とはファイルに書かれた改行文字の個数ということなので
実際にファイルを全て読み込まないと行数はわかりません。
以下のように色々な方法があると思います

#### 単純な例
$a = 0;
open FD, "<file.txt" || die $!;
while (<FD>) {
$a++;
}
close FD;
print "行数:$a\n";

### 少しマニアックな方法
open FD, "<file.txt" || die $!;
@a = <FD>;
close FD;
print "行数:" . ($#a + 1) + "\n";


### 反則的方法(外部コマンド) ... UNIXの場合
print "行数:" . `wc -l file.txt` . "\n";
    • good
    • 0
この回答へのお礼

ありがとうございました。

「単純な例」で進めていくことにしました。

お礼日時:2006/05/01 23:54

#1でも仰っているように、ファイルを全部読んでみないことには、ファイルの行数はわかりません。


ファイルが読み終わっているなら
$.
で取得することができます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!