行単位での読み込み、編集

タグの編集
投稿者 やまと  (社会人) 投稿日時 2009/5/13 14:40:18
初心者です。VB2008Expressを使用しています。下記のような状況で躓いています。
ヒント等ありましたらよろしくお願いします。


フォーム上にはテキストボックスとボタンがあります。
テキストボックスに読み込んだテキスト(データは全て半角です)を行単位で処理したい。
処理:
行頭に数字があった場合はその行の文字数を数える。
文字数が70に満たない場合
行末に文字数が70になるまで半角スペースを加える。



 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim StrPad As Long

        Dim rs As New System.IO.StringReader(TextBox1.Text)

        While rs.Peek() > -1
            Dim m As Match = Regex.Match((Strings.Left(rs.ReadLine(), 1)), "^[\+\-]?\d+$")        '
            If m.Success = True Then
                'Moji su ga 70 yori nanmoji sukunaika kakunin
                StrPad = 70 - rs.ReadLine().Length
                If StrPad > 0 Then

                    ここの処理がわかりません。Readlineを使ってしまうと
          文字の編集は出来ないのでしょうか?

                End If
            Else
               
            End If



        End While

        rs.Close()

    End Sub
投稿者 cupid  (社会人) 投稿日時 2009/5/13 19:39:44
(1)  Dim m As Match = Regex.Match((Strings.Left(rs.ReadLine(), 1)), "^[\+\-]?\d+$")        '
     If m.Success = True Then
      'Moji su ga 70 yori nanmoji sukunaika kakunin
(2)    StrPad = 70 - rs.ReadLine().Length

(1)と(2)で2行読まれるから、しかも(2)で読んだ内容は捨てられるから、まずいですね。
一度、文字変数に代入して置くべきでしょう。

何かのサンプルコードを参考にしているのかもしれませんが、ステートメントの一語一語を
理解しないと発展しませんよ。
投稿者 やまと  (社会人) 投稿日時 2009/5/14 11:55:16
cupidさん
ありがとうございます。
おっしゃる通り大半がコピペでやっているのでわかってない部分もあります。
指摘されたところを直して、空白はpadrightというのを使って処理するようにしました。
ありがとうございました。
投稿者 (削除されました)  () 投稿日時 2009/5/15 06:19:56
(削除されました)
投稿者 (削除されました)  () 投稿日時 2009/5/16 03:24:17
(削除されました)