예제 #1
0
        public static List<Eintrag> LeseEintraegeAusDatei(string dieDatei)
        {
            List<Eintrag> meineEintraege = new List<Eintrag>();
            if (!File.Exists(dieDatei))
            {
                Console.WriteLine("[Eintrag.LeseEintraegeAusDatei] Datei " + dieDatei + " nicht gefunden");
                return meineEintraege;
            }
            XmlDocument doc = new XmlDocument();  //aus xml laden
            doc.Load(dieDatei);
            XmlElement wurzel = doc.DocumentElement;

            for (int i = 0; i < Eintrag.EINTRAG_TYPEN.Length; ++i)
            {
                string xmlNodeName = Eintrag.EINTRAG_TYPEN[i];
                XmlNodeList eintragListe = wurzel.SelectNodes("./" + xmlNodeName);
                //noch eine Art der Debug Ausgabe, aber unklar wie in mono aktivierbar...
                Debug.WriteLine("\nAnzahl der " + xmlNodeName + " in der xml Datei " + dieDatei + ": " + eintragListe.Count);
                foreach (XmlNode eintrag in eintragListe)
                {
                    Eintrag neuerEintrag;
                    try
                    {
                        switch (xmlNodeName)
                        {
                            case "JaehrlichesEreignisAnFestemTag":
                                neuerEintrag = new JaehrlichesEreignisAnFestemTag(eintrag);
                                meineEintraege.Add(neuerEintrag);
                                break;
                            case "Geburtstag":
                                neuerEintrag = new Geburtstag(eintrag);
                                meineEintraege.Add(neuerEintrag);
                                break;
                            case "EinmaligerTermin":
                                neuerEintrag = new EinmaligerTermin(eintrag);
                                meineEintraege.Add(neuerEintrag);
                                break;
                            case "RelativesEreignisNterWochentagImMonat":
                                neuerEintrag = new RelativesEreignisNterWochentagImMonat(eintrag);
                                meineEintraege.Add(neuerEintrag);
                                break;
                            case "RelativesEreignisLetzteWocheImMonat":
                                neuerEintrag = new RelativesEreignisLetzteWocheImMonat(eintrag);
                                meineEintraege.Add(neuerEintrag);
                                break;
                        } //ende switch
                    }
                    catch (EintragParseException )
                    {
                        Console.WriteLine("Eintrag kann nicht hinzugefügt werden");
                    }
                } //ende foreach XmlNode
            } //ende for Schleife
            return meineEintraege;
        }
예제 #2
0
        public static List <Eintrag> LeseEintraegeAusDatei(string dieDatei)
        {
            List <Eintrag> meineEintraege = new List <Eintrag>();

            if (!File.Exists(dieDatei))
            {
                Console.WriteLine("[Eintrag.LeseEintraegeAusDatei] Datei " + dieDatei + " nicht gefunden");
                return(meineEintraege);
            }
            XmlDocument doc = new XmlDocument();  //aus xml laden

            doc.Load(dieDatei);
            XmlElement wurzel = doc.DocumentElement;

            for (int i = 0; i < Eintrag.EINTRAG_TYPEN.Length; ++i)
            {
                string      xmlNodeName  = Eintrag.EINTRAG_TYPEN[i];
                XmlNodeList eintragListe = wurzel.SelectNodes("./" + xmlNodeName);
                //noch eine Art der Debug Ausgabe, aber unklar wie in mono aktivierbar...
                Debug.WriteLine("\nAnzahl der " + xmlNodeName + " in der xml Datei " + dieDatei + ": " + eintragListe.Count);
                foreach (XmlNode eintrag in eintragListe)
                {
                    Eintrag neuerEintrag;
                    try
                    {
                        switch (xmlNodeName)
                        {
                        case "JaehrlichesEreignisAnFestemTag":
                            neuerEintrag = new JaehrlichesEreignisAnFestemTag(eintrag);
                            meineEintraege.Add(neuerEintrag);
                            break;

                        case "Geburtstag":
                            neuerEintrag = new Geburtstag(eintrag);
                            meineEintraege.Add(neuerEintrag);
                            break;

                        case "EinmaligerTermin":
                            neuerEintrag = new EinmaligerTermin(eintrag);
                            meineEintraege.Add(neuerEintrag);
                            break;

                        case "RelativesEreignisNterWochentagImMonat":
                            neuerEintrag = new RelativesEreignisNterWochentagImMonat(eintrag);
                            meineEintraege.Add(neuerEintrag);
                            break;

                        case "RelativesEreignisLetzteWocheImMonat":
                            neuerEintrag = new RelativesEreignisLetzteWocheImMonat(eintrag);
                            meineEintraege.Add(neuerEintrag);
                            break;
                        } //ende switch
                    }
                    catch (EintragParseException)
                    {
                        Console.WriteLine("Eintrag kann nicht hinzugefügt werden");
                    }
                } //ende foreach XmlNode
            }     //ende for Schleife
            return(meineEintraege);
        }