openで指定したファイルデータに制限を持たせるには?
[上に]
[前に]
[次に]
がんま
[E-Mail]
1999/03/01(月) 21:32:48
Perlですが、ちょっと質問させていただきます。
open(IN, './name.dat');
while (<IN>) {
chop;
push(@data,$_);
}
上記のように、openでname.datを開いているのですが
例えば、このname.datのデータが
111
222
333
と言うように、一行ずつデータが入っていたとして
この行数を「10行」や「20行以上のデータは削除」されるように
指定することは可能でしょうか?
開いた時点で、これを行いたいのですが
私の知識では皆目見当つかず、この数日足踏み状態…。
すみませんが、方法がありましたら、教えて下さい。
お願いします。
Tiot
1999/03/01(月) 23:45:48
> 開いた時点で、これを行いたいのですが
ということでしたら、削除するのではなく10行や、20行までしか
読み込まないという風にしては駄目ですか?
もとの文を活かすなら、
open(IN, './name.dat');
$count = 0;
while (<IN>) {
chop;
push(@data,$_);
$count++;
if($count == 10) {last;}
}
for文とか使った方が奇麗だけど。
Tiot
1999/03/01(月) 23:48:37
それとも削除する、ってファイルから削除するんでしょうか。
もしそうだったら、見当違いですのですいません。
がんま
[E-Mail]
1999/03/02(火) 00:40:13
>それとも削除する、ってファイルから削除するんでしょうか。
都合上、削除出来ないと困ってしまうのです。
Tiotさん、ご親切にありがとうございます。
B-Cus
1999/03/02(火) 00:46:40
open(IN, './name.dat');
$count = 0;
while (<IN>) {
chop;
push(@data,$_);
$count++;
if($count == 10) {last;}
}
open(OUT, '>./name.dat');
foreach (@data){
print OUT "$_\n";
}
close(OUT);
がんま
[E-Mail]
1999/03/02(火) 01:40:48
[[解決]]
Tiotさん、B-Cusさん、大変ご迷惑をお掛けしました。
私があまりに寝ぼけていました!
折角、Tiotさんが教えてくれた方法を、私が入力ミスを犯してしまい
> 都合上、削除出来ないと困ってしまうのです。
などと、すっ呆けたことを言ってしまいました。
本当にすみませんでした。
B-Cusさんに対しても、度々失礼なことをしてしまいました。
こんな私に返答をしていただき、本当に感謝しています。
本当にありがとうございます!
#しかし、どうして「last」を「list」と入力したんだ?
#しかも1時間以上、そのことに気が付かないし…最低最悪;_;
[上に]
[前に]
[次に]