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里面的发现没用- - 就瞎试了下
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里面的发现没用- - 就瞎试了下
这一句换成:strb = Replace(strb, cstr(b(i)), cstr(a(i)), nn, 1, 0)
试一下
我把NN 换成数字5
可以替换
但TEXTBOX 中的数据少了3行
如果不是字符串类型的话
可能执行默认转换的时候有前置空格
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
把一个TXT的数据更新到另一个TXT中
两个TXT 基本一样 只是空格有多有少
例如:
a="abacd"
a=replace(a,"a","z",3)
那么a="zcd"不是 Replace 开始位置不能用变量改用Mid 语句
Mid(strb, nn , 1) = a(i)
自己调试吧。