那位大哥能帮下小弟偶!偶有个难题实在解决不了了!

lz198064 2004-04-12 04:49:38
Private Sub Command1_Click()
Dim str As String
Open "D:\你好.txt" For Output As #1
Open "D:\text.txt" For Binary As #2
str = Space(FileLen("D:\text.txt"))

Get #2, , str
Print #1, str

Close #1
Close #2
End Sub

Private Sub Command2_Click()

Open "D:\你好.txt" For Output As #1
Print #1, "你呢?"
Close #1

End Sub

我的text.txt中的数据有很多字符比如《KLJFDASLJF;ASJ(KFSDLJ)FJALFJALK; J(FKDSJAFLJA)》在第一个按扭点击后都复值到《你好.txt》中去了

我想在第2个按扭点击后执行查找《你好.txt》中的小括号然后把小括号里的字符用《你呢!》来替换掉!帮帮我啊高手!

...全文
65 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lionking1027 2004-04-16
  • 打赏
  • 举报
回复
up
shortppsy 2004-04-16
  • 打赏
  • 举报
回复
跳过.........
TBNTB 2004-04-15
  • 打赏
  • 举报
回复
該說的都被人說了﹐只有頂﹗
lilinjian2001 2004-04-15
  • 打赏
  • 举报
回复
up
tangxiaosan001 2004-04-15
  • 打赏
  • 举报
回复
等待
flc 2004-04-15
  • 打赏
  • 举报
回复
关注
射天狼 2004-04-15
  • 打赏
  • 举报
回复
这个问题看过好几遍了,还不结贴!?
lz8064 2004-04-13
  • 打赏
  • 举报
回复
非常谢谢各位大哥!小弟偶这里真的谢谢你们了!
northwolves 2004-04-12
  • 打赏
  • 举报
回复
大家为你辛苦写的代码你都视而不见,并不复杂的问题,动动脑袋不就得了,何必苦苦相求?
http://expert.csdn.net/Expert/topic/2953/2953579.xml?temp=.3155939


Function tihuan(ByVal x As String, splitA As String, SPLITB As String) As String
Dim TEMP, I As Long
tihuan = ""
x = Replace(x, SPLITB, splitA)
TEMP = Split(x, splitA)
For I = 1 To UBound(TEMP) Step 2
TEMP(I) = "(《你呢!》)"
Next
tihuan = Join(TEMP, "")
Set TEMP = Nothing
End Function

Private Sub Form_Load()
Dim x As String
x = "《KLJFDASLJF;ASJ(KFSDLJ)FJALFJALK; J(FKDSJAFLJA)》《KLJFDASLJF;ASJ(KFSDLJ)FJALFJALK; J(FKDSJAFLJA)》"
Text1.Text = x
Open "D:\text.txt" For Binary As #1
Put #1, , x
Close #1
End Sub

Private Sub Command1_Click()

Dim str As String

Open "D:\text.txt" For Binary As #2
str = Space(FileLen("D:\text.txt"))

Get #2, , str
MsgBox str
Close #2
str = tihuan(str, "(", ")")
MsgBox str
Open "D:\你好.txt" For Binary As #1
Put #1, , str
Close #1
End Sub
qiqunet 2004-04-12
  • 打赏
  • 举报
回复
' Try
Private Sub Command1_Click()
Dim str As String
Open "D:\你好.txt" For Append As #1 '在"D:\你好.txt"后面追加文件
Open "D:\text.txt" For Input As #2 '以读入的方式打开
Do While Not EOF(2)
Line Input #2, str '把text.txt里的内容逐行地添加到"你好.txt"
Print #1, str
Loop
Close #1
Close #2
'如果你不是在后面追加数据而是完全覆盖D:\你好.txt的话,用FileCopy "D:\text.txt" "D:\你好.txt" 替换上面内容会更简单些
End Sub

Private Sub Command2_Click()
Dim str1 As String * 1, str2 As String, findLeft As Boolean
Dim strStart As Integer, strLen As Integer, i As Integer
Open "D:\你好.txt" For Binary As #1 '以二进制的方式读取文件
strLen = FileLen("D:\你好.txt")
For i = 1 To strLen
Get #1, i, str1
If str1 = "(" Then
strStart = i '记录"("的位置
findLeft = True '发现"("号
End If
If str1 = ")" And findLeft = True Then
findLeft = False '设置为未发现"("号
str2 = Space(strLen - i)
Get #1, i + 1, str2 '将")"后面的内容读入到临时字符串中
Put #1, strStart, "(你好!)" & str2 '更改"("开始的内容
End If
Next
Close #1
End Sub

啊维 2004-04-12
  • 打赏
  • 举报
回复
..........
csdnmzk 2004-04-12
  • 打赏
  • 举报
回复
思路:
先把text中的内容读入到一个字符串,可以用TextStream 对象操作,更加快
dim tempstr as string

Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("D:\你好.txt", True)
tempstr=a.readall
a.Close

然后用substr找"("和")"
求出位置后用replace函数代替
把tempstr写入另一个TEXT文件(可以用上述语句,把readalL改为:write就可以了
大概思路如此




daisy8675 2004-04-12
  • 打赏
  • 举报
回复
暈,三貼,沒懂意思
Wenking003 2004-04-12
  • 打赏
  • 举报
回复
这是我的思路,不是很严密,如只有左括号,没有右括号等情况没有考虑,你可以完善,仅供参考。
Private Sub Command1_Click()
Dim str As String
Dim s1 As String

Open "D:\你好.txt" For Binary As #1
i = LOF(1)
str = Space(i)
Get #1, , str
Close #1

s1 = ""
For j = 1 To i
If Mid(str, j, 1) = "(" Then
s1 = s1 & "(《你呢!》)"
While (Mid(str, j, 1) <> ")" And j <= i)
j = j + 1
Wend
Else
s1 = s1 & Mid(str, j, 1)
End If
Next

Open "D:\你好.txt" For Output As #1
Print #1, str
Close #1
End Sub
lz198064 2004-04-12
  • 打赏
  • 举报
回复
小括号里的东西不是确定的啊!所以必须先找到小括号然后才能修改小括号里的东西啊!
supergreenbean 2004-04-12
  • 打赏
  • 举报
回复
如果你是要把所有内容复制过去就直接filecopy text.txt,你好.txt好了。
或者你直接用open打开text.txt,读进来所有内容,用replace(sContent,"KFSDLJ","你呢"),搞完后把sContent存为你好.txt

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