Replace  替换遇到点问题
Replace 查了下共6个参数。一直以为是3个- -
现在替换的时候出了点问题,主要是字符串中 有相同的数字。(比如10 和10.9啊)
所以我在字符串中查找数字的时候,把位置也记录了下来,存进数组中了代码如下
.......
..........
Next i
''远程和本地数据分析完成 开始更新
For i = 2 To (acount - 2)
nn = bn(n - 1)
strb = Replace(strb, b(i), a(i), nn, 1, 0)
Next i
Text1.Text = strba()  b() bn() 均为一维数组
本来没  “nn = bn(n - 1)”
是放在REPLACE里面的发现没用- -  就瞎试了下

解决方案 »

  1.   

    strb = Replace(strb, b(i), a(i), nn, 1, 0) 
    这一句换成:strb = Replace(strb, cstr(b(i)), cstr(a(i)), nn, 1, 0) 
    试一下
      

  2.   

    还是不能替换...
    我把NN  换成数字5  
    可以替换
    但TEXTBOX 中的数据少了3行
      

  3.   

    你这些a()  b() bn() 数组是什么类型
    如果不是字符串类型的话
    可能执行默认转换的时候有前置空格
      

  4.   

    业余的 代码很乱 呵呵
    Private Sub Command1_Click()
    On Error Resume Next
    Dim a()     As String
    Dim b()     As String
    Dim an()    As Integer
    Dim bn()    As Integer
    Dim nn    As Integer
    Dim acount     As Integer
    Dim data_n As Integer
    Dim i     As Integer
    Dim stra     As String
    Dim strb     As String
    Dim a_num     As Boolean
    acount = 1
            Dim fso As New FileSystemObject
            Dim cFils As Object   ''读取远程文件
                Set cFils = fso.OpenTextFile("D:\浦发\ccc\人民币汇率2.TXT", ForReading)
                Text1.Text = ""
                Text1.Text = Text1.Text & cFils.ReadAll & vbCrLf
                stra = Text1.TextReDim Preserve a(1 To acount)
    ReDim Preserve an(1 To 100)
    For i = 1 To Len(stra)
            If (Asc(Mid(stra, i, 1)) >= 48 And Asc(Mid(stra, i, 1)) <= 57) _
                    Or Asc(Mid(stra, i, 1)) = 46 Then
                  a(acount) = a(acount) & Mid(stra, i, 1)
                  If a_num = False Then
                        a_num = True
                  End If
            Else
                  If a_num = True Then
                        acount = acount + 1
                        ReDim Preserve a(1 To acount)
                        a_num = False
                  End If
            End If
    Next i
    data_n = acount - 3
    ''For i = 1 To (acount - 2)
    ''Picture1.Print a(i) & " ";
    ''Print ""
    ''Next i
    ''操作本地文件
    acount = 1
                Set cFils = fso.OpenTextFile("D:\浦发\ccc\复件 人民币汇率2.TXT", ForReading)
                Text1.Text = ""
                Text1.Text = Text1.Text & cFils.ReadAll & vbCrLf
                strb = Text1.TextReDim Preserve b(1 To acount)
    ReDim Preserve bn(1 To 100)
    For i = 1 To Len(strb)
            If (Asc(Mid(strb, i, 1)) >= 48 And Asc(Mid(strb, i, 1)) <= 57) _
                    Or Asc(Mid(strb, i, 1)) = 46 Then
                  b(acount) = b(acount) & Mid(strb, i, 1)
                  If a_num = False Then
                        a_num = True
                  End If
            Else
                  If a_num = True Then
                        bn(acount) = i
                        acount = acount + 1
                        ReDim Preserve b(1 To acount)
                        a_num = False
                                   
                                  
                  End If
            End If
    Next i
    data_n = acount - 3
    For i = 1 To (acount - 2)
    Picture1.Print b(i) & "行数" & bn(i) & " ";
    Print
    Next i
    ''远程和本地数据分析完成 开始更新
    For i = 2 To (acount - 2)
    nn = bn(n - 1)
    strb = Replace(strb, CStr(b(i)), CStr(a(i)), CInt(nn), 1, 0)
    Next i
    Text1.Text = strb
    End Sub
      

  5.   

    主要就是一个TXT 里面的数字更新问题- -
    把一个TXT的数据更新到另一个TXT中
    两个TXT 基本一样  只是空格有多有少
      

  6.   

    Replace函数的返回值是一个字符串,但是,其中从start所指定的位置开始,到expression字符串的结尾处的一段子字符串已经发生过替换动作。并不是原字符串从头到尾的一个复制。
    例如:
    a="abacd"
    a=replace(a,"a","z",3)
    那么a="zcd"不是 Replace 开始位置不能用变量改用Mid 语句
    Mid(strb, nn , 1) = a(i)
    自己调试吧。