VB.NETでアプリケーションの設定等をテキストに保存しているのですが。
ex..
do
print(Flag & vbtab & "aaa" & vbtab & "bbb" & vbtab & "ccc")
Flag += 1
loop until Flag = 5
このテキストファイルから0行目のbbbやcccを取り出したい時はどの様な方法が考えられますか?
lineinputで読み込みinstrじゃ2つ目以降見つけられない、
regexのmatchなど試しましたが・・・お願いします。
私はVB.NETを見たことすらないので解りませんが、
VB6では
Split関数/Join関数で配列化して制御するのが早いかもしれません。
C言語では
strtokでぶん回すのが基本かとおもいます。
.NETで該当する項目がないか調べてみて下さい。
Regexも試されたとありますが・・・
matchではなく・・・
Dim Flag As Integer = 0
Dim sw As StreamWriter = New StreamWriter(Application.StartupPath + "\TEST.CSV", False)
Do
sw.WriteLine(Flag.ToString + vbTab + "aaa" + vbTab + "bbb" + vbTab + "ccc")
Flag += 1
Loop Until Flag = 5
sw.Close()
Dim rg As Regex = New Regex(vbTab)
Dim sz() As String
Dim txt As String
Dim sr As StreamReader = New StreamReader(Application.StartupPath + "\TEST.CSV")
Do
txt = sr.ReadLine
If txt <> "" Then
sz = rg.Split(txt)
If sz.Length > 0 Then
For Each txt In sz
Debug.WriteLine(txt)
Next
End If
End If
Loop While txt <> ""
sr.Close()
こんなかんじではどうでしょうか?
以上。
>岡田 之仁
こんなのに答えてるヒマがあるなら早くこれに答えてやれよ
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200401/04010144.txt
わかんねーんなら(・∀・)カエレ
以上。
ありがとうございました。
Public Function ScanTab(ByVal Str As String, ByVal num As Integer) As String
Dim RegEx As Regex = New Regex(vbTab)
If RegEx.Match(Str, vbTab).Success Then
Str = Str.Trim
Dim SecArray() As String
SecArray = RegEx.Split(Str)
If SecArray.Length >= num Then
Return SecArray(num)
End If
Return ""
Else
Return ""
End If
End Function