Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
L115A4
0 / 0 / 0
Регистрация: 28.10.2016
Сообщений: 3
#1

Как удалить определённую строку в файле? - C#/.NET 4.x

28.10.2016, 18:43. Просмотров 336. Ответов 4
Метки нет (Все метки)

Дан файл, в нём содержится текст.Удалить определённую строку.
Удаление происходит через запрос номера строки.

Вот сам текст.
http://www.cyberforum.ru/csharp-beginners/thread1047052.html
№;Фамилия;Имя;Класс;Математика;Физика;Русский язык
1;Иванов;Иван;9A;4;5;4
2;Петров;Петр;9A;4;4;4
3;Сидоров;Сидор;9Б;5;5;5
4;Иванов;Иван;9A;5;3;4

Вот то что сделал сам.
C#
1
2
3
4
5
6
7
8
9
10
 Console.WriteLine("Введите номер строки, которую нужно удалить.");
                            string del = Console.ReadLine();                           
                            string[] massfil = new string[100];
                            string path = "A:\\1.txt";
                            massfil = File.ReadAllLines(path);
                            for (int i6 = 0; i < massfil.Length; i++)
                            {
                                if (massfil[i6].Contains(del)) massfil[i6] = " ";
 
                            }
Попробовал по-другому.
Но он удаляет все то, что находится после той строки, которую ввёл пользователь(номер её).
Например ввожу 3, всё что до третьей строки оставляет, а всё что после трёх удаляет.
Как сделать, что бы он удалил именно ту строку, который ввёл пользователь?
C#
1
2
3
string s3 = Console.ReadLine();
string p = "A:\\1.txt";
File.WriteAllLines(p, File.ReadAllLines(p,).Where(v => v.Trim().IndexOf(s3) == -1).ToArray());
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2016, 18:43
Я подобрал для вас темы с готовыми решениями и ответами на вопрос .NET 4.x Как удалить определённую строку в файле? (C#):

Удалить первую строку в текстовом файле
Добрый день! Скажите пожалуйста существует ли метод который удаляет первую или...

Считать определённую строку из файла
Привет! Подскажите, как считать\перезаписать ОПРЕДЕЛЁННУЮ стоку из текстового...

Записать данные в файл в определённую строку
Всем доброе утро. - Подскажи пожалуйста, как можно записать данные в файл в...

Как удалить символ в файле
Подскажите пожалуйста, как удалить символ &amp;#xA; в XML файле? Всем заранее...

Как изменить определенную строку в файле
Всем привет. Подскажите, пожалуйста, как мне изменить определенную строку в...

4
Sindikat
17 / 17 / 11
Регистрация: 07.09.2015
Сообщений: 33
Завершенные тесты: 2
28.10.2016, 18:59 #2
L115A4, вот эта строка делает не то что надо
C#
1
if (massfil[i6].Contains(del)) massfil[i6] = " ";
нужно просто конвертировать номер строки в число и обратиться к нему
C#
1
massfil[Convert.ToInt32(del)] = " ";
0
L115A4
0 / 0 / 0
Регистрация: 28.10.2016
Сообщений: 3
29.10.2016, 14:42  [ТС] #3
Всё также, просто ничего не изменяется.
0
Bespredeliwe
4 / 4 / 3
Регистрация: 10.04.2015
Сообщений: 56
29.10.2016, 14:59 #4
Вы вводите именно число, тоесть позицию которую вам нужно удалить а не слово... Вообще оно удаляет все елементы после 3х потому что:

Цитата Сообщение от L115A4 Посмотреть сообщение
№;Фамилия;Имя;Класс;Математика;Физика;Русский язык
1;Иванов;Иван;9A;4;5;4
2;Петров;Петр;9A;4;4;4
3;Сидоров;Сидор;9Б;5;5;5
4;Иванов;Иван;9A;5;3;4
Метод
C#
1
Contains()
проверяет каждую строку, есть ли в ней значение 3 и если есть заменяет ее на " ". Тобишь все строки где есть "3" подлежат замене на " ".

Добавлено через 5 минут
Как решение можете в своем списке использовать такой формат записи:
№;Фамилия;Имя;Класс;Математика;Физика;Русский язык
*1*;Иванов;Иван;9A;4;5;4
*2*;Петров;Петр;9A;4;4;4
*3*;Сидоров;Сидор;9Б;5;5;5
*4*;Иванов;Иван;9A;5;3;4

Тогда это меняем на:
C#
1
if (massfil[i6].Contains("*"+del+"*")) massfil[i6] = " ";
0
L115A4
0 / 0 / 0
Регистрация: 28.10.2016
Сообщений: 3
30.10.2016, 09:48  [ТС] #5
Этот код не работает, просто ничего не происходит.
Пробовал менять то, что предлагали выше, всё равно, строка не удаляется, видать дело не в этом.
C#
1
2
3
4
5
6
7
8
9
10
11
12
Console.WriteLine("Введите номер строки, которую нужно удалить.");
                            string del = Console.ReadLine();                           
                            string[] massfil = new string[100];
                            string path = "A:\\1.txt";
                            massfil = File.ReadAllLines(path);
                            for (int i6 = 0; i < massfil.Length; i++)
                            {
                                
                           if (massfil[i6].Contains("*"+del+"*")) massfil[i6] = " ";
 
 
                            }
0
30.10.2016, 09:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2016, 09:48
Привет! Вот еще темы с решениями:

Как удалить первые 5 символов txt файле
Как удалить первые 5 символов txt файле.

Как удалить строку из IEnumeramle
IEnumerable&lt;newsModel&gt; где newsModel - класс

как удалить строку из datagridview
как удалить строку из datagridview? у меня считывается из текстового файла инфа...

Файлы, как удалить определенную строку?
Как читать с файла 10 строчку(всю строчку в переменую) и удалить 11 строчку и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru