You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET实现删除文本文件中目标单词之前的所有行

VB.NET实现保留目标行及后续行的解决方案

你的代码逻辑存在问题,input.Contains("{MyWord}")返回的是布尔值,VB会自动将True转为1、False转为0,所以那个For循环根本无法实现“跳过目标行之前所有内容”的需求。

正确的思路是用一个开关变量控制是否开始写入内容:

  • 初始时开关关闭,跳过所有读取到的行
  • 当读到包含目标单词的行时,打开开关,同时把当前行写入字符串构建器
  • 开关打开后,后续所有行都直接写入

修正后的代码如下:

' 定义目标单词
Dim targetWord As String = "{MyWord}"
' 用于存储保留的内容
Dim builder As New StringBuilder()
' 开关变量,标记是否开始写入内容
Dim shouldWrite As Boolean = False

Using reader As New IO.StreamReader(fileName)
    While Not reader.EndOfStream()
        Dim input As String = reader.ReadLine()
        
        ' 检查当前行是否包含目标单词,是则打开开关
        If input.Contains(targetWord) Then
            shouldWrite = True
        End If
        
        ' 开关打开时,写入当前行
        If shouldWrite Then
            builder.AppendLine(input)
        End If
    End While
End Using

' 最后可以将builder的内容写入新文件或者其他处理
' IO.File.WriteAllText("新文件路径.txt", builder.ToString())

代码说明

  • shouldWrite变量:初始为False,确保目标行之前的所有行都被跳过
  • 当检测到包含目标单词的行时,立即打开开关,同时该行会被写入(满足你“保留包含目标单词的行及之后所有行”的需求)
  • 后续所有行只要开关打开就会被写入,无需额外判断

内容的提问来源于stack exchange,提问作者Lord45

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 02:54:22