如何删除文本文件中的多个空行
How do I remove multiple empty lines in a text file
不知是否有人能够提供帮助。我有一个包含多行格式化文本的 m3u 文件。
#EXTM3U
#RADIOBROWSERUUID:963194ef-0601-11e8-ae97-52543be04c81
#EXTINF:1,80s80s Christmas
http://streams.80s80s.de/christmas/mp3-192/streams.80s80s.de/
#RADIOBROWSERUUID:9638cfa5-0601-11e8-ae97-52543be04c81
#EXTINF:1,181.FM - Christmas Kountry
http://www.181.fm/stream/pls/181-xkkountry.pls
虽然我已经设法将数据提取为我可能需要的格式...但我留下了多个空白行。我用来提取数据的示例代码是...
If line.StartsWith("#EXTM3U") Then 'Remove
lines(i) = ""
End If
If line.StartsWith("#RADIOBROWSERUUID:") Then 'Remove
lines(i) = ""
End If
If line.StartsWith("#EXTINF:1,") Then 'Add # at beginning of line
lines(i) = line.Replace("#EXTINF:1,", "#")
End If
然后我得到以下...
#80s80s Christmas
@http://streams.80s80s.de/christmas/mp3-192/streams.80s80s.de/
#181.FM - Christmas Kountry
@http://www.181.fm/stream/pls/181-xkkountry.pls
我似乎无法删除 empty/blank 行。我已经使用 google 以及此处,但没有一个答案似乎对我有用。这是我正在使用的代码...
Dim Newlines As String() = File.ReadAllLines(ofd.FileName)
For t As Integer = 0 To Newlines.Length - 1
Dim line2 As String = Newlines(t)
If line2.StartsWith("") Then ' Remove blank lines
Beep()
Newlines(t) = line2.Replace(Environment.NewLine, String.Empty)
End If
Next
File.WriteAllLines("NewTextm3u.txt", lines)
任何人都可以看到我哪里出错了吗?非常感谢。
你可以这样做:
Dim sFile As String = "c:\test2\test2.txt"
Dim Fdata As New List(Of String)
Fdata = File.ReadAllLines("c:\test2\test.txt").ToList
For i = Fdata.Count - 1 To 0 Step -1
If Fdata(i) = "" Then
Fdata.RemoveAt(i)
End If
Next
For Each sLine As String In Fdata
Debug.Print(sLine)
Next
File.WriteAllLines(sFile)
以上将删除所有空行
代替该循环,您还可以使用像这样的 lamda 表达式:
Fdata.RemoveAll(Function(MyOneRow) MyOneRow = "")
正如您在上图中所看到的,在句子的末尾有一个我们可以称之为“enter”的东西,在中间还有一个。
因此,让我们删除句子之间的那一行,因为它只是一行,您可以这样做:
If line(i) = CHR(13) & CHR(10) then line(i)=""
但是如果你有点偏执,只想删除所有的“输入”或“换行符”,就这样做吧:
line(i)=Replace(line(i),CHR(13) & CHR(10),"")
我使用 StrignSplitOptions.RemoveEmptyEntries
去除空行。
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim FileContents = File.ReadAllText("SomeFile.txt")
Dim lines = FileContents.Split(Environment.NewLine.ToCharArray, StringSplitOptions.RemoveEmptyEntries)
End Sub
不知是否有人能够提供帮助。我有一个包含多行格式化文本的 m3u 文件。
#EXTM3U
#RADIOBROWSERUUID:963194ef-0601-11e8-ae97-52543be04c81
#EXTINF:1,80s80s Christmas
http://streams.80s80s.de/christmas/mp3-192/streams.80s80s.de/
#RADIOBROWSERUUID:9638cfa5-0601-11e8-ae97-52543be04c81
#EXTINF:1,181.FM - Christmas Kountry
http://www.181.fm/stream/pls/181-xkkountry.pls
虽然我已经设法将数据提取为我可能需要的格式...但我留下了多个空白行。我用来提取数据的示例代码是...
If line.StartsWith("#EXTM3U") Then 'Remove
lines(i) = ""
End If
If line.StartsWith("#RADIOBROWSERUUID:") Then 'Remove
lines(i) = ""
End If
If line.StartsWith("#EXTINF:1,") Then 'Add # at beginning of line
lines(i) = line.Replace("#EXTINF:1,", "#")
End If
然后我得到以下...
#80s80s Christmas
@http://streams.80s80s.de/christmas/mp3-192/streams.80s80s.de/
#181.FM - Christmas Kountry
@http://www.181.fm/stream/pls/181-xkkountry.pls
我似乎无法删除 empty/blank 行。我已经使用 google 以及此处,但没有一个答案似乎对我有用。这是我正在使用的代码...
Dim Newlines As String() = File.ReadAllLines(ofd.FileName)
For t As Integer = 0 To Newlines.Length - 1
Dim line2 As String = Newlines(t)
If line2.StartsWith("") Then ' Remove blank lines
Beep()
Newlines(t) = line2.Replace(Environment.NewLine, String.Empty)
End If
Next
File.WriteAllLines("NewTextm3u.txt", lines)
任何人都可以看到我哪里出错了吗?非常感谢。
你可以这样做:
Dim sFile As String = "c:\test2\test2.txt"
Dim Fdata As New List(Of String)
Fdata = File.ReadAllLines("c:\test2\test.txt").ToList
For i = Fdata.Count - 1 To 0 Step -1
If Fdata(i) = "" Then
Fdata.RemoveAt(i)
End If
Next
For Each sLine As String In Fdata
Debug.Print(sLine)
Next
File.WriteAllLines(sFile)
以上将删除所有空行
代替该循环,您还可以使用像这样的 lamda 表达式:
Fdata.RemoveAll(Function(MyOneRow) MyOneRow = "")
正如您在上图中所看到的,在句子的末尾有一个我们可以称之为“enter”的东西,在中间还有一个。 因此,让我们删除句子之间的那一行,因为它只是一行,您可以这样做:
If line(i) = CHR(13) & CHR(10) then line(i)=""
但是如果你有点偏执,只想删除所有的“输入”或“换行符”,就这样做吧:
line(i)=Replace(line(i),CHR(13) & CHR(10),"")
我使用 StrignSplitOptions.RemoveEmptyEntries
去除空行。
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim FileContents = File.ReadAllText("SomeFile.txt")
Dim lines = FileContents.Split(Environment.NewLine.ToCharArray, StringSplitOptions.RemoveEmptyEntries)
End Sub