• 締切済み

ファイルの読み込み

noname#4147の回答

noname#4147
noname#4147
回答No.1

%hashに入れるとすると、 open (FILE, "datafile.txt"); while (<FILE>) { m/(\w+)\s+(\w+)/; $hash{$1} = $2; } close FILE; でいかがでしょう?

nemuxin
質問者

お礼

早急に返信いただき、有り難うございます。 説明不足のため、すっかりC++でプログラム をしている事を書き忘れてしまいました、、。 すみません。 c++で、わかりましたら、 返信よろしくお願いします。

関連するQ&A

  • ハッシュ値 のファイル

    あるファイルfile1.txt のハッシュ値を計算してその結果を記載したファイル file2.txt のデータは、 Hash SHA1 hashsize=20 C1 14 ...... 4F のように、 先頭に、方式 1行あけて、サイズ 次の行に、計算したハッシュ値 となっているのでしょうか? 参考になる資料がありましたらよろしくお願いします。 なお、上の値は、 RFC6234 にある、ソフトを動かした結果です。 よろしくお願いします。

  • 大量の画像ファイルの管理

    現在MySQLのひとつのテーブルに小さな(50KB程度)画像データとメタデータを500万件程度管理しています 数千万件程度までは増える可能性があります テーブルが大きくなりすぎて、WHERE節によるソートがとても時間がかかるようになってしまったので、これを整理しようと思っているのですが、やり方に迷っています 今候補なのは A.テーブルを画像データテーブルとメタデータテーブルにわける B.メタデータだけをMySQLで管理して画像はファイルで管理する です Aだと使いやすいですが、結局画像を管理するテーブルは巨大になってしまうのが気になります、また、データベースに詳しい人に少し相談するチャンスがあった時に画像はDBで管理するものじゃない、というようなことを言われたのも気になります そこでBで、やってみようと思ったのですが、ファイルの置き方に困ってしまいました ext4を使っているサーバなので、ひとつのディレクトリにおけるファイル数の制限はないようですが、ひとつのフォルダに数百万個のファイルを置いてもいいものなのでしょうか? また、ではファイル1000個程度づつをフォルダに分散させようと思った時に、どのような法則で分散させればよいのでしょうか? 何かフォルダ構造のつくり方のスタンダードはあるのでしょうか? ちなみに画像ファイルのファイル名は連番の数字と考えてもらってかまいません(連番じゃなくて、ハッシュかなにかにしたほうがいいのであれば、もちろんそれでもかまいません) アドバイスもしくは、参考になるサイトなど教えていただければありがたいです

    • ベストアンサー
    • MySQL
  • CSVファイル読み込みでズレがおきる

    お世話になります。 Windows XP SP3、Access2003 で CSVファイルをインポートする処理をつくっています。 読み込むCSVファイルが大きく、必要ないフィールドが多いのですが、 下記のようにLine Input で全部読み込んで Splitでカンマ区切りでバラしてvarData(Variant型)にいれて レコードセット(インポート先の既存テーブル)に入れる時に、 必要に応じてデータ型を変更して フィールド指定ししていれるようにしています。 ところが、CSVファイルの中のデータで数件ほど ちゃんと読み込めないものがあり、 レコードセットにいれるときにエラーでとまってしまいます。 調べてみると、フィールドで取得した値がずれており、 前の方の複数のフィールドでNull値があった場合?に ずれ込むことがあるようです。 どうしたらこの現象はなおせるのか教えてください。 それとも・・・ このようにフィールド指定してレコードセットに入れ込むよりも 一度CSVファイルの全レコードを他のテーブルにインポートして、 そこからインポート先の既存の本テーブルにいれたほうがいいのでしょうか? よろしくお願いいたします。 Open ---- For Input As---- Line Input #lngFileNum, strData インポート先のテーブルをレコードセットで開く DAO、トランザクション使用 Do Until EOF(lngFileNum) Line Input #lngFileNum, strData 'データを配列へ varData = Split(strData, ",") With rs .AddNew !番号 = CLng(varData(0)) !名称 = varData(1) !受付日 = DateValue(varData(8)) !種別 = varData(10), "" !登録番号 = CLng(varData(11))           (以下略)

  • JavaでXMLをファイルからじゃなく扱いたい

    Javaで例えば、String変数に String str = "<xml sample>hogehoge</xml sample>" みたいにXML形式のデータが入っているとして、このデータを、XMLファイルをDOMで扱う時のように扱えないでしょうか?一度、ファイルに書きだして、XMLファイルとして読み込ませないと難しいでしょうか?

    • ベストアンサー
    • Java
  • ファイル読み込みが上手くできません

    C言語初心者です。 現在、ファイルの情報を構造体に読込んで実行するプログラムを作成しております。 読込むファイルは700MBほど(行数は39900000行)となっており、1行ずつfscanfで読込んでいます。 400000行ごとに構造体に読込んで、処理を実行し、構造体に読込んだ全ての処理が完了したら、再度400000行読込んで・・・を繰り返すものになっております。 400000行ごとにしているためforループで100回まわすようにしているのですが、最後の1回(100回目のループ)で、99回目と同じ場所を読んできてしまいます。 つまり、最後の1回だけはファイルポインタが進んでいない状況になります。 コードは下記になります。 #define MAX_SIZE 400000 uint64_t i = 0; uint64_t fc = 0; int main(int argc, char *argv[]){ char w[] = "$write"; char r[] = "$read"; // ファイルを構造体へ格納 char filename[] = "TEST_READ_WRITE.txt"; struct TEST_DATA{ char cmd[10]; int addr; int bsize; }; FILE *fp; if ((fp = fopen(filename, "r")) == NULL){ printf("%s open error !\n", filename); exit(1); } for (int lp = 0; lp < 100; lp++){ struct TEST_DATA TD[MAX_SIZE]; // 構造体配列の宣言 for (fc = 0; fc < MAX_SIZE; fc++) { if (feof(fp)){ break; } else{ fscanf(fp, "%s %d %d\n", TD[fc].cmd, &TD[fc].addr, &TD[fc].bsize); } } while (i < MAX_SIZE - 1){ //ファイルから取得したデータによって処理を実行 if (strcmp(TD[i].cmd, w) == 0){ //書込み処理 } if (strcmp(TD[i].cmd, r) == 0){ //読み込み処理 } } printf("Finish!! \n"); } fclose(fp); return 0; } 読込むファイルはテキストデータで、 $write 25651496 152 $write 135878112 8 $read 1244848 16 のような感じのものが39900000行並んでいるものになります(数字はランダムです)。 最後の1回のみ上手くファイルポインタが進まない原因が分からずに困っています。 お気づきの方がいらっしゃいましたら、アドバイスをよろしくお願いします。

  • VBAでインポート元ファイルの読込可否を判別するには?

    AccessVBAであるCSVファイルをインポートして処理を行っています。 インポート元であるCSVファイルは2分毎に更新されており、データ量が多い関係上書込みに十数秒掛かっています。 この間にAccessからCSVファイルのインポートを掛けると 「ほかのユーザーが排他的に開いているか、データを読み取る権限がありません。」 と出てしまいます。 このことから、 1.ファイル読込の可否を判別し、可能ならテーブルのレコードを削除しインポートを行う 2.不可ならテーブルにある既存のデータを用い集計を行う という一文をIf関数を用いた形で追加したいのですが、インポート元のファイルの読込可否を判別する方法はありますでしょうか? 識者の方アドバイスの程よろしくお願い致します。

  • ハッシュテーブルの使い方

    こんにちわ。 いまVB.Net2003でプログラミングをしている者です。 ORACLEのあるテーブルの内容をハッシュテーブルに取り込んで, キー検索する処理をしたいのですが, 取り込む際,ハッシュテーブルの「Add」メソッドで 1件ずつ取り込むしかないのでしょうか? たとえばコンボボックスの「DataSource」プロパティに レコードセットを設定するように,一回で設定したいのですが, このような機能があるでしょうか? またハッシュテーブルはキーは1つしか設定できないようですが, このテーブルデータを2つのキーで検索するのはどうすれば 良いでしょうか?

  • perlでファイルの読み方

    次のような入力ファイルがあったときに、EOFまでのデータを番号1+番号2別にファイルに出力したいのですが、どのようにするのがいいでしょうか? できれば、入力したデータをハッシュか配列にいれてからデータを加工してファイルに出力したいと思っています。 入力ファイル 1.xxx 2.A EOF 1.xxx 2.B EOF 1.xxx 2.A EOF 1.www 2.B 出力ファイル ファイル1 1.xxx 2.A 1.xxx 2.A ファイル2 1.xxx 2.B ファイル3 1.www 2.B

    • ベストアンサー
    • Perl
  • 相互的な検索のできるハッシュテーブル?

    こんにちは。データ構造とアルゴリズムを学習しているJava入門者です。 「名前」と「電話番号」の二つのデータを格納するハッシュテーブルを実装したプログラムを考えています。名前をキーにして電話番号を呼び出すところまではいったのですが、 それと同時に電話番号と名前のどちらを入力しても、もう片方が検索できるようなプログラムを作れ、というのが今回の課題なのです。 基本的なハッシュテーブルの構造は学んでいるのですが、 どうしても「名前と番号、どちらのデータからも同じデータに辿り着く」ようなハッシュ関数が頭に浮かびません。 検索して色々調べてみたのですが、それらしい記事を見つけることが出来ませんでしたので、ここに投稿させていただきました。 どうぞよろしくお願いします。

    • ベストアンサー
    • Java
  • ハッシュ値が一致したデータは完全に同一ですか

    ハッシュ値について。 同じデータからは、必ず同じハッシュ値が求められるが、少しでもデータが異なると違うハッシュ値が算定される、とよく言われますよね。 そこで質問です。 それでは、(たとえば50GB級並みの)巨大ファイル2つがあるとします。この2つのファイルは、99.999…%同一ですが、僅か1ビットだけ、どこか違いがあるとします。こんな場合でも、両者に1ビットでも違いがある以上、ハッシュ値は、必ず異なるものなのでしょうか? もし、そうであれば、ハッシュ値が一致したデータは、完全に同一のデータと判断していいのでしょうか。 (ちなみに、ここでは、改ざんなど、意図的な行為は一切ない、という前提でお願いします。あくまでHDDをバックアップした際の確認が目的での質問です) 多くの方のご回答、宜しくお願いします。