2012-05-02 6 views
0

안녕하세요, 저는 작은 프로젝트를 수행하고 있습니다. 이제는 중간에 들러 있습니다.2/다중 열 배열의 값을 비교하고 Visual Basic에서 중복없이 목록 상자에 추가하는 방법

이 프로그램은 순차적 텍스트 파일을 읽고 배열/구조체 배열로로드하는 것입니다.

데이터 정보는이 (샘플)과 같다 :

1;Cat;Animal 
2;Dog;Animal 
3;Parrot;Bird 
4;Tuna;Fish 
5;Sparrow;Bird 
6;Tiger;Animal 

이 그냥 샘플 데이터, 내 원래의 데이터로 경우 : data.txt라는 파일에

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

샘플 데이터는 다음과 같습니다 그 이상입니다.

Dim FileStreamReader As StreamReader = New StreamREader(DATA.txt) 

목록의 모든 요소를 ​​읽고 ReadArrayString 통과 :

나는 FileStreamReader를 사용하여 데이터 .txt 파일을 공개했습니다.
분할 사용하여 문자열 :

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 

Now 이제 TypeComboBox를 클릭하면 다음 목록 만있는 드롭 다운 메뉴가 표시됩니다. 이 후

Animal 
Bird 
Fish 

는 동물의 종류를 선택하면/다음은 목록 상자에서 동물 형의 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 

나는 밖으로 복제와 콤보 상자에 하나의 열/배열에서로드 항목을 알아 내기 만했습니다. 그러나 한 열/배열의 값을 다른 열/배열과 비교하여 목록 상자에로드하는 것을 알아낼 수는 없습니다. 나는 코드 내에서 일치하는 값을 하드 코드하거나 작성하고 싶지 않다. 내가 원하는 것은 배열을 사용하는 것이다.

도움이 될 것입니다.

내 설명이 불량하다면 죄송합니다. 위 의사 코드가 내 문제에 대한 이해를 줄 수 있기를 바랍니다.

답변

0

귀하의 질문에 대한 오해가 아닌 한, 귀하가하려는 일에 대해 이와 같은 조치가 필요합니다.

For Each row as String() In TwoDArray 
    If row(2) = TypeComboBox.Text Then 
     listbox.Items.Add(row(1)) 
    End If 
Next 
관련 문제