| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4642 人关注过本帖
标题:求教删除文本文件的最后一行
取消只看楼主 加入收藏
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:333
专家分:114
注 册:2010-2-17
结帖率:70%
收藏
已结贴  问题点数:20 回复次数:1 
求教删除文本文件的最后一行
A121NA_S05601_40_1.rar (1.71 KB)
      
A121NA_S05601_40_1-目标.rar (1.7 KB)


附件说明:    附件1解压后的文件后缀名虽为dat,内容实为TXT文件。用UltraEdit打开,共有562行。
              附件2是希望达到的效果。
想要达到的效果:查找文件中是否含有“TOTAL PASS”行,如有,MsgBox "已找到",删除该行及以下所有行,用UltraEdit打开,剩有560行(其实就是满足产找条件后,删除最后两行,一行是含有“TOTAL PASS”行,一行是空行。);如没有,MsgBox "没找到",没有其他操作。

现状:    1、“查找文件中是否含有“TOTAL PASS”行”语句不会写,
          2、自己写的删除语句的确是把含有“TOTAL PASS”行删掉了,但是同时把文本中所有空行都删掉了,文件最后还剩两个空行,整个文件内部的格式就变了。

自己写的删除语句如下:
Dim i As Long, s As String
i = FreeFile
Open (Dir1.Path & "\" & File1.FileName) For Input As #i
     s = StrConv(InputB(LOF(i), i), vbUnicode)
Close #i
i = FreeFile
Open (Dir1.Path & "\" & File1.FileName) For Output As #i
     Print #i, Replace(Replace(s, "TOTAL PASS", ""), vbCrLf & vbCrLf, vbCrLf)
Close #i


请各位帮忙    1、“查找文件中是否含有“TOTAL PASS”行”语句怎么写?
              2、删除语句有什么错误?
              3、第一条和第二条如何进行功能合并?
搜索更多相关主题的帖子: 文本文件 
2016-10-05 01:13
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:333
专家分:114
注 册:2010-2-17
收藏
得分:0 
非常感谢 hjxlj 大神和 xiangyue0510 版主的回复!
您两位的详细的回复向我传授了很多有用的知识,可以看出二位是真心无私的、毫无保留的想要帮助一个新手,再次非常感谢!
认真拜读了回复后,我在网络中再次寻找,终想于找到一段源码,经过修改并试用后,能够达到我的使用要求,现把它贴上来,一是向两位大神做一个汇报,二来希望能帮助一些有我同样或类似要求的朋友。
Private Sub Command1_Click()
Dim i As Long, s As String
i = FreeFile
Open "c:\A121NA_S05601_40_1.dat" For Input As #i
     s = StrConv(InputB(LOF(i), i), vbUnicode)
Close #i
If InStr(1, s, "TOTAL PASS") = 0 Then
MsgBox "没找到"
Else
MsgBox "找到了"
F "c:\A121NA_S05601_40_1.dat"
MsgBox "删除了"
End If
End Sub

Sub F(ByVal Path As String)
On Error GoTo eHandler:
Dim Fc As String, Fn() As String, i As Integer
Open Path For Binary As #1
Fc = Space(LOF(1))
Get #1, , Fc
Close #1
Fn = Split(Fc, vbCrLf)
Do Until Fn(UBound(Fn)) <> ""       '删除了最后一行不为空的行——也就是删掉一行有数据的行
ReDim Preserve Fn(UBound(Fn) - 1)
DoEvents
Loop
Do Until Fn(UBound(Fn)) = ""         '删除了最后一行为空的行——也就是删掉一行空行
ReDim Preserve Fn(UBound(Fn) - 1)
DoEvents
Loop
If UBound(Fn) <= 0 Then
Open Path For Output As #1
Print vbNullString
Close #1
Else
ReDim Preserve Fn(UBound(Fn) - 1)
Open Path For Output As #1
For i = 0 To UBound(Fn)
Print #1, Fn(i)
Next
Close #1
End If
Exit Sub
eHandler:
MsgBox "Error # " & Err.Number & " was generated by " & Err.Source & Chr(13) & Err.Description, vbCritical, "Error", Err.HelpFile, Err.HelpContext
Err.Clear
End Sub
2016-10-06 00:38
快速回复:求教删除文本文件的最后一行
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036319 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved