下の質問間違えて解決してしまいました。
[上に]
[前に]
[次に]
taro
[E-Mail]
2000/06/10(土) 13:35:28
ありがとうございます。
なんとなくわかりました。
あつかましいようですが,ちょっと質問よりずれてしまうかもしれませんがもう少し。
csv.files=
time
a,a1,a2,a3,a4
b,b1,b2,b3,b4
c,c1,c2,c3,c4
・
・
・
となってるデータファイルより@dataに任意の数だけのデータを渡したいのです。
全部とりだすsubルーチンを下記のように設定してます。
sub csv_open {
if (!open(CSV,"$csv_file")) { $msg = 'データファイルが見つかりません。'; &error; }
@data_lines = <CSV>;
close(CSV);
$time_data = $data_lines[0];
shift (@data_lines);
}
で,foreach文で@data_lineから100番目から200番目までのサンプルを@dataにとりだそうと考えてたんです。
そうすると
foreach (@data_lines) {
if($i++>100){push(@data,$_)}
if($i=200){last;}
}
で,いいんでしょうか?
最初からcsv filesを開くときに100個のサンプルを取る方法はないものでしょうか?
Fuji.♪
[E-Mail]
[HomePage]
2000/06/10(土) 14:39:54
読み込む段階で
open (CSV, "<$csv_file") or &error('データファイルが見つかりません。');
$min = 100;
$max = 200;
for ($i = 1; $i < min; i++) { $_ = <CSV>; }
for ($i = $min; $i < $max; i++) { $data[$i - $min] = <CSV>; }
close(CSV);
とかじゃダメなの?
なんか妙にforeachに拘ってるようだけど、配列の項目を直接アクセスするならforの方が楽でしょ。
あと、トピックのタイトル見ても内容が全然わからないので、○○の続きみたいなタイトルにして、最初のメッセージで「間違えて閉じてしまいました」とか書きましょう。
偽
2000/06/11(日) 02:58:20
>あと、トピックのタイトル見ても内容が全然わからないので、○○の続きみたいなタイトルにして、最初のメッセージで「間違えて閉じてしまいました」とか書きましょう。
下の質問ってのも、なんのことだかわからないしね。
[上に]
[前に]
[次に]