1

そこで、自分の本、借りた本、読んだ本などの記録を残すことができるように、このプログラムを作成するプロジェクトを作成することにしました。「データベース」には .txt ファイルを使用しています。書籍のタイトル、著者などが含まれます。1 行に 1 つずつ、すべての書籍はその著者と同じ行を共有しますが、それらは別のファイルにあります。たとえば、次のようなものがあります。

FILE A:                     |              FILE B:
Harry Potter                |           J.K. Rowling
The Fellowship of the Ring  |         J.R.R. Tolkien

他のすべての情報についても同様です。
ここで、各本にチェックボタンを追加して、読んだ本をマークできるようにし、read という名前の .txt ファイルを作成し、各行に「選択済み」または「非選択済み」を付けて状態を表します。チェックボタン。
次に、read.txt ファイルを実行する for ループを介してプログラムにチェックボタンを追加し、ファイル内の行と同じ数のチェック ボタンを追加します。ファイルの行に「SELECTED」と表示されている場合は、チェックボタンが選択済み ( checkbutton.selected()) として設定されます。それ以外の場合は、チェックボタンが作成されます。
今、私が望むのは、対応する行のボタンが押されるとすぐに、プログラムが read.txt ファイルの行を変更することです。たとえば、ハリー・ポッターのボタンを押すと、読み取りの最初の行になります。 txt が「SELECTED」に変更され、もう一度クリックすると「NOT-SELECTED」に戻ります。
私が最初に考えたのは、各チェック ボタンの値でリストを作成し、チェック ボタンが押されると、各ボタンの新しい値で新しいリストを作成する関数を呼び出すことでした。次に、2 つのリストを比較し、最初のリストに必要な変更を加えてから、ファイルを変更します。問題は、2番目のリストを作成して比較する方法がわからないことです。そのため、その方法についてのヘルプを探しています。ただし、誰かがより良いアイデアを持っている場合は、

長い投稿で申し訳ありません。

4

1 に答える 1

1

csvプレーン テキスト ファイルではなく、モジュールを使用することをお勧めします。titleカンマ区切り値スプレッドシート形式で保存されたデータを処理し、authoris_read、などの基本的なフィールドについては問題なく動作し、SQL を学習したりデータベース スキーマを設計したりする必要がないという点borrowed_fromでより簡単に処理できます。 sqlite3. ただし、いくつかの制限があるため、リンク先のドキュメントを読んで、ニーズに合っているかどうかを確認することを強くお勧めします. プロジェクトがより複雑になった場合は、読み進めることsqlite3が最善の策です。

于 2013-05-03T18:49:36.707 に答える