所谓删除文本内容,实际上是重写文件。你逐行读出文件,保存到比如 ListBox 中,然后删除文件,创建新文件,写 n - 1 行。如果 ListBox 中只有一行,则删除后不必创建,直接给提示。
解决方案 »
- 帖子分数,什么级别的时候,才能上200?
- 请教下怎样实现列循环操作(循环问题)vb菜鸟。
- VB6.0在Vista下面运行有问题
- 为什么说imageList在使用之前必须初始化...
- 高分请教!VB和ACCESS中的时间格式问题,两者有何区别。
- vb中选择了多个文件怎么发送至客户端
- 紧急请教一个VB和VC的DLL问题:VC->call VB DLL->call VC DLL
- 帮帮忙!!!请问各位我在 Form_Load()连接数据库 程序执行时一定时间段 进行一次select 但现在有问题 如果执行时与数据库断开就无法查了
- 关于WSH的
- 请问如何是使用dim a as new mscomm 的事件 onComm()?
- vb datagrid 控件
- Winsock与DoEvents相关问题
Dim strLine As String
Dim i As Long
Open App.Path & "\test.txt" For Input As #1
List1.Clear
Do Until EOF(1)
Line Input #1, strLine
List1.AddItem strLine
Loop
Close #1 Kill App.Path & "\test.txt"
If List1.ListCount > 1 Then
Open App.Path & "\test.txt" For Output As #1
For i = 0 To List1.ListCount - 2
Print #1, List1.List(i)
Next i
Close #1
Else
MsgBox "文件已经删空。"
End If
End SubPrivate Sub Form_Load()
List1.Visible = False
End Sub
想再问下 如果不借助于listbox,直接利用文件处理 可以实现功能吗?
2 用 InStrRev 查出倒数第一个非空行的回车换行符,用 Left 函数截取此换行符之前的内容,写入新文件。p = InStrRev(strFileData, vbCrLf) - 1If p < 0 Then
Msgbox "Empty File!"
Exit Sub
End If
If p = Len(strFileData) - 2 Then p = InStrRev(strFileData, vbCrLf, p - 1) - 1If p < 0 Then
Msgbox "Empty File!"
Exit Sub
End IfstrFileData = Left(strFile, p)Open App.Path & "\newfile.txt" For Output As #1
Print #1, strFileData
Close #1
这种方法的一个变体是用二进制方式打开文件,Get 数据到一个根据文件长度 Redim 的 Byte 数组中。然后,从后到前搜索连续的 &HD 和 &HA(回车换行符)。找到后,ReDim Preserve 这个数组到不包含这个回车换行符。再将数据 Put 到新文件中。(不要二进制写回源文件,那样的话,后面的东西依然保留着。)实际上,关键的信息是有多少行,或者最后一行在哪里。抓住了关键,其他问题就都不是问题了。