• 締切済み

ファイル内検索

初心者ですみません。リム-バルディスクに入っているデータの中から条件にあったデータを抽出するにはどのようにすればいいでしょうか? 本の通りにプログラムを作ってみたんですが、ファイル指定の際にファイルオープンエラーになってしまいます。

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

>とはどういうことでしょうか?どこかまた別に入力する場所があるのでしょうか? 開発環境で入力した値を確認するとか printfで出力してみるとかそういうことです。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

>Press any key to exit の文字が出てきて検索はしてくれません。 "Press any key to exit" 自体は、多分、開発環境から実行して、プログラムが正常に終了したので、何か押してくれということですね。 検索自体は、されているのだと思いますが、 何も表示されないということは、 >if (strcmp(name[loop], input) == 0) でうまく一致しないということだと思います。 name[loop]や、inputをうまく入力ができているか確認するといいと思います。 あと、 >printf("%sさんの電話番号は: &s\n", input, phone[loop]); の&sは、%sですね。

nao-nao-nao
質問者

補足

name[loop]や、inputをうまく入力ができているか確認するといいと思います。 とはどういうことでしょうか?どこかまた別に入力する場所があるのでしょうか?

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>printf("ファイルが開けません\n"); の部分のメッセージが実行すると表示される ということでいいですか? >if ((FP = fopen("filename", "r")) == NULL) では、オープンするファイルは"filename"になっていますが、 実際は"D:\mo\file.doc"とかなっているのでしょうか もしそうなら "D:\\mo\\file.doc" のようにするといいかもしれません。

nao-nao-nao
質問者

補足

すみません間違えました。 ワードの方の保存は、address.txtになっているので、filenameの部分はaddress.txtを入れました。 そうすると、「電話番号を検索したい名前を入力してください」と出るので入力するとPress any key to exit の文字が出てきて検索はしてくれません。 本当に初心者ですみません。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

どんなプログラムを書いたのか、補足で挙げていただくと、回答もつきやすいと思います。

nao-nao-nao
質問者

補足

例えばワードにアドレス帳があり、その中から指定した人を抽出するにはどうしたらいいでしょう? プログラムは、 #include <stdio.h> #include <string.h> int main() { char name[10][22]; char phone[10][13]; char input[21]; int loop; FILE *FP; /* ファイルのオープン */ if ((FP = fopen("filename", "r")) == NULL) { printf("ファイルが開けません\n"); return(1); } /* ファイルからデータを読み込む */ for (loop = 0; loop < 10; loop++) { /* 名前の読み込み */ fgets(name[loop], 22, FP); /* 読み込んだ文字の最後にあるかいい業を消す */ name[loop][strlen(name[loop])-1] = '\0'; /* 電話番号の読み込み */ fgets(phone[loop], 13, FP); /* 読み込んだ文字の最後にある改行を消す */ phone [loop][strlen(phone[loop])-1] = '\0'; } /* 電話番号を検索したい名前の入力 */ printf("電話番号を検索したい名前を入力してください\n"); gets(input); /* 検索と表示 */ for (loop = 0; loop <10; loop++) { if (strcmp(name[loop], input) == 0) { /* 電話番号表示 */ printf("%sさんの電話番号は: &s\n", input, phone[loop]); } } return(0); } としてコンパイルすると、ファイル名を実行してくださいとなるんですが、ファイル名を入れるとエラーになります。。。

