Inhalt der Datei Program.cs (Mein erstes mittelhochdeutsches Hörbuch)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Speech.Synthesis;
using System.IO;

namespace Mittelhochdeutsches_Hörbuch1
{
    class Program
    {
               static void Main(string[] args)
        {
  
            /* Unsere Textdatei: 
             * Wenn das Programm mit Parametern aufgerufen wurde
             * Ist das erste davon der Dateiname der Textdatei
             * Wir überprüfen, dann ob die Datei existiert und eine Textdatei ist
             */
           
            string TextDateiName = args.Length > 0? args[0]:"";
            while (TextDateiName==null | System.IO.File.Exists(TextDateiName)==false | System.IO.Path.GetExtension(TextDateiName) !=".txt" )
            {

                // Falls keine entsprechende Textdatei zu finden ist, 
                // erhalten wir den Namen durch eine Konsoleneingabe.

                Console.WriteLine("Welche Textdatei soll in ein Hörbuch umgewandelt werden? \n");
                TextDateiName = Console.ReadLine();
                if (TextDateiName == "") TextDateiName = "D:/Lanzelet 1 - 49.txt"; // Default.
             
            }
            StreamReader Textdatei = new StreamReader(TextDateiName);

            SpeechSynthesizer synth = new SpeechSynthesizer(); 
            PromptBuilder pb = new PromptBuilder();
            Hedda Hedda = new Hedda();

            /* Die Ausgabe erfolgt:
             * a) In eine beim Programmaufruf durch den zweiten Parameter angegebene Datei
             * b) In eine wav Datei, die  Namen und das Verzeichnis von der Textdatei übernimmt.
             * c) Wenn der Benutzer KEIN "j" auf die Anfrage des Programms antwortet spricht der Computer
             */

            string Pfad = System.IO.Path.GetDirectoryName(TextDateiName);
            string DateiName = args.Length > 1 ? args[1] : Pfad + System.IO.Path.GetFileNameWithoutExtension(TextDateiName) + ".wav";

            Console.WriteLine("Sprachausgabe in Datei?");
            if (Console.ReadKey().KeyChar=='j') synth.SetOutputToWaveFile(DateiName+".wav");

            string Zeile;
            pb.StartSentence(); //Das Vorlesen startet mit einem Satzbeginn
                                /* Schleife:
                                 * Solange bis das Ende der Textdatei erreicht ist (der Befehl ReadLine() null ergibt)
                                 * Lies die nächste Zeile ein
                                 * Und übergib sie an Hedda zum Vorlesen.
                                 */
           
            while (( Zeile = Textdatei.ReadLine())!=null)
            {
                Hedda.LeseZeile(Zeile, pb);
            }

            //Das Vorlesen endet mit einem Satzende.
            pb.EndSentence();


            if (Hedda.UnbekannteZeichen.Count > 0)
            {

                // Unbekannte, also nicht in Lautschrift umsetzbare Zeichen,
                // Werden in der Konsole ausgegeben und vorgelesen (sofern möglich).

                synth.Speak("Ich habe folgende mir unbekannten Zeichen gefunden:");
                Console.WriteLine("Ich habe folgende mir unbekannten Zeichen gefunden:");

                foreach (char c in Hedda.UnbekannteZeichen)
                {
                    Console.Write(c); // Schreibe die Hedda unbekannten Zeichen ins Konsolenfenster .
                    synth.Speak(c.ToString()); // und lass Hedda die Buchstaben sprechen.   
                }
                Console.ReadKey(); //Warte auf eine Zeicheneingabe, bevor Hedda mit dem Lesen des Textes beginnt.
            }

             Hedda.SchreibeLexikon();
         
            synth.Speak(pb);
           
            Console.ReadKey(); 
        }
    }
}