2009-04-30 9 views
2

以前はミーティングプランナーアプリに関する質問と、配列内の特定のエントリを削除する方法について質問しました。誰かが、通常の配列ではなく、ArrayListを使用するという興味深い提案をしました。私はArrayListを学ぼうとしていますが、良い結果は得られません。 ToStringメソッドを正しく動作させて、それをテキストファイルに書き込むことができません。ArrayListを区切られたテキストファイルに変換する

私は、3つの重要な分野があります。

  • デーはmonthcalendar1.selectionend
  • のToD回のコンボボックス(cmbTime.text)で選択されているものですされているものである
  • 予定はである何でもあります予約記述のテキストボックスフィールド(txtAPPT.text)

私の計画では、これらの3つのフィールドのそれぞれに、ArrayListに独自のエントリを持たせることですが、保存時にこれらの3つのフィールドは、各予定の行にコンマで区切られています。もちろん、テキストが読み込まれると、テキストを元に戻す必要があります。誰かが正しい方向に私を指すことができるか、これについてArrayListで行くための他の方法がありますか?

答えて

0

これらの3つのフィールドをカプセル化するクラスを作成し、コンマ区切り形式で出力するToStringメソッドを定義します。次に、このクラスにSharedメソッドを渡して、コンマで区切られた文字列を解析してオブジェクトに戻すこともできます。

ArrayListはこのクラスのオブジェクトを保持し、1行に1つずつ出力します。

0

3つのデータフィールドのホルダーとしてクラスの構造体を使用することをお勧めします。 ToString()をオーバーライドして、必要な方法でデータを出力することができます。文字列(テキスト行を読む)を指定してデータメンバーを初期化する関数を追加できます。

ArrayList(または、好ましくはList<YourHolderClass>)まで、単純なfor/foreachループを実行して、各holder要素に対してToStringを呼び出すことができます。結果を1行ずつファイルに書き込む

これは適切な方向にあなたを指し示すでしょう。

2

私はarraylistの代わりに、データを格納するクラスの一般的なリストを使用することをお勧めします。カンマで区切られたデータの場合は、クラスの.ToString()関数をオーバーライドして、カンマで区切ってフィールドを返します。区切り文字列を読み込んでクラスに戻す構文解析関数を構築するだけで、すべての設定が完了します。

Public Overrides Function ToString() As String 
     Return Day & ',' & ToD & ',' & Appointment 
End Function 

ファイルをカンマ区切りにする必要がない場合は、XMLシリアル化を使用してファイルに保存することを検討する必要があります。

関連する問題