vb.net 如何实现txt内容删除?

2025-03-01 00:28:15
推荐回答(4个)
回答1:

这么菜的问题,分还挺高啊,循环读文件,每次一行,跟你输入的内容比较一样就记录行号并且终止循环,并且新建个文件写入从开头到第(你记录的行号-1)行的内容和(你记录的行号+1)行以后的内容,把源文件删了,把新文件改名为老文件名,不一样就继续循环读取,到最后读完都没有则提示没有这个内容

就这样,具体程序自己写,如果没耐心那就没办法了 学不来编程了

回答2:

Dim txt As String = My.Computer.FileSystem.ReadAllText("F:\此时.txt", System.Text.Encoding.Default)
Dim save As String = ""
Dim line() As String = txt.Replace(vbCr, "").Split(vbLf)
Dim no As Boolean = False
For i = 0 To line.Length - 1
If line(i) = TextBox1.Text Then
no = True
End If
Next
If no = False Or TextBox1.Text = "" Then MsgBox("没找到该内容") : Exit Sub
For i = 0 To line.Length - 2
If line(i) <> TextBox1.Text Then
save = save & line(i) & vbCrLf
IO.File.AppendAllText("F:\此时.txt", line(i) & vbCrLf, System.Text.Encoding.Default)
End If
Next
save = save & line(line.Length - 1)
IO.File.WriteAllText("F:\此时.txt", save)

这个可以吗,地址改成你的

回答3:

先读取文本到内存,然后在内存内操作完成后再写入文本

代码示例

Public Class Form1
Dim lst As New List(Of String)
REM 从文本读取内容
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim s As New StreamReader("D:\123.txt")
        Dim arrs As String() = s.ReadToEnd.Split(vbCrLf)
        lst = arrs.ToList
        s.Close()
End Sub
REM 将内容添加至List(of String),修改时直接先修改list
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        For Each x As String In lst
                If x = TextBox1.Text Then lst.Remove(x) : Exit Sub
        Next
        MsgBox("没有这个内容")
End Sub
REM 修改完成后写入文本
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim r As New StreamWriter("D:\123.txt")
        r.AutoFlush = True
        For Each x As String In lst
            r.WriteLine(x)
        Next
        r.Close()
End Sub
End Class

回答4:

我帮你,你把文件给我,私信我