Tab文字

解決


Finel  2004-02-05 01:41:07  No: 111668  IP: [192.*.*.*]

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など試しましたが・・・お願いします。

編集    削除
かな  2004-02-05 01:48:27  No: 111669  IP: [192.*.*.*]

私はVB.NETを見たことすらないので解りませんが、

VB6では
Split関数/Join関数で配列化して制御するのが早いかもしれません。

C言語では
strtokでぶん回すのが基本かとおもいます。

.NETで該当する項目がないか調べてみて下さい。

編集    削除
岡田 之仁  2004-02-05 02:40:29  No: 111670  IP: [192.*.*.*]

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()

こんなかんじではどうでしょうか?

以上。

編集    削除
岡田 之仁  2004-02-05 03:06:09  No: 111671  IP: [192.*.*.*]

>岡田 之仁 

こんなのに答えてるヒマがあるなら早くこれに答えてやれよ

http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200401/04010144.txt

わかんねーんなら(・∀・)カエレ

以上。

編集    削除
Finel  2004-02-05 08:17:08  No: 111672  IP: [192.*.*.*]

ありがとうございました。
    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

編集    削除