Ersetzen, die ein bestimmtes Wort in einer Textdatei

Ich weiß, das wurde ein paar mal nachgefragt, aber ich habe gesehen, dass viele regex etc., und ich bin sicher, es ist ein weiterer Weg, dies zu tun mit nur ein stream-reader/writer. Unten ist mein code. Ich bin versucht zu ersetzen "Tee" mit dem Wort "Kohl". Kann jemand helfen? Ich glaube ich habe die falsche syntax.

namespace Week_9_Exer_4
{
    class TextImportEdit
    {
        public void EditorialControl()
        {
            string fileName;
            string lineReadFromFile;


            Console.WriteLine("");
            //Ask for the name of the file to be read
            Console.Write("Which file do you wish to read? ");
            fileName = Console.ReadLine();
            Console.WriteLine("");

            //Open the file for reading
            StreamReader fileReader = new StreamReader("C:\\Users\\Greg\\Desktop\\Programming Files\\story.txt");

            //Read the lines from the file and display them
            //until a null is returned (indicating end of file)
            lineReadFromFile = fileReader.ReadLine();

            Console.WriteLine("Please enter the word you wish to edit out: ");
            string editWord = Console.ReadLine();            

            while (lineReadFromFile != null)
            {
                Console.WriteLine(lineReadFromFile);
                lineReadFromFile = fileReader.ReadLine();
            }

            String text = File.ReadAllText("C:\\Users\\Greg\\Desktop\\Programming Files\\story.txt");
            fileReader.Close();

            StreamWriter fileWriter = new StreamWriter("C:\\Users\\Greg\\Desktop\\Programming Files\\story.txt", false);
            string newText = text.Replace("tea", "cabbage");
            fileWriter.WriteLine(newText);
            fileWriter.Close();

        }
    }
}
  • "Kann jemand helfen ich glaube ich habe die falsche syntax" - ist das nicht eine echte Frage.
  • Was Fehler " Fehlermeldung erhalten Sie?
  • Auch, nur 3 Zeilen hier egal, ReadAllText, ersetzen, & schreiben fileWriter. (mit Bezug auf Tee und Kohl)
  • Was ist das problem genau? Haben Sie versucht, die Einstellung auf einen Haltepunkt string newText = ... um zu sehen, ob es wird immer zugewiesen, der richtige Wert?
  • ich bekomme kein Fehler, es funktioniert einfach nicht, ersetzen Sie das Wort " Tee mit dem Wort Kohl in meiner txt-Datei, bin ich einfach etwas falsch? was soll ich forschen, um dies zu korrigieren?
  • Ich habe es noch nicht getestet, aber ich denke, Sie können einfach zu Entsorgen() der fileWriter. Dieses tutorial sagt, dass es nicht viel einstellen, bis zu StreamWriter. dotnetperls.com/streamwriter
  • Beachten Sie, dass string.Replace() ist case-sensitive. Versuchen Sie so etwas wie newText = Regex.Replace(text, "tea", "cabbage", RegexOptions.Compiled | RegexOptions.IgnoreCase);
  • danke alle für Ihre Antworten, werde ich einen go zu lösen, aber ich kann, und lassen Sie Sie wissen, was mein problem, danke:)
  • okay, so hatte ich dieses : string fileName = @"C:\Users\Greg\Desktop\Programming Files\story.txt"; Datei.WriteAllText(Dateiname, Datei.ReadAllText(Dateiname).Ersetzen("Tee", "Kohl")); und ersetzen die Worte, aber ich bin immer eine IOException, ich verstehe, dass man Sie fangen kann, eine Ausnahme? Aber nicht diese schlechte Praxis?
  • Stellen Sie sicher, dass Sie nicht die Datei in einem Texteditor geöffnet und während der Ausführung Ihres Codes.
  • Hallo cory , ich habe nicht die Datei zu öffnen, werde ich versuchen den zweiten Weg, den Sie vorgeschlagen haben, scheint es viel besser/schneller. und ist viel mehr Benutzer freundlich zu verstehen, den Prozess. danke!

InformationsquelleAutor Harvey993 | 2014-12-01
Schreibe einen Kommentar