• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:c++で、各マシンにローカルデータを保存したい)

C++で各マシンにローカルデータを保存する方法は?

このQ&Aのポイント
  • C++を使用して各マシンにローカルデータを保存する方法を教えてください。
  • Windows VistaやWindows7などで何もインストールせずに処理できるローカルデータベースの作成方法を知りたいです。
  • 配列を使用してループさせる処理を避けつつ、社員IDをキーとするデータの登録、更新、削除、検索機能を実装したいです。

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

  • ベストアンサー
回答No.1

・各マシンの ・ローカルにデータを保存する というのが、処理の内容ですか? それとも、簡易的なデータベース処理をすると言うことなのでしょうか? データファイルを直接編集するよりは、データを一度全部読み込んでから処理する(そして、その結果を書き出す)ほうが楽ですよ。 C++ なら、STL という標準ライブラリに、map というクラスがありますから、これを使えば、(ついでに、char * の代わりに、std::string を使えば) std::map<std::string, std::string> members; で、 members["社員番号"] = "氏名"; で、(それまで登録がなければ)登録できますし、登録があれば、変更できます。 members["社員番号"] で、氏名が参照できます。(検索はこれで終わり) 同じく、 members.erase("社員番号") で、そのデータを削除できます。 ファイルへの入出力は標準では定義されていないので、その部分は、作成しましょう それも、ファイルをオープンした後、 for (std::map<std::string ,std::string>::iterator it=mymap.begin(); it!=mymap.end(); ++it) { ここに、ひとつのデータをファイルに読み書きする処理  ただし、社員番号のほうは it->first 氏名のほうは it->second でアクセスできる } とすればいいです。 便利ですよ。

souken_200
質問者

お礼

ありがとうございます。 std::map<std::string, std::string> members; かなり便利ですね!

その他の回答 (2)

回答No.3

検索キーが社員ID"だけ"なら、GDBMあたりがお手軽でしょうか。

参考URL:
http://codezine.jp/article/detail/7216
souken_200
質問者

お礼

インストール不要なところ、 すごく素晴らしいです。 顧客によっては、セキュリティ的な側面や、ミドルウェアのサポート・将来的な互換性の関係で、 独自のミドルウェアや、管轄外のDLLの利用を避けるところも多いですし、 その面ではかなり有利と感じました! .

  • mk48a
  • ベストアンサー率56% (1133/2007)
回答No.2

>ローカルに保存する形式は、CSVのようなものを想定していますが、 >windows vista、windows7が標準で処理ができるなら(何かをインストールすることなく処理できるなら) >ローカルデータベース?のようなものでも全然問題ないです。 実行形式にDLLを同梱する必要がありますが、sqliteを使ってしまうのが簡単でよいかも。 http://d.hatena.ne.jp/seraphy/20061031 >社員IDをキーとするデータて、社員名を登録、更新、削除、検索の4機能を実装したいのです。 sqliteを使えばSQL文を書くだけで実現できます。 簡単な処理しかしないならC++のSTLを使用すれば、同様の処理もできますが、データ構造をつくったり、それぞれの処理でも短いながらプログラムを作成する必要があります。

souken_200
質問者

お礼

ありがとうございます。 すごいです! SQLと同じように使えて、 しかも結構簡単そうですね。

関連するQ&A

専門家に質問してみよう