用 mid 函数应该就可以。

解决方案 »

  1.   

    private function ToStrB(A as string, b as string)
    dim ka as string,kb as string ,kc as string
    ka=mid(a,5,2)
    kb=mid(a,10,1)
    kc=mid(a,13,2)
    if ka="10" then ka="23"
    if kb="D" then kb="hg"
    if kc=".T" then kc=".D"
    ToStrb=left(a,4) & ka & mid(a,7,3) & kb & mid(a,11,2) & kc & right(a,1)
    end function
      

  2.   

    對不起,寫錯了一點,那兩個字符("T" 和 "D") 是小寫的
    如下:
    "????10???D??.t*"    ==>> "????23???hg??.d*"
      

  3.   

    好像不只吧,你們再仔細看一下喔;里面不只是換了一個,有時是要換多個的呀!要不請你們寫個simple給小生看一下好嗎?小生實在較笨啊!!!
      

  4.   

    private function ToStrB(a as string)
    dim ka as string,kb as string,kc as string
    ka=mid(a,5,2)
    kb=mid(a,10,1)
    kc=mid(a,13,2)
    if ka="10" then ka="23"
    if kb="D" then kb="hg"
    if kc=".t" then kc=".d"
    ToStrB=left(a,4) & ka & mid(7,3) & kb & mid(11,2) & kc & right(a,1)
    end function
      

  5.   

    错了一行:
    ToStrB=left(a,4) & ka & mid(a,7,3) & kb & mid(a,11,2) & kc & right(a,1)
      

  6.   

    Dim a() As String, n As IntegerPrivate Sub Command1_Click()
        For i = 1 To n
            str4 = repl(ByVal a(i), "????10???D??.T*", "????23???hg??.D*")
            Print #1, str4
        Next i
        Close
        MsgBox "ok"
    End SubPrivate Sub Form_Load()
        Open "c:\temp1.txt" For Input As #1
        n = 0
        Do While Not EOF(1)
           n = n + 1
           ReDim Preserve a(n)
           Input #1, a(n)
        Loop
        Close
        Open "c:\temp2.txt" For Output As #1
    End Sub
    Function repl(ByVal str1 As String, str2 As String, str3 As String)
        lenstr2 = Len(str2)
        lstr = ""
        p = 1
        For j = 1 To lenstr2
            x = Mid(str2, j, 1)
            y = Mid(str1, j, 1)
            If x = "?" Then
                lstr = lstr & y
                p = p + 1
            ElseIf x = "*" Then
                Exit For
            Else
                Do
                    z = Mid(str3, p, 1)
                    If InStr("?*", z) = 0 Then
                        lstr = lstr & z
                        p = p + 1
                    Else
                        Exit Do
                    End If
                Loop
            End If
        Next j
        If j <= lenstr2 Then
            lstr = lstr + Right(str1, Len(str1) - j + 1)
        End If
        repl = lstr
    End Function
    伧促之间写出的程序不一定最优,但如果对您有所帮助将是我最大的快乐!
      

  7.   

    忘记说明一下,文件c:\temp1.txt中存放的是你需要替代的内容。
    文件c:\temp1.txt中存放的是替代后的内容。
      

  8.   

    to  cool222(天下第一笨) :你的只可以做為一個寫死的表達式啊!如果是動態的就不行了,不過還是非常的感謝你to  cy_nwau(小人物) :可以做到,也蠻好的,不過我還要想一想,能不能再簡化一下
      

  9.   

    ' s 为输入的串, t 为输出的串
    t = Left(s, 4) & "23" & Mid(s, 7, 3) & "hg" & Mid(s, 11, 2) & ".D" & Mid(s, 15)
      

  10.   

    忘了前面加了一个判断语句:If Len(s) < 14 Then Exit Sub
    If Mid(s, 5, 2) = "10" And Mid(s, 10, 1) = "D" And Mid(s, 13, 2) = ".T" Then Exit Subt = Left(s, 4) & "23" & Mid(s, 7, 3) & "hg" & Mid(s, 11, 2) & ".D" & Mid(s, 15)
      

  11.   

    如果有更好的办法,别忘了给我一份:[email protected]