vb.net 如何实现txt内容删除?
我有一个1.txt,里面是:123456789如果我在textbox1输入456就会删除了456,变成123789如果我输入了012(或其他1.txt原本就没有的内容),...
我有一个1.txt,里面是:
123
456
789
如果我在textbox1输入456就会删除了456,变成
123
789
如果我输入了012(或其他1.txt原本就没有的内容),就弹出“没有这个内容”
怎样实现,高分
给一些简单易懂一点的,谢谢! 展开
123
456
789
如果我在textbox1输入456就会删除了456,变成
123
789
如果我输入了012(或其他1.txt原本就没有的内容),就弹出“没有这个内容”
怎样实现,高分
给一些简单易懂一点的,谢谢! 展开
展开全部
这么菜的问题,分还挺高啊,循环读文件,每次一行,跟你输入的内容比较一样就记录行号并且终止循环,并且新建个文件写入从开头到第(你记录的行号-1)行的内容和(你记录的行号+1)行以后的内容,把源文件删了,把新文件改名为老文件名,不一样就继续循环读取,到最后读完都没有则提示没有这个内容
就这样,具体程序自己写,如果没耐心那就没办法了 学不来编程了
就这样,具体程序自己写,如果没耐心那就没办法了 学不来编程了
更多追问追答
追问
没内心还会提问题?我要代码。。。
追答
代码自己研究,我就想给个思路,你想糊弄作业的话 等别人的答案吧
展开全部
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)
这个可以吗,地址改成你的
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)
这个可以吗,地址改成你的
更多追问追答
追问
可不可以不用replace用remove
追答
代码中的replace不是用来替换的....
Dim txt As String = My.Computer.FileSystem.ReadAllText("F:\此时.txt", System.Text.Encoding.Default)
Dim line() As String = txt.Replace(vbCr, "").Split(vbLf) '用于按行检索
Dim no As Boolean = False '用于判断字符串是否存在文件中
For i = 0 To line.Length - 1 '如果不是按行检索的,可以删除本循环,改用instr检索
If line(i) = TextBox1.Text Then
no = True
End If
Next
If no = False Or TextBox1.Text = "" Then MsgBox("没找到该内容") : Exit Sub
txt = txt.Remove(InStr(txt, TextBox1.Text) - 1, 5) '删除指定字符,vbcrlf占用两个字符+三个字符
IO.File.WriteAllText("F:\此时.txt", txt, System.Text.Encoding.Default)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先读取文本到内存,然后在内存内操作完成后再写入文本
代码示例
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
追问
留下QQ,这个不行
追答
你肯定没引用 System.IO
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我帮你,你把文件给我,私信我
追问
好!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询