2012-05-02 7 views
0

こんにちは、私は小さなプロジェクトをやって、今は途中で立ち往生しています。2つの/複数の列の配列の値を比較し、Visual Basicの重複なしでリストボックスに追加する方法

プログラムは、シーケンシャルテキストファイルを読み込み、構造体の配列/配列に読み込むことです。

データ情報は、この(サンプル)のようなものです:DATA.TXTファイルに

ID | Name | Type 
1 | Cat  | Animal 
2 | Dog  | Animal 
3 | Parrot | Bird 
4 | Tuna | Fish 
5 | Tiger | Animal 
6 | Sparrow | Bird 

サンプル・データは次のようになります。

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を通過します。
スプリット使用して文字列:インデックス0はIDです

ReadArrayString(0) 
ReadArrayString(1) 
ReadArrayString(2) 

DataString.Split(New Char() {";"c}) 

パスは、インデックス1は名前であり、そしてインデックス2は、その後、私はロードタイプ

です重複のない配列からのドロップダウンコンボボックスメニューにタイプします。このように:

If TypeComboBox.FindString(ReadArrayString(2)) < 0 Then 
    TypeComboBox.Items.Add(ReadArrayString(2)) 
End If 

Now TypeComboBoxをクリックすると、次のリストのみのドロップダウンメニューが表示されます。この後

Animal 
Bird 
Fish 

、動物の種類を選択したときに/それが唯一のListBoxに動物の種類のIDと名前を追加する必要がありますコンボボックスのドロップダウンメニューからクリックされました。

擬似コードは次のようになりますことがあります。

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列のみ/配列から負荷項目を把握だけしました。 しかし、ある列/配列の値を別の列/配列と比較してリストボックスにロードすることはできません。私は、コード内で一致する値をハードコードしたり、書き込んだりしたくない。私が欲しいのは、Arrayを使うことです。

どのようなヘルプも素晴らしいでしょう。

私の説明が悪い場合は申し訳ありません。上記の擬似コードがあなたに私の問題の理解を与えてくれることを願っています。

答えて

0

私はあなたの質問を誤解していない限り、あなたがしようとしていることに対して、このような何かがうまくいくはずです。

For Each row as String() In TwoDArray 
    If row(2) = TypeComboBox.Text Then 
     listbox.Items.Add(row(1)) 
    End If 
Next 
関連する問題