Dim newfile As New List(Of String)
创新互联公司长期为上千多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为牡丹企业提供专业的网站设计、成都做网站,牡丹网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。
For Each line As String In System.IO.File.ReadAllLines("TextFile1.txt")
If Not line.StartsWith("3") Then newfile.Add(line)
Next
System.IO.File.WriteAllLines("TextFile1.txt", newfile)
建个集合,用System.IO.File的ReadAllLines读出所有内容,逐个判断,如果是需要的加入集合,如果是要删除的什么都不做,最后用WriteAllLines写入即可。
这里说明一下,上面那个代码是用来删除所有以3开头的文本行。
不是有两个换行符,而是因为“回车换行符”是由两个特殊字符构成的,一个是回车符(Chr(13),常数为vbCr),一个是换行符(Chr(10),常数为vbLf),如果你只按回车符来分割成数组,那么最后就会多出一个换行符,这个字符会被VB自动解析为回车换行符。
应该把 AA = Split(Text3, Chr(13)) 改为 AA = Split(Text3, vbCrLf) ,这样就没问题了。
下面是另一种实现方法:
Private Sub Command1_Click()
Dim AA() As String
AA = Split(Text3, vbCrLf)
For i = 0 To UBound(AA)
AA(i) = Text1 AA(i) Text2
Next
Text3 = Join(AA, vbCrLf)
End Sub
思路与方法:
1,一行为读取单位,读取并保存到数组。
2,逆序循环,可以获得末尾空白行数。
3,以行为写单位,写入到文件。
如果只是末尾的空行,直接用Trim方法就可以了
Dim str As String = My.Computer.FileSystem.ReadAllText("d:\text.txt").Trim
'上面的d:\text.txt文件中末尾有很多空行,用了Trim方法后就把后面的空行都去除了
MsgBox(str)'这里可以看到