我有一个我正在创建的程序,当我去删除空行时,我就是这样做的。
For Each i As ListViewItem In lvSongs.SelectedItems
lvSongs.Items.Remove(i)
CurrentSong = i.SubItems(4).Text 'This is the Songs Path
files = File.ReadAllText("songs.txt") 'The songs path's are in the txt
'I am using this as a list of lines i want to keep in
'the txt file.
Dim linesToKeep As New List(Of String)
For Each line As String In files 'Goes through lines
If Not line.Contains(CurrentSong) Then 'checks to see if line is Current song
linesToKeep.Add(line) 'Adds line if its not CurrentSong to the list
End If
Next
File.WriteAllLines("songs.txt", linesToKeep.ToArray())
但是当我去检查txt文档时,我得到了这个:
示例(但水平书写,每个字母都在新行上)
在我的朋友说的文本文件中,因为我将行设置为字符串而不是字符串()。
感谢anyhelp! 如果我困惑你,请询问更多信息...
答案 0 :(得分:1)
问题是您使用的是ReadAllText
API。这将返回String
而不是String()
,因此当您稍后迭代时,您将迭代文件中的每个字符,而不是每行。要解决此问题,请使用返回ReadAllLines
String()
API
files = File.ReadAllLines("songs.txt")
注意我无法判断files
是隐式声明的本地字段还是字段。如果是键入String
的字段,则需要将类型更改为String()
。