C# 删除csv文件中的特定行,该csv文件由listbox-WinC表单中选定项中的字符串定义
我有一个csv文件,如下所示:C# 删除csv文件中的特定行,该csv文件由listbox-WinC表单中选定项中的字符串定义,c#,winforms,visual-studio-2010,csv,C#,Winforms,Visual Studio 2010,Csv,我有一个csv文件,如下所示: NAME,GAMES PLAYED, GAMES WON, GAMES LOST, AVG SCORE PLAYER1,0,0,0,0 PLAYER2,0,0,0,0 PLAYER3,0,0,0,0 PLAYER4,0,0,0,0 PLAYER5,0,0,0,0 listbox lsbSelectName将填充列表PLAYER1、PLAYER2等。我试图实现的是从listbox中选择一个名称,当按下delete按钮时,我希望它读取csv文件中的行,如果一行包含所
NAME,GAMES PLAYED, GAMES WON, GAMES LOST, AVG SCORE
PLAYER1,0,0,0,0
PLAYER2,0,0,0,0
PLAYER3,0,0,0,0
PLAYER4,0,0,0,0
PLAYER5,0,0,0,0
listbox lsbSelectName将填充列表PLAYER1、PLAYER2等。我试图实现的是从listbox中选择一个名称,当按下delete按钮时,我希望它读取csv文件中的行,如果一行包含所选的播放器名称,它将删除整行。我已经试了两天了,但似乎把自己弄糊涂了。以下是迄今为止的代码:
private void btnDeletePlayer_Click(object sender, EventArgs e)
{
string playerStats = "C:\\Users\\PC\\Desktop\\Work\\Visual Studio\\dbstats\\dbstats\\bin\\Debug\\playerStats.csv";
string lineToDelete = lsbSelectName.ToString();
if (File.Exists(playerStats))
{
string[] lines = File.ReadAllLines(@"playerStats.csv");
if (lines.Contains(lineToDelete))
{
lines.Skip(50);
}
else
{
MessageBox.Show("That name does not exist, Try again");
}
using (StreamWriter sw = new StreamWriter(playerStats, true))
{
sw.WriteLine(lines);
MessageBox.Show("Player: " + lineToDelete + "Has been deleted");
sw.Close();
}
}
else
{
MessageBox.Show("playerStats.csv does not exist, Check Filepath");
}
gamesToolStripMenuItem.Visible = true;
lbNewPlayer.Visible = false;
tbNewPlayerName.Visible = false;
btnAddNewPlayer.Visible = false;
}
非常感谢您的帮助。谢谢。我的解决方案:
我在路径中做了一些更改,得到了lineToDelete字符串:
阅读课文
列举所有行
按“,”字符分割
若第一个字符串等于玩家名称,则跳过它
string playerStats = "D:\\playerStats.csv";
string lineToDelete = listBox1.SelectedItem.ToString();
if (File.Exists(playerStats))
{
string[] lines = File.ReadAllLines(playerStats);
using (StreamWriter sw = new StreamWriter(playerStats, false))
{
foreach (var line in lines)
{
string[] parts = line.Split(',');
if (parts[0] != lineToDelete)
{
sw.WriteLine(line);
}
else
{
MessageBox.Show("Player: " + lineToDelete + "Has been deleted");
}
}
}
}
else
{
MessageBox.Show("playerStats.csv does not exist, Check Filepath");
}