Удалить определенную строку из текстового файла?

Мне нужно удалить точную строку из текстового файла, но я не могу на всю жизнь тренировать, как это сделать.

Будем очень благодарны за любые предложения или примеры?

Связанные вопросы

Эффективный способ удаления строки из текстового файла (C #)

Если строка, которую вы хотите удалить, основана на содержимом строки:

string line = null; string line_to_delete = "the line i want to delete"; using (StreamReader reader = new StreamReader("C:\\input")) { using (StreamWriter writer = new StreamWriter("C:\\output")) { while ((line = reader.ReadLine()) != null) { if (String.Compare(line, line_to_delete) == 0) continue; writer.WriteLine(line); } } } 

Или, если он основан на номере строки:

 string line = null; int line_number = 0; int line_to_delete = 12; using (StreamReader reader = new StreamReader("C:\\input")) { using (StreamWriter writer = new StreamWriter("C:\\output")) { while ((line = reader.ReadLine()) != null) { line_number++; if (line_number == line_to_delete) continue; writer.WriteLine(line); } } } 

Лучший способ сделать это – открыть файл в текстовом режиме, прочитать каждую строку с помощью ReadLine (), а затем записать в новый файл с помощью WriteLine (), пропуская одну строку, которую вы хотите удалить.

Насколько мне известно, не существует общей функции удаления строки из файла.

Один из способов сделать это, если файл не очень большой, – загрузить все строки в массив:

 string[] lines = File.ReadAllLines("filename.txt"); string[] newLines = RemoveUnnecessaryLine(lines); File.WriteAllLines("filename.txt", newLines); 

Вы действительно можете использовать C # generics для этого, чтобы сделать его очень простым:

  var file = new List(System.IO.File.ReadAllLines("C:\\path")); file.RemoveAt(12); File.WriteAllLines("C:\\path", file.ToArray()); 

Никакой код ракеты-носителя не требуется. Надеюсь, этот простой и короткий код поможет .

 List linesList = File.ReadAllLines("myFile.txt").ToList(); linesList.RemoveAt(0); File.WriteAllLines("myFile.txt"), linesList.ToArray()); 

ИЛИ используйте это

 public void DeleteLinesFromFile(string strLineToDelete) { string strFilePath = "Provide the path of the text file"; string strSearchText = strLineToDelete; string strOldText; string n = ""; StreamReader sr = File.OpenText(strFilePath); while ((strOldText = sr.ReadLine()) != null) { if (!strOldText.Contains(strSearchText)) { n += strOldText + Environment.NewLine; } } sr.Close(); File.WriteAllText(strFilePath, n); } 
  1. Читайте и помните каждую строку

  2. Определите тот, который вы хотите избавиться от

  3. Забудьте об этом

  4. Запишите остаток обратно в верхнюю часть файла

Вы работаете в операционной системе Unix?

Вы можете сделать это с помощью редактора streamа sed. Прочтите справочную страницу для “sed”

Какие? Используйте открытое файл, найдите позицию, затем очистите строку, используя значение null.

Gotch это? Простые, streamовые, без массива, которые едят память, быстро.

Эта работа на vb .. Пример search line culture = id, где культура – имя и id – значение, и мы хотим изменить его на culture = en

  Fileopen(1,"text.ini") dim line as string dim currentpos as long while true line = lineinput(1) dim namevalue() as string=split(line,"=") if namevalue(0)="line name value that i want to edit" then currentpos=seek(1) fileclose() dim fs as filestream("test.ini",filemode.open) dim sw as streamwriter(fs) fs.seek(currentpos,seekorigin.begin) sw.write(null) sw.write(namevalue+"="+newvalue) sw.close() fs.close() exit while end if msgbox("org ternate jua bisa, no line found") end while -  Fileopen(1,"text.ini") dim line as string dim currentpos as long while true line = lineinput(1) dim namevalue() as string=split(line,"=") if namevalue(0)="line name value that i want to edit" then currentpos=seek(1) fileclose() dim fs as filestream("test.ini",filemode.open) dim sw as streamwriter(fs) fs.seek(currentpos,seekorigin.begin) sw.write(null) sw.write(namevalue+"="+newvalue) sw.close() fs.close() exit while end if msgbox("org ternate jua bisa, no line found") end while 

это все ..use #d

Это можно сделать в три этапа:

 // 1. Read the content of the file string[] readText = File.ReadAllLines(path); // 2. Empty the file File.WriteAllText(path, String.Empty); // 3. Fill up again, but without the deleted line using (StreamWriter writer = new StreamWriter(path)) { foreach (string s in readText) { if (!s.Equals(lineToBeRemoved)) { writer.WriteLine(s); } } } 
  • Инструменты для поиска строк внутри файлов без индексирования
  • Java BufferedReader вернется к началу текстового файла?
  • Как импортировать данные из текстового файла в базу данных mysql
  • Как заполнить JComboBox из текстового файла?
  • Чтение простого текстового файла
  • Interesting Posts

    Обновлено до SDK 2.3 – теперь эмуляторы не имеют возможности подключения

    Поверхность статических и динамических столбцов в datatable

    Почему C # запрещает чтение только локальных переменных?

    Вычисление нескольких рядов в линейном графике в excel с разными значениями времени?

    Поведение видеоввода HTML5 на iPhone и iPod в веб-приложениях Safari

    Как вы можете получить адрес электронной почты пользователя Android?

    Java делает направленную линию и заставляет ее двигаться

    Роль / цель ContextLoaderListener весной?

    SFTP через двойной серверный хоп

    Как использовать параметры, объекты запроса и сеанса, присутствующие в ActionContext?

    Я не могу ввести текст в поле «Поиск программ и файлов» в меню «Пуск»

    На странице начальной загрузки, как центрировать div

    Web.Config преобразуется за пределы Microsoft MSBuild?

    Как вычислить число 3D Morton (чередуйте биты 3 ints)

    Почему нулевая ссылка печатается как “null”

    Давайте будем гением компьютера.