Каждая строка соответствует контакту, правильно? Каковы ваши критерии для удаления контакта? Если вы ищете имя и фамилию, вы можете это сделать.
string line = null;
string Criteria = name + " " lastname;
using (StreamReader reader = new StreamReader("C:\\input"))
{
using (StreamWriter writer = new StreamWriter("C:\\output"))
{
while ((line = reader.ReadLine()) != null)
{
if (line.Contains(Criteria))
continue;
writer.WriteLine(line);
}
}
}
Это будет читать ваш файл и записывать все контакты, которые вы хотите сохранить в другом файле.
Однако, если вы хотите сохранить один и тот же файл (или если информация о контактах находится на нескольких строках). Вы можете прочитать весь файл и сохранить его в памяти, удалить те, которые не хотите, а затем снова записать файл.
//Method with a class containing the info because informations are on several lines
Contact[] contacts = MethodToRead("filename.txt");
Contact[] filteredContacts = methodFilterContacts(contacts);
foreach(Contact c in filteredContacts)
{
//Call your write method mentionned
Writer.writer(c.name, c.lastname, c.number);
}
//Method if contact on only one line
string[] contactLines = File.ReadAllLines("filename.txt");
string[] filteredContactLines = methodFilterContacts(contactLines);
//This will write everything as is
File.WriteAllLines("filename.txt", filteredContactLines);
Это было, если вы хотите сохранить свой текстовый файл. Как было предложено ранее, вы можете использовать xml для записи и чтения более простого в обслуживании файла. Если вы знаете основы xml, или для небольшой задачи (и у вас есть время для этого), это может быть лучший способ пойти.
Это прекрасно и денди, но в чем ваш вопрос. Надеюсь, вы не ожидаете, что мы сделаем домашнее задание, не так ли? –
Вот подсказка - используйте согласованный формат или файл с разделителями для данных в текстовом файле. Алгоритмы поиска и удаления будут намного проще реализовать. – Tim
Прочитайте файл в списке, удалите удаленный контакт и запишите его обратно. Еще лучше поставить флаг _deleted_ на каждую запись в файле и просто перезаписать флаг, когда человек будет удален. Затем добавьте флажок и перезапишите первый удаленный человек. –