2009-04-01 4 views
1

私は少しプロジェクトを開始しようとしています。私は小売コスト•日•卸コスト•ハンド 上のファイルにインベントリデータを格納するためのC++プログラム(私は.TXTがどうなると思います)情報をファイルに保存し、そのファイルの情報を編集し、新しい情報を追加するプログラムを作成する最善の方法は何ですか?

  • •項目説明•数量を作成 インベントリ
に追加します

私は次のことができる必要があります:

•ファイル

内の任意のレコードを変更する•ファイル 内の任意のレコードを表示•ファイル に新しいレコードを追加します。私は&効率的に、これははるかに簡単に作ることができること、これを開始する前に、私が知っておくべきものがあります。 ..

たとえば、XMLを使用したり、C++経由で扱うのが難しいのは何ですか?

私はこれを行う最も効率的な方法を本当に理解したことはありません。

私はファイルを検索し、角かっこなどの中のものを探しますか?

EDIT

データサイズが大きすぎてはなりません。宿題のために私はあなたが言うことができると思います。構造体の内容をファイルのルートに書きたいと思っていますが、どうすればそれをやりますか?

答えて

4

多くのアプローチがあります。これは宿題や実際の使用のためですか?宿題の場合は、おそらくあなたが使うものにいくつかの制限があります。

そうでなければ、SQLiteのような組み込みDBMSをお勧めします。他にもいくつかありますが、これが最も強力なソリューションになりますし、実装も簡単です。

XMLも使用でき、再利用可能な実装が多数ありますが、数千のレコードになるとパフォーマンスが低下します。同じことがJSONにも当てはまります。また、JSONやXMLのどちらがよりシンプルなのかについて議論するかもしれません。

structを作成し、その内容をファイルに直接書き込むこともできます。レコードのサイズが一定でない場合、トリッキーになります。また、レコード形式が変更された場合は、ファイルを再構築する必要があります。そうしないと、このソリューションは、慎重に実装された場合、パフォーマンスに最も優れたソリューションの1つになります。

0

手動で行うと主張する場合は、XMLの代わりにJSONを使用することをおすすめします。

また、sqliteを検討してください。

1

データベースエンジンを使用しない理由を教えてください。

学習のためのものであれば....そのファイル内の格納されたデータの推定サイズとアクセスパターン(何人のユーザーか、頻繁に行うなど)を教えてください。

効率的な検索と変更のコードを作成することが課題です。

検索では、データ構造と組織についてです。 修正するには、ファイルに更新を書き込んで、メモリに完全に読み込まずにそこに更新してから、再度完全にファイルに書き戻す方法です。

0

これはSQLiteの完璧な仕事のようです。小さく、速く、柔軟で使いやすい。

1

時間が経つにつれて機能が追加される可能性がある、これが実際に使用されるプロジェクトの場合は、過剰なように見えても、最初からデータベースソリューションを探してください。私はこれまでにこの道を歩んできましたが、時間の経過とともに小さな機能が追加され、それを実現する前にデータベースを実装しました。不完全に。弾丸に噛み付き、データベースを使用する。

これは学習の練習問題で、保存するデータの量によって異なります。それが小さい場合は、ファイル全体をメモリに読み込んでそこで操作するのが最も簡単です。変更が加えられたら、ファイル全体をディスクに書き戻します。データが大きすぎてそれを行うことができない場合は、次の最良のことは、固定サイズのレコードを持つことです。すべてのデータ(つまり、ポインタ、stlコンテナなど)を含むPOD構造体を作成します。その後、ファイル全体を書き換える必要なく個々のレコードを書き換えることができます。これらのどちらもうまくいかない場合は、データベースソリューションが最適です。

関連する問題