Я создал текстовый файл, в котором хранится различная информация о рейсе. Я хочу, чтобы администраторы могли удалять рейсы с этой страницы, нажав соответствующую кнопку «удалить». У меня есть следующий код:
private void removeButtons()
{
for (int x = 0; x < buttons.Count(); x++)
{
Button booked = buttons[x];
booked.Click += new EventHandler(removeFlights);
}
}
private void removeFlights(object sender, EventArgs e)
{
string tempFile = Path.GetTempFileName();
using (var sr = new StreamReader(AppendTexts.flightPathText))//Location of file
{
using (var sw = new StreamWriter(tempFile))
{
string line;
while ((line = sr.ReadLine()) != null)
{
String[] flights = line.Split(',');
for (int x = 0; x < buttons.Count(); x++)//If the button clicked matches all the fields, skip it, otherwise write it to temp file
{
if (airline[0].Text == flights[0] & price[x].Text == flights[1] & cityStartMatch[x].Text == flights[2] & stateStartMatch[x].Text == flights[3] &
cityDestMatch[x].Text == flights[4] & stateDestMatch[x].Text == flights[5] & seatsMatch[x].Text == flights[6] & dateMatch[x].Text == flights[7])
{
}
else
{
sw.WriteLine(flights[0] + "," + flights[1] + "," + flights[2] + "," + flights[3] + "," + flights[4] + "," + flights[5] + "," + flights[6] + "," + flights[7]);
}
}
}
sr.Close();
}
}
File.Delete(AppendTexts.flightPathText);
File.Move(tempFile, AppendTexts.flightPathText);
}
Проблема, с которой я столкнулся, заключается в том, что вместо удаления старых строк он просто заново добавляет остальные в файл. Поэтому, если у меня есть рейс с использованием авиакомпании Delta, а другой - с использованием Southwest, и я пытаюсь удалить авиакомпанию Delta, когда я снова перечисляю рейсы, авиакомпания Delta появляется один раз, а авиакомпания Southwest - дважды.