Básicamente tengo un archivo de texto que leo y se muestra en un cuadro de texto enriquecido, lo cual está bien, pero luego quiero poder busca en el texto una palabra específica y elimina toda la línea de texto que contiene esta palabra. Puedo buscar a través del texto para ver si la palabra existe o no, pero no puedo entender cómo eliminar toda la línea. Cualquier ayuda sería genial.Archivo de texto C# buscar palabra específica y eliminar toda la línea de texto que contiene esa palabra
Respuesta
Lo más fácil es volver a escribir todo el archivo sin la (s) línea (s) que contiene la palabra. Puede utilizar LINQ
para ello:
var oldLines = System.IO.File.ReadAllLines(path);
var newLines = oldLines.Where(line => !line.Contains(wordToDelete));
System.IO.File.WriteAllLines(path, newLines);
Si sólo desea eliminar todas las líneas que contienen la palabra (no sólo la secuencia de caracteres), es necesario dividir la línea de ' '
:
var newLines = oldLines.Select(line => new {
Line = line,
Words = line.Split(' ')
})
.Where(lineInfo => !lineInfo.Words.Contains(wordToDelete))
.Select(lineInfo => lineInfo.Line);
puede hacerlo fácilmente sin LINK
string search_text = text;
string old;
string n="";
StreamReader sr = File.OpenText(FileName);
while ((old = sr.ReadLine()) != null)
{
if (!old.Contains(search_text))
{
n += old+Environment.NewLine;
}
}
sr.Close();
File.WriteAllText(FileName, n);
@mMd Kamruzzaman Pallob, ¿cómo puedo hacer para varias palabras ... esto funcionó perfectamente para mí .. Pero para una sola palabra ... Tengo que buscar tres palabras más ... ¿Cómo puedo hacer esto ... Gracias –
Código:
"using System.Linq;" es requerido.
Escribir su propio método de extensión IsNotAnyOf(,)
(ponerlo en una clase estática) y llame al método (es decir, que se llama) de .Where(n => n.IsNotAnyOf(...))...();
El ciclo for devolverá false si se cumple la condición, si no el método volverá verdadero:
static void aMethod()
{
string[] wordsToDelete = { "aa", "bb" };
string[] Lines = System.IO.File.ReadAllLines(TextFilePath)
.Where(n => n.IsNotAnyOf(wordsToDelete)).ToArray();
IO.File.WriteAllLines(TextFilePath, Lines);
}
static private bool IsNotAnyOf(this string n, string[] wordsToDelete)
{ for (int ct = 0; ct < wordsToDelete.Length; ct++)
if (n == wordsToDelete[ct]) return false;
return true;
}
- 1. ¿Cómo buscar toda la cadena para una palabra específica?
- 2. buscar archivo de texto usando C# y mostrar el número de línea y la línea completa que contiene la palabra clave
- 3. Buscar cadena específica y devolver toda la línea
- 4. Buscar frase/palabra en archivos de texto con php
- 5. ¿Cómo buscar una palabra en una cadena y resaltar palabra en una vista de texto en Android?
- 6. Higlight Palabra particular en vista de texto
- 7. cuenta de la palabra específica en la línea en bash
- 8. Eliminar líneas que contienen la palabra clave de un archivo
- 9. C# archivo de texto de búsqueda, devuelva todas las líneas que contengan una palabra
- 10. palabra que contiene números
- 11. Python: filtrar líneas de un archivo de texto que contiene una palabra particular
- 12. ¿Borrar línea específica de un archivo de texto?
- 13. Eliminar una palabra específica de una cadena
- 14. ¿Comando de terminal para buscar líneas que contengan una palabra específica?
- 15. regex para encontrar una palabra antes y después de una palabra específica
- 16. Eliminar la primera palabra de cada línea
- 17. Ruby regex "contiene una palabra"
- 18. cómo buscar y resaltar la palabra clave de pdf programmatically
- 19. Cómo insertar una palabra/texto al comienzo de cada línea
- 20. ¿Cuál es la mejor manera de buscar en HTML en una cadena C# para texto específico y marcar el texto?
- 21. palabra múltiple texto predictivo/autocompletar?
- 22. Buscar cadena en archivo de texto C
- 23. nginx buscar una palabra específica en la ubicación
- 24. PHP cadena sustituir toda coincidencia de palabra
- 25. Cómo bloquear la primera palabra de un área de texto?
- 26. JavaScript: cómo eliminar la línea que contiene una cadena específica
- 27. Línea específica de salida archivo de texto enorme
- 28. Buscar archivo de texto
- 29. Texto a voz: resaltando palabra por palabra para iphone
- 30. Cómo GREP para toda la palabra
Ah sí, tiene perfecto sentido, lo acabo de usar en mi código y funcionó :) ¡Muchas gracias! – user1364063