• ベストアンサー

文字列検索の方法

○.csvという複数のファイルがあります。 内部のデーターは「,」区切りになってます。 複数のファイルの中に、あるキーワードに一致する文字列を含む ファイル名を一覧で表示する方法(プログラム)を教えてください。 雰囲気は全文検索みたいな感じです。 関数や簡単なプログラムであれば、例をあげて頂ければ幸いです。

  • Lio
  • お礼率44% (46/103)
  • Perl
  • 回答数3
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • panda0000
  • ベストアンサー率35% (59/165)
回答No.1

質問の内容から、多少の知識はあると判断しましたので、 以下のスクリプトが参考になるのではないでしょうか。 WwwSearch Ver3.13

参考URL:
http://tohoho.wakusei.ne.jp/wwwsoft.htm
Lio
質問者

お礼

早速のお返事有難うございます。 参考にさせて頂きます。

その他の回答 (2)

回答No.3

Perlのカテゴリにポストしているので、それを前提に書きます。 ","で区切られていようが、いまいが一致する文字列の有無だけでいいですよね。 第一ループの開始位置 1. readdir()) ファイル名を取得し、 2. そのファイル名でファイルをオープン 3. フラグを初期化 第二ループの開始位置 4. eofを検出するまで、各行を読込む。eofならループを抜ける 5. index() で検索文字列があるかどうか調べ 6. 検索文字列があったらフラグをセットし第二ループを抜ける 第二ループ終了位置 7. フラグをセットされていたらファイル名表示 第一ループ終了位置 ループは while で繰り返せばいいです。

  • era_era
  • ベストアンサー率30% (3/10)
回答No.2

検索したあとに置換をするかしないかでオススメが変わりますが、秀丸のgrep機能を使うと簡単に処理できると思います。 以下のページを見ると分りやすいと思います。 秀丸エディタQ&A集「grepの実行って何ですか?」 http://www.ceres.dti.ne.jp/~sugiura/hidemaru/qa/HME0068A.html また、検索した文字を置換するには以下の TextSS というフリーソフトが便利です。参考までに。 http://www.vector.co.jp/magazine/softnews/020508/n0205082.html

参考URL:
http://www.ceres.dti.ne.jp/~sugiura/hidemaru/qa/HME0068A.html

