こんにちは、私は小さなプロジェクトを行っていますが、今は途中で立ち往生しています。
プログラムは、シーケンシャル テキスト ファイルを読み取り、それを構造体の配列/配列にロードします。
データ情報は次のようになります (サンプル)。
ID | Name | Type
1 | Cat | Animal
2 | Dog | Animal
3 | Parrot | Bird
4 | Tuna | Fish
5 | Tiger | Animal
6 | Sparrow | Bird
DATA.txt ファイルのサンプル データは次のようになります。
1;Cat;Animal
2;Dog;Animal
3;Parrot;Bird
4;Tuna;Fish
5;Sparrow;Bird
6;Tiger;Animal
これはあくまでサンプルデータで、私のオリジナルデータは以上です。
FileStreamReader を使用して DATA.txt ファイルを開きました。
Dim FileStreamReader As StreamReader = New StreamREader(DATA.txt)
リスト内のすべての要素を読み取り、 を通過しReadArrayString
ます。
以下を使用して文字列を分割します。
DataString.Split(New Char() {";"c})
通り抜ける
ReadArrayString(0)
ReadArrayString(1)
ReadArrayString(2)
インデックス 0 は ID、インデックス 1 は名前、インデックス 2 はタイプです。
次に、ドロップダウン コンボボックス メニューの型を配列から重複なく読み込みます。このような:
If TypeComboBox.FindString(ReadArrayString(2)) < 0 Then
TypeComboBox.Items.Add(ReadArrayString(2))
End If
TypeComboBox をクリックすると、次のリストのみのドロップダウン メニューが表示されます。
Animal
Bird
Fish
この後、コンボボックスのドロップダウン メニューから動物の種類を選択またはクリックすると、動物の種類の ID と名前のみが ListBox に追加されます。
擬似コードは次のようになります。
If Animal is selected/clicked from TypeComboBox then
Add Cat into listbox
Add Dog into listbox
Add Tiger into listbox
Else If Bird is selected then
Add Parrot into listbox
Add Sparrow into listbox
Else If Fish is selected then
Add Tuna in to listbox
End If
1つの列/配列から重複せずにコンボボックスにアイテムをロードすることだけを理解しました。しかし、ある列/配列の値を別の列/配列と比較してリストボックスにロードする方法がわかりません。コード内に一致する値をハードコードしたり、書き込んだりしたくありません。私が欲しいのは、配列を使用することです。
どんな助けでも素晴らしいでしょう。
説明が下手で申し訳ありません。上記の疑似コードで、私の問題をある程度理解できることを願っています。