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原本就没有的内容),就弹出“没有这个内容”
怎样实现,高分
给一些简单易懂一点的,谢谢!
展开
 我来答
jqkalytrue
2013-08-07 · TA获得超过835个赞
知道小有建树答主
回答量:1509
采纳率:57%
帮助的人:374万
展开全部
这么菜的问题,分还挺高啊,循环读文件,每次一行,跟你输入的内容比较一样就记录行号并且终止循环,并且新建个文件写入从开头到第(你记录的行号-1)行的内容和(你记录的行号+1)行以后的内容,把源文件删了,把新文件改名为老文件名,不一样就继续循环读取,到最后读完都没有则提示没有这个内容

就这样,具体程序自己写,如果没耐心那就没办法了 学不来编程了
更多追问追答
追问
没内心还会提问题?我要代码。。。
追答
代码自己研究,我就想给个思路,你想糊弄作业的话 等别人的答案吧
FMUD1
2013-08-07 · TA获得超过1008个赞
知道大有可为答主
回答量:1289
采纳率:71%
帮助的人:896万
展开全部
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)

这个可以吗,地址改成你的
更多追问追答
追问
可不可以不用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)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hejian511
2013-08-07 · TA获得超过845个赞
知道大有可为答主
回答量:1559
采纳率:0%
帮助的人:1467万
展开全部

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

代码示例

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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
友康裕Q4
2013-08-07 · 超过16用户采纳过TA的回答
知道答主
回答量:117
采纳率:0%
帮助的人:58.7万
展开全部
我帮你,你把文件给我,私信我
追问
好!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式