1 :
デフォルトの名無しさん:
PerlでCVSファイルへアクセスするプログラムを作っています。
ちょっとしたデータベースファイルなのですが、全レコードは
8000件あります。
あるキーワードが入っているレコードを探すのには、
どのようなプログラムが良いですか?お知恵を拝借願います。
(今は、8000件を上から探しているプログラムになっております。
その為、時間がかかってしょうがないのです。
これからもレコードは増えていく一方なので、レコードが増える
分、検索時間も増えていく形になっています。)
Perlスレッドで聞けばいいのに・・・
WebProg板にゆけばいくらでもあるんだから。
Cで書き直せ
しーけんしゃるさーち?
CVS? ソースコード管理の話か。
まぁいいけどGREPつかえ。
無理
7 :
デフォルトの名無しさん:02/03/03 17:01
無理なの?
1には無理。
8にはできるの?
コマソドライソから、
grep あるキーワード < 元.cvs > 結果.cvs
11 :
棄教者 ◆witdLTi2 :02/03/08 10:46
どういうデータを取り出したいかにもよりますがとりあえず2分木検索でも
やってみたらどうですか? 順次検索で逝くとO(n)かかるのがO(log n)でできますよ
>>11 「2分木検索」って、いったん全部読んで、2 分木構造を作るんじゃないん
ですか?
それなら順次検索のほうが速いような気がするんですが。
私は何か思い違いをしているのでしょうか?
11 が言いたいのは
2分探索じゃないの?
あらかじめ 整列させておいて、
真ん中のレコードと比較するやつ。
キーになる要素が一つしかないので
あれば、有効のような気もする。
ageちった。 鬱だ
>>1 一番まっとうな回答としては
「ちょっとしたデータベースファイル」ではなく
現在の実用に耐えるデータベースでも導入しろ
だな(Acessとか無料のDBとかOracleは無理に導入する規模ではない)
まっとうでない回答としては
1. 固定長レコードにしろ
2. インデックスファイルを作れ
3. あらかじめファイルをキーワードでソートしておけ
結局csvの利点である汎用性をある程度犠牲にしないと高速化は無理
16 :
棄教者 ◆witdLTi2 :02/03/08 13:18
>>11-12 >>1を読まずにカキコしていましたね すまそ
>あるキーワードが入っているレコードを探すのには、
>どのようなプログラムが良いですか?お知恵を拝借願います。
探すだけなら「二分木」じゃなくて「二分」検索ですね
てっきりレコードを一回読み込んで*複*数*回*の処理をすると思っていたんですよ.
一回だけ探してそれをレポートして終わりなら
木を構成するだけめんどくさいですね
データベース導入とか言う意見がありますがぼくも同意見です
ぼくもデータベースの管理をPerlでやっていたのですが
あまりにもデータが多くなってきたので
PostgreSQLを導入して DBI / DBD::Pg を使って
PerlからPostgreSQLなコマンドを送り込んでいます
どうして単発質問スレなのに叩かれないんだ?
18 :
デフォルトの名無しさん:02/03/08 14:36
どうかな。俺の意見としては、十万件程度まではテキストファイルが
データベース役やってもかまわないと思うが。
awk
perl
21 :
perler:02/05/15 22:09
他のパソコン上の共有ディレクトリ内にあるファイルを、perl上から
読み書きしなければならないのですが、どのようにアクセスすれば良いのでしょうか?
そのファイルを open すれば良いだけだ。