関連するQ&A

  • Excelのブック間でのデータのやり取り

    VBA初心者で今Excelのファイルのデータを抽出し 別ファイルに書き込みをするというプログラムを 作成しているのですが、 データの抽出→別ファイルをOpen→シートを指定→データを対象行に書き込み といった一連の作業は出来るのでしょうか? 今VABを動かしているActive.Sheetは抽出されるファイルのSheetです。

  • 検索ファイルのアクセス方法について

    わかる人がいたら教えてください。 パラメータカードで範囲指定して、索引ファイルを検索するのですが。 例えば、以下の2通りです。(同じ数字は同一のデータを表す) パラメータカード     索引ファイルのデータ 開始(1)        2、3、6 終了(5) 検索ファイルのデータには、パラメータカードの開始(1)はないが、終了(5)までの索引ファイルのデータ(2・3)を抽出できる。索引ファイルのデータ(6)は抽出しない。 パラメータカード     索引ファイルのデータ 開始(2)        2、3、6 終了(5) 索引ファイルは、パラメータカードの開始(2)から終了(5)までの索引ファイルのデータ(2・3)を抽出できる。索引ファイルのデータ(6)は抽出しない。 COBOLのロジックで表現するとどうなるのですか?

  • エクセルで抽出データを削除修正する方法

    エクセルで在庫管理データ(ファイルA)の中からLOOKUPで指定条件に見合うデータのみを抽出し、リンク貼り付けで一覧表(ファイルB)を作成ております。 指定条件データで抽出したデータを修正したり、行毎削除したいと考えております。 何か方法がありますか? 当方初心者なため関数で処理できれば助かります。

  • フラッシュメモリついて教えてください。。パソコン初心者です。。

    先日、ELECOMのフラッシュメモリを使おうと思い説明書どうりに接続出来、圧縮データをバックアップするのにデスクトップにコピーをした後リム-バルディスクの表示を削除と書いていたので削除をしたら中のファイルが消えてしまったみたいで解凍も出来ないしフォルダが見つかりませんとしかならなくなりました。もう、どうすることも出来ないのでしょうか?サポートページがあったのですがユーザー登録などもファイルから入るみたいで何も出来ません。このフラッシュメモリは使えないですか?教えてください。

  • ファイル形式を指定して検索する方法

    フォルダの検索でPDFファイルのみ検索したいのですが 検索条件を「.pdf」とすると、 テキストファイルで中に「.pdf」が入ってる、テキストファイルまで抽出されてしまいます。 ファイル形式を指定して検索する方法があれば教えてください。

  • ExcelのVBAで、XMLファイルのデータ抽出

    はじめまして。 XMLファイルに含まれたデータの中から、特定の条件のデータのみを抽出するプログラムを作りたいと思っております。 XMLファイルの中身は <p name="test">あいうえお</p> <p name="test2">かきくけこ</p> <p name="test3">さしすせそ</p> … のようなデータが2~300以上あり、その中から、NAMEが"test"のものだけを抽出するプログラムなのですが、ExcelのVBAで可能でしょうか? ご教授頂ければ幸いです。よろしくお願いいたします。

  • ファイルの3行目までを出力したい

    Perl初心者です。 test.txtというファイルがあって、その中の1行目から3行目までを 出力したい場合はどうしたらいいでしょうか? open(FILE,"test.txt") || die "Open Error.\n"; @data = <FILE>; close(FILE); foreach (@data) { print $_; } これだと、ファイルの中身が全て出力されてしまいます。

    • ベストアンサー
    • Perl
  • Excelファイルへの書き込み

    検索条件を入力して、抽出されたデータをExcelファイルへ出力したいのですが、 どのようにすればよいでしょうか? サンプルプログラム等あればご紹介ください。

  • VBAで複数ファイルからのデータ抽出を行いたい。

    すみません、知恵をお貸しください。 VBA初心者です。 一つの同じフォルダ内にあるエクセルの同じ形式の複数ファイル(*.xls)から、データを抽出し(例.A2:k2)一つのファイルを作成したいのですが、どうにか一行目だけを抽出することができました。 しかし、データ抽出をしたい複数ファイルの中には(A2:k2)だけではなく、複数行に渡りデータが入っているもの(A3:k3まで、やA5:k5までなど)があり、それら全てを抽出したいのです。 何らかの条件付けの上でループをさせればいいのかな?とも考えたのですが、うまくいきません。 どうかご教授お願いします。

  • 複数ファイルから特定セルの抽出の仕方

    エクセル:マクロの初心者で自分なりに勉強しましたがなかなかうまくいきません。 今、しようとしている事は、1つフォルダがありその中に複数のファイルがあります。このそれぞれのファイルのシートの特定のセルのデータを抜き出して、別に新しくシートを作り、表にまとめたいと思っています。 条件は 1,フォルダ名「risuto」、そのフォルダの中の複数あるシート(300程あります)のタ  イトルはそれぞれ違いますがシートの様式は同じです。 2,そのファイルの「sheet1」のセルM5からO5を抽出したいです。ファイルは閉じたまま  でお願いします。 3,その抽出したデータを別のシートに表にしたいです。書き出しはどこでもOKです。 いろいろ調べた結果、一度名前がバラバラのファイルを何か読み取りやすい形に変えてから それぞれのファイルを見に行きセルを抽出する方法がいいのでは、と考えているのですが、 初心者なので本に載っているような基本のコードしか解らずそれをどの順番にどのように加工したらいいか解らず困っています。 それぞれのファイル、シートをアクティブにしてシート開きそのセルのデータを拾いにいき 新しいシートに貼り付けるという順番でいいでしょうか? かなり頭を悩ましています。 よろしくおねがいします。