関連するQ&A

  • csvファイルを開かずに文字を検索し行を抽出したい

    フォルダの中に複数のCSVファイルが有ります。 これらのファイルを開かずに文字列を検索し、検索対象の文字と完全一致する 文字がある行をまとめてひとつのファイルに抽出する方法を探しています。 例:Aフォルダ内にファイル1、ファイル2、ファイル3、、、と複数のファイルがある。 ファイルのフォーマットはすべてCSV。ファイルにはシートは一つのみ。日付なのですべて異なります。       A         B  C   D   E   F  G   H   I   J  K   L 加工年月日時分 品種 コード A列 B列 C列 D列 E列 F列 G列 本数 作業者    ・    ・    ・ A~Lまであり、Cのコードが指定した検索文字と完全一致するものを抽出したいです。 急ぎの内容の為、VBAやコマンドプロンプトなど、自分なりに色々なサイトにある プログラムを組み換えようとしましたが初心者の為すぐに理解して応用はとても 無理でした。知恵を貸して頂きたいです。

  • ASPの文字列検索

    文字列検索のプログラムを書いています。読み込むファイルには商品名=¥100のような形でデータが入っています。入力された商品名の値段だけを取得したいのです。自分が考えたのは、まず商品名を含んでいるかどうかを見て、含んでいたらまずその文字列の長さを取得して、次にイコールまでの長さを取得し、Rightで(全体の長さ-イコールまでの文字列の長さ)分の文字列を取得しようと考えたのですが、似たような商品名があると複数反応してしまうのです。例えばsampleとsample1があったらsampleと入力すると両方に反応してしまうのです。完全一致で探したいのですが、どうしたらいいでしょうか?

  • 文字列の部分読み込み

    C言語によるプログラムを勉強中なのですが、分からないことがあるので質問させてください。 「fgets」を用いてファイルから一行分の文字列を読み込んだのですが、この文字列の○文字目から×文字目を読み込む関数などはあるのでしょうか? もし無ければ、どのようにしたら読み込めるのでしょうか? 読み込んだ文字列は □□□□1234□□□5678□□abcd のようなもので、□は半角のスペースです。 区切り文字などが無く、先頭の半角スペース部分に文字が入る場合もあるので、○文字目から×文字目のように指定したいと思っています。 初心者で申し訳ありませんが、よろしくお願いいたします。

  • CSVの項目検索について

    現在C++を使いはじめて1週間になり、そこで任されたプログラムの一部がわからずに困っています。 概要: ・CSVファイルがありそこの、ある項目列と検索する文字列が一致すれば、一致したレコードを取得するといった部分で煮詰まっています・・・ CSVファイルのサンプル testA,1,200412 testB,2,200410 testC,3,200409 といった感じで、「testA」といった文字列で検索をかけ「testA,1,200412」といったようにその対象となるレコードを取得したいのです。 今はWinAPIを使って作成すると言ったことから CreateFileなどの関数でCSVを読み込むところまで出来ましたが、要領がわからず調べても要領がわからずに1日無駄にすごしてしまいました、そこで どなたかアドバイスをもらえればと思い質問いたしました。 環境はVC++6.0です、よろしくお願いします。

  • 文字列ファイル表示プログラム

    Cプログラムの問題なのですが、 「複数の文字からなるファイルを読み込み、全て読み込んだ後に表示するプログラムを作成したいと思います。あらかじめ文字列を配列として宣言するのではなく、文字列の長さを確認した上で、malloc()標準関数でメモリを割り当て、表示しなさい」 文字列を宣言せずに、どうやったらファイルの中の文字列を読み込むことができるのでしょうか?その上、文字列の長さを確認したあとmalloc関数を使うにはどうすればいいのでしょうか。 どなたか教えてください。お願い致します。

  • Fileから文字列を抜き出したい

    CGIのプログラムで行ったほうがいいに決まっていますが、JavaScript で行うことを前提にした質問です。 下記の構造をしているファイルAから、各行の先頭の文字列 を抜き出して、引数で与えた文字列と一致するかチェックした いのです。 例えば、ファイルAの構造が区切り、|で  ”ローソン”|”ワイン”|”450”  ”サークルK”|”日本酒”|”180”  ”セブンイレブン”|”ワイン”|”430” となっており引数がセブンイレブンの時、3行目に一致する ので、TRUEを返す関数を作りたいのです。

  • ACCESSでの文字列の比較

    はじめまして、こんにちは。ACCESSについて教えてください。あるテーブルに列が1、2とあったとします行は全部で80万行です。1の列にあるデータを一つづつ取り出して、2の列にあるデータと比較し、一致していれば真を返して、一致していなければ偽を返すプログラム(つまり80万×80万の計算になるとおもいます。)を組みたいのですがどうすればいいのでしょうか?エクセルだと簡単にVLOOKUP関数でできると思うのですが、アクセスでのやり方がわかりません。データも80万件もあるのでエクセルが使えません。何かヒントとなるホームページやキーワードを教えていただけないでしょうか。よろしくお願いします。

  • CSVファイル中の文字列項目の中に混じった

    CSVファイルからRDBへのロードで悩んでいます。 以下の様なCSVファイルがあり (よくあることかもしれませんが)データの中に " が混じっているため、正常にデータをロードできません。 文字列データ中の " を削除するか、代替文字に置換したいのですが、 なにかいい知恵は無いでしょうか? 例: $ cat DATA.csv 10,"0010","教育","キョウイク",2300 20,"0110","美容&健康","ヒ"ヨウ&ケンコウ",2300   ←ビ ではなく ヒ" 30,"1010","趣味","シュミ",2312 40,"0030","マネー","マネー",3300 ただし、 ・CSVを作成するプログラムの関係で、   CSVファイル中の ,区切り "括りルールは変更できない ・ファイルは可変長 ・誤った " は上記以外にも無数に予想されること   レコード件数が多いこと から、   sedなど自動化された方式が望ましい ・OS は Solaris8 ・RDB は Oracle9i ・シェアウェアなどのオンラインソフトの使用は不可 ・文字列データ中の " はすべて誤った文字と見なして良い  (もちろん括り文字 " は生かすこと) 正規表現を用いてsedでなんとかならんか?といろいろ試行錯誤してみたのですが、 イマイチうまくいきません。 どうかよろしくお願いします。

  • 使用禁止文字の検索について

    たびたびすみません。 文字列の中に使用禁止文字がないかチェックしたいのですが悩んでおります。 "}"が文字列に含まれていないかをチェックするとおかしな事が起こります。 チェックにはstrpos関数を使っています。 例えば、 $res = strpos("パクス・ロマーナ", "}"); print("パクス・ロマーナ結果".$res); とすると 本来ならば結果は false が返るはずなのですが、 「パクス・ロマーナ結果11」となってしまいます。 タブ区切りのcsvファイルの中の文字列をチェックしているのですが それが原因なのでしょうか? 他の文字("'"や"{")については何も問題がないのです。 どなたかご教示していただけますと助かります。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 文字列検索&分解の方法に関して

    C言語初心者です。 現在、文字列の検索&分解のプログラムを作成しようとしているのですが、なかなかうまくいきません。 やりたいことは、カンマくぐりのCSV形式の文字列をカンマ毎に分解して出力させたいのです。 (例) 入力データ:"TEST1,TEST2,,TEST3" 出力結果: No1:TEST1 No2:TEST2 No3: No4:TEST3 カンマをstrchrにて検索したりしてはみましたが、うまく出力されないといった感じであります。 大変申し訳ございませんが、方法・ヒントを頂けるとうれしいです。 どうかよろしくお願いいたします。

専門家に質問してみよう