vb 删除指定的txt中的内容-疑惑

在做删除txt文件中的内容是出现以下2个问题,请指教一下

这里我要删除123.txt中的4,但是里面有2个4,我希望按一次删除的文件未尾往上算起的第一个4,再按一次再往上一个4,依次类推。
现在我删除的123.txt中全部4,以下是代码:
Private Sub Form_Load()Open "d:\123.txt" For Input As #1 Dim st As String Dim qe As String Do Line Input #1, st If st <> "" Then qe = qe + vbCrLf + st End If Loop Until EOF(1) Text1.Text = qeClose #1End Sub
Private Sub Command1_Click()Open "d:\123.txt" For Input As #1 Dim st As String Dim qe As String Do Line Input #1, st If st <> Text2.Text And st <> "" Then qe = qe + vbCrLf + st End If Loop Until EOF(1) Text1.Text = qeClose #1
Open "d:\123.txt" For Output As #1 Seek #1, 1 Print #1, Text1.TextCloseEnd Sub
;上面的问题是:1、在text1.text中第一行总是出现一个空行
2、在删除时把text2.text中相同的全部删了。不符合题意。
请大佬们多指教一下,在每个新加或修改的地方用注释解释一下,万分感谢。

Private Sub Form_Load()
Dim st As String
Dim qe As String
Open "d:\123.txt" For Input As #1
Do Until EOF(1)   '要先判断文件是否结束,否则遇到空文件下面就出错了
    Line Input #1, st
    If st <> "" Then
        qe = qe & st
        If Not EOF(1) Then qe = qe & vbCrLf  '回车要放到后面,这样开头就不会出现空行了
    End If
Loop
Text1.Text = qe
Close #1
End Sub

Private Sub Command1_Click()
Dim st() As String
Dim qe As String
Dim i As Integer
st = Split(Text1.Text, vbCrLf)  '文本框内容按回车符分割为数组
For i = UBound(st) To 0 Step -1  '数组从后往前遍历
   If st(i) = Text2.Text Then    '如果是要删除的内容
      st(i) = ""                 '就设为空白
      Exit For                   '然后就退出,这样剩下的内容就不会被删除了
   End If
Next
qe = Join(st, vbCrLf)            '数组重新合并为字符串
qe = Replace(qe, vbCrLf & vbCrLf, vbCrLf) '删除空行
Text1.Text = qe
Open "d:\123.txt" For Output As #1
Print #1, Text1.Text
Close
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-02-13
给你个思路,有两种方法可以处理。
第一种
首先将文本一次性读入。然后使用spilt(xx,vbCrLf)将读入的文本分割为字符串数组。在数组里面进行循环判断。
第二种
也是先将文本一次性读入,用instrrev函数判断要查找的字符串所在的位置,然后将其删除。
相似回答