1、vb无法直接删除文本文件中的某一行。
青河网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。成都创新互联公司从2013年开始到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司。
2、要想做到删除文本文件中的某一行,必须一行行读并进制连接,读要删除的行越过连接,继续连接其它行,直到文件结束。
3、把连接的新串,重新保存为原文件名即可实现所要功能。
方法先按行读取,并进行筛选,然后再写回到文件。
一行一行读取文本文件的例子:
Imports System.IO
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim r As New StreamReader(Application.StartupPath "\ABC.txt", System.Text.Encoding.Default) '用StreamReader打开文本文件
Dim s As String
TextBox1.Text = ""
Do While r.Peek -1 '是否到文件尾
s = r.ReadLine '从打开的文件中读取一行内容
TextBox1.Text = TextBox1.Text s vbCrLf '添加到文本框TextBox1.Text的后面并回车
Loop
r.Close() '关闭对象
End Sub
End Class
写文本文件的例子:
Imports System.IO
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'创建FileStream对象
Dim w As New FileStream(Application.StartupPath "\ABC.txt", FileMode.Create)
'创建BinaryWriter对象
Dim b_Write As BinaryWriter = New BinaryWriter(w, System.Text.Encoding.UTF8)
b_Write.Write(TextBox1.Text)
b_Write.Close()
w.Close()
End Sub
End Class
给你个思路,具体算法自己写吧。
1、打开文件,
2、按行读入文件内容,找到你的指定行
3、对指定行中的内容进行操作;
4、将内容再写回文件。
Dim newfile As New List(Of String)
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开头的文本行。