VB2005 配列から要素を検索する方法
VB2005入門者です。
配列の中要素を検索し、一致すれば処理を行うというプログラムを組みたいのですがうまくいきません。
1列目hoge_nameと2列目hoge_noが既に配列に代入してあり
0列目 POINT と1列目hoge_name[AやB]と2列目hoge_no[A00~A03]が一致した場合、3列目のhoge_id(0)からhoge_id(17)に格納したいのです。
hoge.txtは
BEBE,A,A00 ,ABC
POINT,A,A00 ,ABC
POINT,A,A01 ,DEF
POINT,B,A02 ,ABC
ETC,A,A03 ,GHI
POINT,B,A03 ,GHI
POINT,A,A03 ,GHI
といった感じで、スペースが不特定数混じったカンマ区切りテキストです。
以下で実行すると6行目の3列目でA04を探してしまい、6行目の情報をとってくれません。
hoge_no配列に含まれる文字列から検索し、一致した場合に処理できれば解決するのでは、と思いましたが。Allay.indexOfを試したりしましたがうまくいきませんでした。アドバイス頂きたいのでどなたかよろしくお願いします。
Dim reader1 As New System.IO.StreamReader(geo_name, System.Text.Encoding.Default)
Dim i As Long = 0
Dim j As Long
Dim answer() As String
ReDim answer(0 To 0)
Do Until reader1.EndOfStream
line = reader1.ReadLine()
If (line.Contains("POINT")) Then
field = line.Split(",")
answer(i) = Trim(field(1)) + "," + (field(2).Trim) + "," + (field(7))
If (field(1).Trim = hoge_name(i) = True And field(2).Trim = hoge_no(i)) = True Then
hoge_id(i) = field(7)
i = i + 1
ReDim Preserve answer(0 To i)
ReDim Preserve hoge_id(0 To i)
End If
End If
Loop
For j = 0 To UBound(answer, 1) - 1
reader.Close()
Next
補足
タイトルが悪いのかもしれませんが、要素の数ではなく、最後の添え字を取得したいのです。