使用 vb.net 删除文本文件中的特定行

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/23755229/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-09 17:31:16  来源:igfitidea点击:

Delete specific lines in a text file using vb.net

vb.net

提问by svynsaenz

I am trying to delete some specific lines of a text using VB.Net. I saw a solution herehowever it is in VB6. The problem is, I am not really familiar with VB6. Can somebody help me? This is the code from the link:

我正在尝试使用 VB.Net 删除文本的某些特定行。我在这里看到了一个解决方案但是它在 VB6 中。问题是,我对 VB6 不是很熟悉。有人可以帮助我吗?这是链接中的代码:

Public Function DeleteLine(ByVal fName As String, ByVal LineNumber As Long) _As Boolean
    'Purpose: Deletes a Line from a text file

    'Parameters: fName = FullPath to File
    '            LineNumber = LineToDelete

    'Returns:    True if Successful, false otherwise

    'Requires:   Reference to Microsoft Scripting Runtime

    'Example: DeleteLine("C:\Myfile.txt", 3)
    '           Deletes third line of Myfile.txt
    '______________________________________________________________


    Dim oFSO As New FileSystemObject
    Dim oFSTR As Scripting.TextStream
    Dim ret As Long
    Dim lCtr As Long
    Dim sTemp As String, sLine As String
    Dim bLineFound As Boolean

    On Error GoTo ErrorHandler
    If oFSO.FileExists(fName) Then
        oFSTR = oFSO.OpenTextFile(fName)
        lCtr = 1
        Do While Not oFSTR.AtEndOfStream
            sLine = oFSTR.ReadLine
            If lCtr <> LineNumber Then
                sTemp = sTemp & sLine & vbCrLf
            Else
                bLineFound = True

            End If
            lCtr = lCtr + 1
        Loop

        oFSTR.Close()
        oFSTR = oFSO.CreateTextFile(fName, True)
        oFSTR.Write(sTemp)

        DeleteLine = bLineFound
    End If


ErrorHandler:
    On Error Resume Next
    oFSTR.Close()
    oFSTR = Nothing
    oFSO = Nothing

End Function

回答by David Sdot

Dim delLine As Integer = 10
Dim lines As List(Of String) = System.IO.File.ReadAllLines("infile.txt").ToList
lines.RemoveAt(delLine - 1) ' index starts at 0 
System.IO.File.WriteAllLines("outfile.txt", lines)

回答by HuH

    'This can also be the file that you read in
    Dim str As String = "sdfkvjdfkjv" & vbCrLf & "dfsgkjhdfj" & vbCrLf & "dfkjbhhjsdbvcsdhjbvdhs" & vbCrLf & "dfksbvashjcvhjbc"

    Dim str2() As String = str.Split(vbCrLf)

    For Each s In str2
        If s.Contains("YourString") Then
            'add your line to txtbox
        Else
            'don't add your line to txtbox
        End If
    Next

回答by GoroundoVipa

Or You Can Use

或者你可以使用

TextFile = TextFile.Replace("You want to Delete","")

TextFile = TextFile.Replace("您要删除","")