- ベストアンサー
C++で各マシンにローカルデータを保存する方法は?
- C++を使用して各マシンにローカルデータを保存する方法を教えてください。
- Windows VistaやWindows7などで何もインストールせずに処理できるローカルデータベースの作成方法を知りたいです。
- 配列を使用してループさせる処理を避けつつ、社員IDをキーとするデータの登録、更新、削除、検索機能を実装したいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
・各マシンの ・ローカルにデータを保存する というのが、処理の内容ですか? それとも、簡易的なデータベース処理をすると言うことなのでしょうか? データファイルを直接編集するよりは、データを一度全部読み込んでから処理する(そして、その結果を書き出す)ほうが楽ですよ。 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 でアクセスできる } とすればいいです。 便利ですよ。
その他の回答 (2)
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
検索キーが社員ID"だけ"なら、GDBMあたりがお手軽でしょうか。
お礼
インストール不要なところ、 すごく素晴らしいです。 顧客によっては、セキュリティ的な側面や、ミドルウェアのサポート・将来的な互換性の関係で、 独自のミドルウェアや、管轄外のDLLの利用を避けるところも多いですし、 その面ではかなり有利と感じました! .
- mk48a
- ベストアンサー率56% (1133/2007)
>ローカルに保存する形式は、CSVのようなものを想定していますが、 >windows vista、windows7が標準で処理ができるなら(何かをインストールすることなく処理できるなら) >ローカルデータベース?のようなものでも全然問題ないです。 実行形式にDLLを同梱する必要がありますが、sqliteを使ってしまうのが簡単でよいかも。 http://d.hatena.ne.jp/seraphy/20061031 >社員IDをキーとするデータて、社員名を登録、更新、削除、検索の4機能を実装したいのです。 sqliteを使えばSQL文を書くだけで実現できます。 簡単な処理しかしないならC++のSTLを使用すれば、同様の処理もできますが、データ構造をつくったり、それぞれの処理でも短いながらプログラムを作成する必要があります。
お礼
ありがとうございます。 すごいです! SQLと同じように使えて、 しかも結構簡単そうですね。
お礼
ありがとうございます。 std::map<std::string, std::string> members; かなり便利ですね!