tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: 文字列操作
投稿日: 2008/07/03(Thu) 22:33
投稿者Starfish

> 「文字(2moji)文字列(12moji)」から
> ()で囲まれた文字列(2moji)(12moji)
> を(0002moji)(0012moji)にしたい
> 場合はどうすれば良いでしょうか?
> (数値の部分を4桁にしたい)

 そのまま、プログラムするとこんな感じですか

Private Sub Command1_Click()
Dim strInput        As String       ' 入力文字列
Dim strOutput       As String       ' 結果
Dim lngStart        As Long         ' "(" の位置
Dim lngEnd          As Long         ' ")" の位置
Dim lngNumCount     As Long         ' カッコの次の数字の桁数
Dim strNumber       As String       ' 数字チェック中の文字

    strInput = "文字(2moji)文字列(12moji)"
    
    lngStart = InStr(1, strInput, "(")
    While lngStart > 0
        lngEnd = InStr(lngStart + 1, strInput, ")")
        If lngEnd > 0 Then
            ' カッコの次の数字の桁数をカウント
            lngNumCount = 0
            strNumber = Mid$(strInput, lngStart + lngNumCount + 1, 1)
            While strNumber >= "0" And strNumber <= "9"
                lngNumCount = lngNumCount + 1
                strNumber = Mid$(strInput, lngStart + lngNumCount + 1, 1)
            Wend
            ' 結果に追加
            If lngNumCount < 4 Then
                strOutput = strOutput & "(" & String(4 - lngNumCount, "0") & Mid$(strInput, lngStart + 1, lngEnd - lngStart)
            Else
                strOutput = strOutput & Mid$(strInput, lngStart, lngEnd - lngStart + 1)
            End If
            lngStart = InStr(lngEnd + 1, strInput, "(")
        Else
            ' 右カッコなし
            lngStart = 0
        End If
    Wend
    
    Label1.Caption = strOutput
    
End Sub

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。