vb.net - 如何在 Visual Basic 中删除文本文件的第一行和最后一行

标签 vb.net file-io

我看过有关从文本文件中删除指定为函数参数的行的帖子,但我只需要从文件中删除第一行和最后一行。

在处理文件方面我还是个新手,但删除第一行似乎应该很简单...只需删除从 BOF 到第一个 CrLf 字符的所有文本即可。我说得对吗?

至于最后一行,我知道我必须获取文本文件中的行数才能找到它(因为文件并不总是 x 行长)。这就是我真正需要帮助的地方。

注意我正在使用 VB.NET 2005

最佳答案

将文件作为字符串完整读入行列表。使用索引循环将文件写回以捕获除第一个和最后一个项目之外的所有项目。

    Dim listText As New List(Of String)
    Dim objLine As String = ""

    Using objReader As StreamReader = New StreamReader("c:\test.txt")
        Do
            objLine = objReader.ReadLine()
            If objLine IsNot Nothing Then listText.Add(objLine)
        Loop Until objLine Is Nothing
    End Using

    Using objWriter As StreamWriter = New StreamWriter("c:\testOutput.txt")
        For I As Integer = 1 To listText.Count - 2
            objWriter.WriteLine(listText.Item(I))
        Next
    End Using

编辑以满足非常挑剔的需求:

    Dim arrText() As String
    Dim sLine As String = ""

    arrText = File.ReadAllLines("c:\test.txt")

    Using objWriter As StreamWriter = New StreamWriter("c:\testOutput.txt")
        For I As Integer = 1 To arrText.Length - 2
            objWriter.WriteLine(arrText(I))
        Next
    End Using

关于vb.net - 如何在 Visual Basic 中删除文本文件的第一行和最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2099505/

相关文章:

unix/linux "tail -f"的Java IO实现

VB.NET:如果我使用 Await 运行 CPU 密集型代码会发生什么情况?

vb.net - 检查2个数据库是否存在

VB.NET 2010 - 用于 FTPS 的 WinSCP 包

c# - 关于反射和权限的快速问题。 .net 2008

java - 如何使用相对路径而不是绝对路径?

.net - .NET消息框中的自定义按钮标题?

java - 如何在java中打开hex文件?

c - 如何读取文件并同时填充数组

winapi - 网络文件上文件锁定的可靠性