예제 #1
0
        static void tauschen(ref Wetterdaten[] Datensaetze, int index1, int index2)
        {
            Wetterdaten temp = Datensaetze[index1];

            Datensaetze[index1] = Datensaetze[index2];
            Datensaetze[index2] = temp;
        }
예제 #2
0
        static int compareWetterdatenBy(Wetterdaten value1, Wetterdaten value2, string value)
        {
            int ergebnis = 0;

            if (value == "Datum")
            {
                ergebnis = Convert.ToDateTime(value1.Datum).CompareTo(Convert.ToDateTime(value2.Datum));
            }
            else if (value == "Temperatur")
            {
                if (Convert.ToDouble(value1.Temperatur) > Convert.ToDouble(value2.Temperatur))
                {
                    ergebnis = 1;
                }
                else if (Convert.ToDouble(value1.Temperatur) < Convert.ToDouble(value2.Temperatur))
                {
                    ergebnis = -1;
                }
                else
                {
                    ergebnis = 0;
                }
            }
            else if (value == "Luftdruck")
            {
                if (Convert.ToUInt32(value1.Luftdruck) > Convert.ToUInt32(value2.Luftdruck))
                {
                    ergebnis = 1;
                }
                else if (Convert.ToUInt32(value1.Luftdruck) < Convert.ToUInt32(value2.Luftdruck))
                {
                    ergebnis = -1;
                }
                else
                {
                    ergebnis = 0;
                }
            }
            else if (value == "Luftfeuchtigkeit")
            {
                if (Convert.ToUInt32(value1.Luftfeuchtigkeit) > Convert.ToUInt32(value2.Luftfeuchtigkeit))
                {
                    ergebnis = 1;
                }
                else if (Convert.ToUInt32(value1.Luftfeuchtigkeit) < Convert.ToUInt32(value2.Luftfeuchtigkeit))
                {
                    ergebnis = -1;
                }
                else
                {
                    ergebnis = 0;
                }
            }
            else
            {
            }
            return(ergebnis);
        }
예제 #3
0
        static void GetSmallestAndSwap(ref Wetterdaten[] Datensaetze, string value, int start, int anzahl)
        {
            Wetterdaten ergebnis = Datensaetze[start];
            int         pos      = start;

            for (int index = start + 1; index < anzahl; index++)
            {
                if (compareWetterdatenBy(ergebnis, Datensaetze[index], value) > 0)
                {
                    pos = index;
                }
                else
                {
                }
            }

            tauschen(ref Datensaetze, start, pos);
        }
예제 #4
0
        static bool isDatensatzVorhanden(Wetterdaten[] datensaetze, Wetterdaten doppler, ref int pos)
        {
            bool ergebnis = false;
            int  index    = 0;

            foreach (Wetterdaten wd in datensaetze)
            {
                if (wd.Datum == doppler.Datum)
                {
                    ergebnis = true;
                    pos      = index;
                    break;
                }
                else
                {
                    ergebnis = false;
                }
                index++;
            }

            return(ergebnis);
        }
예제 #5
0
        static void WetterdatenLoeschen(ref Wetterdaten[] Datensaetze)
        {
            int index  = 1;
            int anzahl = 0;

            ConsoleKeyInfo input;
            bool           fertig = false;



            while (!fertig)
            {
                int rangevon = -1;
                int rangebis = -1;
                //Zählen
                anzahl = 0;
                foreach (Wetterdaten wd in Datensaetze)
                {
                    if (wd.Luftdruck >= 700)
                    {
                        anzahl++;
                    }
                    else
                    {
                    }
                }
                if (anzahl <= 0)
                {
                    Console.WriteLine("\nKeine Datensätze zum Löschen vorhanden!");
                    Console.WriteLine("Weiter mit einer beliebigen Taste!");
                    while (!Console.KeyAvailable)
                    {
                        ;
                    }
                    Console.ReadKey(true);
                    return;
                }
                else
                {
                }

                WetterdatenAnzeigen(Datensaetze, index);

                //Steuerung anzeigen
                if ((anzahl % 18) > 0)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.Write("<-");
                    Console.ForegroundColor = ConsoleColor.Gray;
                    Console.Write(" Seite zurück (Seite " + index + " von " + (anzahl / 18 + 1) + ") ");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.Write("(L)");
                    Console.ForegroundColor = ConsoleColor.Gray;
                    Console.Write(" Loeschen  ");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.Write("(ESC)");
                    Console.ForegroundColor = ConsoleColor.Gray;
                    Console.Write(" zurück  Seite weiter ");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.Write("->");
                    Console.ForegroundColor = ConsoleColor.Gray;
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.Write("<-");
                    Console.ForegroundColor = ConsoleColor.Gray;
                    Console.Write(" Seite zurück (Seite " + index + " von " + (anzahl / 18) + ") ");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.Write("(L)");
                    Console.ForegroundColor = ConsoleColor.Gray;
                    Console.Write(" Loeschen  ");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.Write("(ESC)");
                    Console.ForegroundColor = ConsoleColor.Gray;
                    Console.Write(" zurück  Seite weiter ");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.Write("->");
                    Console.ForegroundColor = ConsoleColor.Gray;
                }


                while (!Console.KeyAvailable)
                {
                    ;
                }
                input = Console.ReadKey(true);

                //Tasten Auswerten
                if (input.Key == ConsoleKey.LeftArrow)
                {
                    if (index > 1)
                    {
                        index--;
                    }
                    else
                    {
                    }
                    continue;
                }
                else if (input.Key == ConsoleKey.RightArrow)
                {
                    if (anzahl > 18 && index <= (anzahl / 18))
                    {
                        index++;
                    }
                    else
                    {
                    }
                    continue;
                }
                else if (input.Key == ConsoleKey.Escape)
                {
                    break;
                }
                else if (input.KeyChar == 'L' || input.KeyChar == 'l')
                {
                    //Position erfragen
                    int pos = -1;
                    Console.Write("\nGeben Sie die ");
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.Write("Nr. ");
                    Console.ForegroundColor = ConsoleColor.Gray;
                    Console.Write("des Datensatzes ein den Sie löschen wollen,\n");
                    Console.Write("oder einen ");
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.Write("Bereich ");
                    Console.ForegroundColor = ConsoleColor.Gray;
                    Console.Write("(z.B. 2-5): ");
                    Console.CursorVisible = true;
                    string eingabe = Console.ReadLine();
                    //Range?
                    if (eingabe.Contains("-"))
                    {
                        //Eingabe prüfen
                        try
                        {
                            string temp = eingabe.Substring(0, eingabe.IndexOf("-"));
                            rangevon = Convert.ToInt32(temp);
                            if (rangevon < 1)
                            {
                                rangevon = -1;
                            }
                            else
                            {
                            }
                            temp     = eingabe.Substring(eingabe.IndexOf("-") + 1);
                            rangebis = Convert.ToInt32(temp);
                            if (rangebis > anzahl)
                            {
                                rangebis = -1;
                            }
                            else
                            {
                            }
                        }
                        catch (Exception)
                        {
                            Console.WriteLine("\nNur gültige Zeichen eingeben, Format: z.B. 2-5!\nWeiter mit einer beliebigen Taste");
                            while (!Console.KeyAvailable)
                            {
                                ;
                            }
                            Console.ReadKey(true);
                            continue;
                        }
                        //Range prüfen
                        if (rangevon < 0 || rangebis < 0 || rangevon > anzahl || rangebis > anzahl)
                        {
                            Console.WriteLine("\nDer Bereich ist ungültig, es sind nur die Positionen 1 bis " + anzahl + " verfügbar!");
                            Console.WriteLine("Weiter mit einer beliebigen Taste");
                            while (!Console.KeyAvailable)
                            {
                                ;
                            }
                            Console.ReadKey(true);
                            continue;
                        }
                        else
                        {
                        }
                    }
                    //Einzelner Wert?
                    else
                    {
                        //Eingabe prüfen
                        try
                        {
                            pos = Convert.ToInt32(eingabe);
                        }
                        catch (Exception)
                        {
                            Console.WriteLine("\nNur gültige Zeichen eingeben! Weiter mit einer beliebigen Taste");
                            while (!Console.KeyAvailable)
                            {
                                ;
                            }
                            Console.ReadKey(true);
                            continue;
                        }
                        //Falsche Position gewählt
                        if (pos > anzahl || pos < 1)
                        {
                            Console.WriteLine("Ausgewählter Datensatz ungültig, es sind nur die Positionen 1 bis " + anzahl + " verfügbar!");
                            Console.WriteLine("Weiter mit einer beliebigen Taste");
                            while (!Console.KeyAvailable)
                            {
                                ;
                            }
                            Console.ReadKey();
                            continue;
                        }
                        else
                        {
                        }
                    }

                    //einzelne Werte löschen
                    if (pos > 0)
                    {
                        Console.Clear();
                        Console.Write("Ausgewählter Datensatz: ");
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine("Nr." + pos + " , vom " + Datensaetze[pos - 1].Datum);
                        Console.ForegroundColor = ConsoleColor.Gray;
                        Console.WriteLine("\n(Wert löschen mit 'return' oder abbrechen mit 'ESC')\n");
                        while (!Console.KeyAvailable)
                        {
                            ;
                        }
                        input = Console.ReadKey(true);
                        if (input.Key == ConsoleKey.Escape)
                        {
                            continue;
                        }
                        else if (input.Key == ConsoleKey.Enter)
                        {
                            Wetterdaten[] neu = new Wetterdaten[366];
                            //Löschen
                            for (int index1 = 0; index1 < pos - 1; index1++)
                            {
                                neu[index1] = Datensaetze[index1];
                            }
                            for (int index1 = pos; index1 < anzahl; index1++)
                            {
                                neu[index1 - 1] = Datensaetze[index1];
                            }
                            Datensaetze = neu;
                        }
                        else
                        {
                        }
                    }
                    else //Range löschen
                    {
                        Console.Clear();
                        Console.Write("Ausgewählte Datensätze: ");
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine("Nr." + rangevon + " bis Nr. " + rangebis);
                        Console.ForegroundColor = ConsoleColor.Gray;
                        Console.WriteLine("\n(Werte löschen mit 'return' oder abbrechen mit 'ESC')\n");
                        while (!Console.KeyAvailable)
                        {
                            ;
                        }
                        input = Console.ReadKey(true);
                        if (input.Key == ConsoleKey.Escape)
                        {
                            continue;
                        }
                        else if (input.Key == ConsoleKey.Enter)
                        {
                            Wetterdaten[] neu = new Wetterdaten[366];
                            //Löschen
                            int index1 = 0;
                            int index2 = 0;
                            for (index1 = 0; index1 < rangevon - 1; index1++)
                            {
                                neu[index1] = Datensaetze[index1];
                            }
                            for (index2 = rangebis; index2 < anzahl; index2++)
                            {
                                neu[index1] = Datensaetze[index2];
                                index1++;
                            }
                            Datensaetze = neu;
                        }
                        else
                        {
                        }
                    }
                }
                else
                {
                    //Fehler
                }
            }
        }
예제 #6
0
        static Wetterdaten DatenSuchen(int art, ref Wetterdaten[] Datensaetze, string value, ref int position)
        {
            Wetterdaten ergebnis = new Wetterdaten(); //leerer Datensatz
            //Wert validieren
            bool validdate     = false;
            bool validtemp     = false;
            bool validpressure = false;
            bool validfeuchte  = false;

            #region Daten korrekt und um was handelt es sich (Datum,Temperatur,Luftdruck oder Luftfeuchtigkeit?
            Regex Vorgabe = new Regex(@"\d{1,2}.\d{1,2}.\d{2,4}");
            Match erg     = Vorgabe.Match(value);
            if (erg.Success)
            {
                DateTime tmpdate;
                if (DateTime.TryParse(erg.Value, out tmpdate))
                {
                    //gültige Datum
                    value     = erg.Value;
                    validdate = true;
                }
                else
                {
                    //ungültiges Datum
                    validdate = false;
                }
            }
            else //kein Datum enthalten
            {
                validdate = false;
                //Temperaturwert
                Vorgabe = new Regex(@"\D{1}\d{1,2}[,]{0,1}\d{0,2}");
                erg     = Vorgabe.Match(value);
                if (erg.Success)
                {
                    validtemp = true;
                }
                else
                {
                    //kein Temperaturwert vorhanden
                    Vorgabe = new Regex(@"\d{1,4}");
                    erg     = Vorgabe.Match(value);
                    if (erg.Success)
                    {
                        //Druck oder Feuchtewert
                        if (erg.Value.Length > 2 && erg.Value[0] != '1')
                        {
                            uint wert = Convert.ToUInt32(erg.Value);
                            if (wert >= 700 && wert <= 1080 && erg.Value == value)
                            {
                                validpressure = true;
                            }
                            else
                            {
                                validpressure = false;
                            }
                        }
                        else
                        {
                            uint wert = Convert.ToUInt32(erg.Value);
                            if (wert >= 0 && wert <= 100 && erg.Value == value)
                            {
                                validfeuchte = true;
                            }
                            else
                            {
                                validfeuchte = false;
                            }
                        }
                    }
                    else
                    {
                        //Fehler
                    }
                }
            }

            if (!validdate && !validtemp && !validpressure && !validfeuchte)
            {
                return(ergebnis);
            }
            else
            {
            }
            #endregion

            #region Suche beginnen

            int anzahl = 0;

            //vorhandene Datensätze Zählen
            for (int index = 0; index < Datensaetze.Length; index++)
            {
                if (Datensaetze[index].Luftdruck >= 700)
                {
                    anzahl++;
                }
                else
                {
                }
            }
            //Sind welche vorhanden?
            if (anzahl <= 0)
            {
                return(ergebnis);
            }
            else
            {
            }

            //Wenn ja, dann 'value' suchen
            switch (art)
            {
            case 1:    //Lineares Suchen
                for (int index = 0; index < anzahl; index++)
                {
                    if (validdate)
                    {
                        string d1 = Convert.ToDateTime(Datensaetze[index].Datum).ToShortDateString();
                        string d2 = Convert.ToDateTime(value).ToShortDateString();
                        if (d1 == d2)
                        {
                            ergebnis = Datensaetze[index];
                            position = index + 1;
                            break;
                        }
                        else
                        {
                        }
                    }
                    else if (validtemp)
                    {
                        double t1 = Convert.ToDouble(Datensaetze[index].Temperatur);
                        double t2 = Convert.ToDouble(value);
                        if (t1 == t2)
                        {
                            ergebnis = Datensaetze[index];
                            position = index + 1;
                            break;
                        }
                        else
                        {
                        }
                    }
                    else if (validpressure)
                    {
                        uint p1 = Convert.ToUInt32(Datensaetze[index].Luftdruck);
                        uint p2 = Convert.ToUInt32(value);
                        if (p1 == p2)
                        {
                            ergebnis = Datensaetze[index];
                            position = index + 1;
                            break;
                        }
                        else
                        {
                        }
                    }
                    else if (validfeuchte)
                    {
                        uint f1 = Convert.ToUInt32(Datensaetze[index].Luftfeuchtigkeit);
                        uint f2 = Convert.ToUInt32(value);
                        if (f1 == f2)
                        {
                            ergebnis = Datensaetze[index];
                            position = index + 1;
                            break;
                        }
                        else
                        {
                        }
                    }
                    else
                    {
                        //FEhler
                    }
                }
                break;

            case 2:     //binäres Suchen
                //erst Sortieren dann suchen
                if (validdate)
                {
                    DatenSortieren(1, ref Datensaetze, "Datum", true);

                    int pivot = anzahl / 2;
                    int start = 0;
                    int end   = anzahl;

                    do
                    {
                        DateTime d1 = Convert.ToDateTime(Datensaetze[pivot].Datum);
                        DateTime d2 = Convert.ToDateTime(value);

                        if (d1 == d2)
                        {
                            ergebnis = Datensaetze[pivot];
                            position = pivot + 1;
                            start    = end = 0;
                        }
                        else if (d1 > d2)
                        {
                            start = 0;
                            end   = pivot;
                            pivot = end / 2;
                        }
                        else
                        {
                            start = pivot;
                            end   = anzahl;
                            pivot = start + (end - start) / 2;
                        }
                    } while ((end - start) != 0);
                }
                else if (validtemp)
                {
                    DatenSortieren(1, ref Datensaetze, "Temperatur", true);

                    int pivot = anzahl / 2;
                    int start = 0;
                    int end   = anzahl;

                    do
                    {
                        double t1 = Convert.ToDouble(Datensaetze[pivot].Temperatur);
                        double t2 = Convert.ToDouble(value);

                        if (Math.Abs(t1 - t2) < 1E-05)
                        {
                            ergebnis = Datensaetze[pivot];
                            position = pivot + 1;
                            start    = end = 0;
                        }
                        else if (t1 > t2)
                        {
                            start = 0;
                            end   = pivot;
                            pivot = end / 2;
                        }
                        else
                        {
                            start = pivot;
                            end   = anzahl;
                            pivot = start + (end - start) / 2;
                        }
                    } while ((end - start) != 0);
                }
                else if (validpressure)
                {
                    DatenSortieren(1, ref Datensaetze, "Luftdruck", true);;

                    int pivot = anzahl / 2;
                    int start = 0;
                    int end   = anzahl;

                    do
                    {
                        uint p1 = Convert.ToUInt32(Datensaetze[pivot].Luftdruck);
                        uint p2 = Convert.ToUInt32(value);

                        if (p1 == p2)
                        {
                            ergebnis = Datensaetze[pivot];
                            position = pivot + 1;
                            start    = end = 0;
                        }
                        else if (p1 > p2)
                        {
                            start = 0;
                            end   = pivot;
                            pivot = end / 2;
                        }
                        else
                        {
                            start = pivot;
                            end   = anzahl;
                            pivot = start + (end - start) / 2;
                        }
                    } while ((end - start) != 0);
                }
                else if (validfeuchte)
                {
                    DatenSortieren(1, ref Datensaetze, "Luftfeuchtigkeit", true);

                    int pivot = anzahl / 2;
                    int start = 0;
                    int end   = anzahl;

                    do
                    {
                        uint f1 = Convert.ToUInt32(Datensaetze[pivot].Luftfeuchtigkeit);
                        uint f2 = Convert.ToUInt32(value);

                        if (f1 == f2)
                        {
                            ergebnis = Datensaetze[pivot];
                            position = pivot + 1;
                            start    = end = 0;
                        }
                        else if (f1 > f2)
                        {
                            start = 0;
                            end   = pivot;
                            pivot = end / 2;
                        }
                        else
                        {
                            start = pivot;
                            end   = anzahl;
                            pivot = start + (end - start) / 2;
                        }
                    } while ((end - start) != 0);
                }
                else
                {
                }
                break;

            default:
                break;
            }
            #endregion

            return(ergebnis);
        }
예제 #7
0
        static void Run()
        {
            //Zentrale Daten für die Anwendung
            Wetterdaten[] Datensaetze = new Wetterdaten[366];

            #region Testdaten
            DateTime temp = Convert.ToDateTime("1.1.2020");
            for (int index = 0; index < 366; index++)
            {
                Datensaetze[index]       = new Wetterdaten();
                Datensaetze[index].Datum = temp.ToShortDateString();
                temp = temp.Date.AddDays(1);
                Datensaetze[index].Temperatur       = 23.7 + index;
                Datensaetze[index].Luftdruck        = 760 + ((uint)index * 2);
                Datensaetze[index].Luftfeuchtigkeit = 35 + ((uint)index * 2);
            }

            //Standardpfade einstellen

            /*string tempdir = Directory.GetCurrentDirectory();
             * Settings.Default.Exportpfad = tempdir + @"\Export";
             * Settings.Default.Importpfad = tempdir + @"\Import";
             * Settings.Default.Save();*/
            #endregion

            //Lokale Daten für run()
            bool weiter = true;

            //SplashInfos
            Splashinfo();

            //Hauptschleife
            while (weiter)
            {
                //Hauptmenü anzeigen und auswerten
                Console.CursorVisible = false;
                int auswahl = HauptmenueAnzeigenAuswerten();
                switch (auswahl)
                {
                case 1:     //Wetterdaten verwalten
                    WetterdatenVerwalten(ref Datensaetze);
                    break;

                case 2:     //Wetterdaten anzeigen
                    WetterdatenAnzeigen(Datensaetze);
                    break;

                case 3:     //Wetterdaten auswerten
                    WetterdatenAuswerten(Datensaetze);
                    break;

                case 4:     //Wetterdaten importieren
                    WetterdatenImportieren(ref Datensaetze);
                    break;

                case 5:     //Wetterdaten exportieren
                    WetterdatenExportieren(ref Datensaetze);
                    break;

                case 6:     //Pfade konfigurieren
                    Pfadekonfigurieren();
                    break;

                case 7:     //beenden
                    weiter = false;
                    break;
                }
            }

            //Datensicherung
        }
        static bool DatenImportieren(ref Wetterdaten[] Datensaetze, string Pfad, string name, ref int anzahlneue)
        {
            bool ok     = false;
            int  anzahl = 0;

            //zählen
            foreach (Wetterdaten wd in Datensaetze)
            {
                if (wd.Luftdruck > 700)
                {
                    anzahl++;
                }
                else
                {
                }
            }

            Wetterdaten[] neu = new Wetterdaten[366];
            FileStream    FS  = new FileStream(Pfad + "\\" + name, FileMode.Open, FileAccess.Read);

            StreamReader SR = new StreamReader(FS, Encoding.UTF8);

            //Titelzeile
            string input = SR.ReadLine();

            if (!input.Contains("Datum"))
            {
                ok = false;
            }
            else
            {
                int    index     = 0;
                string tempinput = "";
                while (!SR.EndOfStream)
                {
                    tempinput = SR.ReadLine();
                    string Datum = tempinput.Substring(0, tempinput.IndexOf(";"));
                    tempinput = tempinput.Substring(tempinput.IndexOf(";") + 1);
                    string Temperatur = tempinput.Substring(0, tempinput.IndexOf(";"));
                    tempinput = tempinput.Substring(tempinput.IndexOf(";") + 1);
                    string Luftdruck = tempinput.Substring(0, tempinput.IndexOf(";"));
                    tempinput = tempinput.Substring(tempinput.IndexOf(";") + 1);
                    string Luftfeuchtigkeit = tempinput.Substring(0);
                    tempinput = tempinput.Substring(tempinput.IndexOf(";") + 1);

                    neu[index].Datum            = Datum;
                    neu[index].Temperatur       = Convert.ToDouble(Temperatur);
                    neu[index].Luftdruck        = Convert.ToUInt32(Luftdruck);
                    neu[index].Luftfeuchtigkeit = Convert.ToUInt32(Luftfeuchtigkeit);
                    index++;
                }
                if (index > 0)
                {
                    ok = true;
                    //Überschreiben oder anhängen?
                    Console.CursorVisible = false;
                    Console.WriteLine("\nEs sind " + index + " Datensätze zum Import vorhanden!");
                    Console.Write("\nWollen Sie die vorhandenen " + anzahl + " Datensätze \n");
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.Write("(U)");
                    Console.ForegroundColor = ConsoleColor.Gray;
                    Console.Write("eberschreiben oder\n\nDie Datensätze \n");
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.Write("(A)");
                    Console.ForegroundColor = ConsoleColor.Gray;
                    Console.Write("nhängen?\n\nAbbrechen mit ");
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine("(ESC)");
                    Console.ForegroundColor = ConsoleColor.Gray;
                    Console.CursorVisible   = true;
                    while (!Console.KeyAvailable)
                    {
                        ;
                    }
                    ConsoleKeyInfo inputconsole = Console.ReadKey(true);
                    Console.CursorVisible = false;

                    if (inputconsole.Key == ConsoleKey.Escape)
                    {
                        ok = false;
                    }
                    else if (inputconsole.Key == ConsoleKey.U)
                    {
                        ok          = true;
                        Datensaetze = new Wetterdaten[366];
                        if (index < 367)
                        {
                            anzahlneue = index;
                            for (int index2 = 0; index2 < index; index2++)
                            {
                                Datensaetze[index2] = neu[index2];
                            }
                            ok = true;
                        }
                        else
                        {
                            Console.WriteLine("\nEs können nur 366 Datensätze von importiert werden! j/n?");
                            while (!Console.KeyAvailable)
                            {
                                ;
                            }
                            inputconsole = Console.ReadKey(true);
                            if (inputconsole.Key == ConsoleKey.J)
                            {
                                anzahlneue = 366;
                                if (anzahlneue > index)
                                {
                                    anzahlneue = index;
                                }
                                else
                                {
                                }

                                for (int index2 = 0; index2 < anzahlneue; index2++)
                                {
                                    Datensaetze[index2] = neu[index2];
                                }
                                ok = true;
                            }
                            else
                            {
                                ok = false;
                            }
                        }
                    }
                    else if (inputconsole.Key == ConsoleKey.A)
                    {
                        ok = true;
                        if (anzahl >= 366)
                        {
                            Console.WriteLine("Es können keine weiteren Daten angehängt werden!");
                            Console.WriteLine("Weiter mit einer beliebigen Taste!");
                            while (!Console.KeyAvailable)
                            {
                                ;
                            }
                            Console.ReadKey(true);
                            ok = false;
                        }
                        else
                        {
                            if ((366 - anzahl - index) < 0)
                            {
                                Console.WriteLine("\nEs können nur " + (366 - anzahl) + " Datensätze von " + index + " angehängt werden! j/n?");
                                while (!Console.KeyAvailable)
                                {
                                    ;
                                }
                                inputconsole = Console.ReadKey(true);
                                if (inputconsole.Key == ConsoleKey.J)
                                {
                                    anzahlneue = (366 - anzahl);
                                    if (anzahlneue > index)
                                    {
                                        anzahlneue = index;
                                    }
                                    else
                                    {
                                    }
                                    int doppler = 0;
                                    for (int index2 = 0; index2 < anzahlneue; index2++)
                                    {
                                        int pos = -1;
                                        //Doppler prüfen
                                        if (!isDatensatzVorhanden(Datensaetze, neu[index2], ref pos))
                                        {
                                            Datensaetze[anzahl + index2] = neu[index2];
                                        }
                                        else
                                        {
                                            doppler++;
                                            Console.Clear();
                                            Console.WriteLine("Datensatz vorhanden:\n");
                                            Console.ForegroundColor = ConsoleColor.Yellow;
                                            Console.WriteLine("Datum: " + Datensaetze[pos].Datum);
                                            Console.WriteLine("Temperatur: " + Datensaetze[pos].Temperatur.ToString("F2"));
                                            Console.WriteLine("Luftdruck: " + Datensaetze[pos].Luftdruck.ToString());
                                            Console.WriteLine("Luftfeuchtigkeit: " + Datensaetze[pos].Luftfeuchtigkeit.ToString());
                                            Console.ForegroundColor = ConsoleColor.Gray;
                                            Console.WriteLine("\nersetzen durch:\n");
                                            Console.ForegroundColor = ConsoleColor.Yellow;
                                            Console.WriteLine("Datum: " + neu[index2].Datum);
                                            Console.WriteLine("Temperatur: " + neu[index2].Temperatur.ToString("F2"));
                                            Console.WriteLine("Luftdruck: " + neu[index2].Luftdruck.ToString());
                                            Console.WriteLine("Luftfeuchtigkeit: " + neu[index2].Luftfeuchtigkeit.ToString());
                                            Console.ForegroundColor = ConsoleColor.Gray;
                                            Console.WriteLine("\n(j/n)?");
                                            while (!Console.KeyAvailable)
                                            {
                                                ;
                                            }
                                            inputconsole = Console.ReadKey(true);
                                            if (inputconsole.Key == ConsoleKey.J)
                                            {
                                                Datensaetze[pos] = neu[index2];
                                            }
                                            else
                                            {
                                            }
                                            anzahlneue--;
                                        }
                                    }

                                    ok = true;
                                }
                                else
                                {
                                    ok = false;
                                }
                            }
                            else
                            {
                                anzahlneue = index;
                                int doppler = 0;
                                int pos     = -1;
                                for (int index2 = 0; index2 < index; index2++)
                                {
                                    //Doppler prüfen
                                    if (!isDatensatzVorhanden(Datensaetze, neu[index2], ref pos))
                                    {
                                        Datensaetze[anzahl + index2] = neu[index2];
                                    }
                                    else
                                    {
                                        doppler++;
                                        Console.Clear();
                                        Console.WriteLine("Datensatz vorhanden:\n");
                                        Console.ForegroundColor = ConsoleColor.Yellow;
                                        Console.WriteLine("Datum: " + Datensaetze[pos].Datum);
                                        Console.WriteLine("Temperatur: " + Datensaetze[pos].Temperatur.ToString("F2"));
                                        Console.WriteLine("Luftdruck: " + Datensaetze[pos].Luftdruck.ToString());
                                        Console.WriteLine("Luftfeuchtigkeit: " + Datensaetze[pos].Luftfeuchtigkeit.ToString());
                                        Console.ForegroundColor = ConsoleColor.Gray;
                                        Console.WriteLine("\nersetzen durch:\n");
                                        Console.ForegroundColor = ConsoleColor.Yellow;
                                        Console.WriteLine("Datum: " + neu[index2].Datum);
                                        Console.WriteLine("Temperatur: " + neu[index2].Temperatur.ToString("F2"));
                                        Console.WriteLine("Luftdruck: " + neu[index2].Luftdruck.ToString());
                                        Console.WriteLine("Luftfeuchtigkeit: " + neu[index2].Luftfeuchtigkeit.ToString());
                                        Console.ForegroundColor = ConsoleColor.Gray;
                                        Console.WriteLine("\n(j/n)?");

                                        while (!Console.KeyAvailable)
                                        {
                                            ;
                                        }
                                        inputconsole = Console.ReadKey(true);

                                        if (inputconsole.Key == ConsoleKey.J)
                                        {
                                            Datensaetze[pos] = neu[index2];
                                        }
                                        else
                                        {
                                        }
                                        anzahlneue--;
                                    }
                                }
                                ok = true;
                            }
                        }
                    }
                    else
                    {
                        ok = false;
                    }
                }
                else
                {
                    ok = false;
                }
            }
            SR.Close();
            FS.Close();
            return(ok);
        }
        static void WetterdatenAnzeigen(Wetterdaten[] Datensaetze)
        {
            int  index  = 1;
            bool fertig = false;
            int  anzahl = 0;

            //Zählen
            foreach (Wetterdaten wd in Datensaetze)
            {
                if (wd.Luftdruck >= 700)
                {
                    anzahl++;
                }
                else
                {
                }
            }


            //Daten anzeigen
            ConsoleKeyInfo input;

            do
            {
                WetterdatenAnzeigen(Datensaetze, index);

                //Menü
                if ((anzahl % 15) > 0)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.Write("<-");
                    Console.ForegroundColor = ConsoleColor.Gray;
                    Console.Write(" Seite zurück    (Seite " + index + " von " + (anzahl / 18 + 1) + ")     ");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.Write("(ESC)");
                    Console.ForegroundColor = ConsoleColor.Gray;
                    Console.Write(" zurück           Seite weiter ");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.Write("->");
                    Console.ForegroundColor = ConsoleColor.Gray;
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.Write("<-");
                    Console.ForegroundColor = ConsoleColor.Gray;
                    Console.Write(" Seite zurück    (Seite " + index + " von " + (anzahl / 18) + ")     ");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.Write("(ESC)");
                    Console.ForegroundColor = ConsoleColor.Gray;
                    Console.Write(" zurück           Seite weiter ");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.Write("->");
                    Console.ForegroundColor = ConsoleColor.Gray;
                }
                //Sortieren und Suchen
                Console.WriteLine();
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("             (F) ");
                Console.ForegroundColor = ConsoleColor.Gray;
                Console.Write("Datensatz finden          ");
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("(S) ");
                Console.ForegroundColor = ConsoleColor.Gray;
                Console.Write("Datensätze sortieren\n");

                //Auswerten
                while (!Console.KeyAvailable)
                {
                    ;
                }
                input = Console.ReadKey(true);

                if (input.Key == ConsoleKey.LeftArrow)
                {
                    if (index > 1)
                    {
                        index--;
                    }
                    else
                    {
                    }
                }
                else if (input.Key == ConsoleKey.RightArrow)
                {
                    if (anzahl > 15 && index <= (anzahl / 15))
                    {
                        index++;
                    }
                    else
                    {
                    }
                }
                else if (input.Key == ConsoleKey.Escape)
                {
                    fertig = true;
                }
                else if (input.Key == ConsoleKey.F)
                {
                    if (anzahl <= 0)
                    {
                        continue;
                    }
                    else
                    {
                    }
                    Console.CursorTop = Console.CursorTop - 2;
                    Console.Write("                                                                                                  \n");
                    Console.CursorTop = Console.CursorTop - 1;
                    Console.Write("                                                                                                  \n");
                    Console.CursorTop = Console.CursorTop - 3;
                    bool        ok       = false;
                    Wetterdaten ergebnis = new Wetterdaten();
                    int         position = 0;
                    string      eingabe;
                    do
                    {
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.Write("      (L)");
                        Console.ForegroundColor = ConsoleColor.Gray;
                        Console.Write("ineares Suchen           ");
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.Write("(B)");
                        Console.ForegroundColor = ConsoleColor.Gray;
                        Console.Write("inäres Suchen       ");
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.Write("(ESC) ");
                        Console.ForegroundColor = ConsoleColor.Gray;
                        Console.Write("zurück");

                        while (!Console.KeyAvailable)
                        {
                            ;
                        }
                        input = Console.ReadKey(true);
                        if (input.Key == ConsoleKey.L)
                        {
                            Console.CursorVisible   = true;
                            Console.CursorLeft      = 0;
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.WriteLine("Lineares Suchen                                                         ");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.WriteLine("Geben Sie den zu suchenden Wert ein:");
                            Console.Write("Format: ");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("Datum");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write(" (tt.mm.jjjj), ");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("Temperatur (°C)");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write(" (vv,nn), ");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("Luftdruck (hPa)");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write(" (dddd), ");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("\nLuftfeuchtigkeit (%)");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write(" (fff))\n");
                            Console.Write("(Eingabe mit ");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("return ");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write("bestätigen oder ");
                            Console.ForegroundColor = ConsoleColor.Red;
                            Console.Write("abbrechen: return");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write(" drücken)\n");
                            eingabe = Console.ReadLine();
                            Console.CursorVisible = false;

                            if (eingabe == "")
                            {
                                break;
                            }
                            else
                            {
                            }

                            ergebnis = DatenSuchen(1, ref Datensaetze, eingabe, ref position);
                        }
                        else if (input.Key == ConsoleKey.B)
                        {
                            Console.CursorVisible   = true;
                            Console.CursorLeft      = 0;
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.WriteLine("Binäres Suchen                                                         ");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.WriteLine("Geben Sie den zu suchenden Wert ein:");
                            Console.Write("Format: ");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("Datum");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write(" (tt.mm.jjjj), ");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("Temperatur (°C)");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write(" (vv,nn), ");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("Luftdruck (hPa)");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write(" (dddd), ");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("\nLuftfeuchtigkeit (%)");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write(" (fff))\n");
                            Console.Write("(Eingabe mit ");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("return ");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write("bestätigen oder ");
                            Console.ForegroundColor = ConsoleColor.Red;
                            Console.Write("abbrechen: return");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write(" drücken)\n");
                            eingabe = Console.ReadLine();
                            Console.CursorVisible = false;

                            if (eingabe == "")
                            {
                                break;
                            }
                            else
                            {
                            }

                            position = 0;

                            ergebnis = DatenSuchen(2, ref Datensaetze, eingabe, ref position);
                        }
                        else if (input.Key == ConsoleKey.Escape)
                        {
                            break;
                        }
                        else
                        {
                            Console.CursorLeft = 0;
                            Console.Write("                                                                                 ");
                            Console.CursorLeft = 0;
                            Console.CursorTop  = Console.CursorTop - 1;
                            ok = false;
                            continue;
                        }

                        if (ergebnis.Luftdruck >= 700)
                        {
                            string format = "{0,-18}{1,-12}";
                            Console.WriteLine("\nGefundener Datensatz\n");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("Nr.");
                            Console.Write((position) + " :\n");

                            Console.WriteLine(format, "Datum: ", Datensaetze[position - 1].Datum);
                            Console.WriteLine(format, "Temperatur: ", Datensaetze[position - 1].Temperatur.ToString("F2") + " °C");
                            Console.WriteLine(format, "Luftdruck: ", Datensaetze[position - 1].Luftdruck + " hPa");
                            Console.WriteLine(format, "Luftfeuchtigkeit: ", Datensaetze[position - 1].Luftfeuchtigkeit + " %\n");
                            Console.ForegroundColor = ConsoleColor.Gray;
                        }
                        else
                        {
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.WriteLine("Der Text \"" + eingabe + "\" wurde nicht gefunden!");
                            Console.ForegroundColor = ConsoleColor.Gray;
                        }

                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("\nWeiter mit einer beliebigen Taste!");
                        Console.ForegroundColor = ConsoleColor.Gray;
                        while (!Console.KeyAvailable)
                        {
                            ;
                        }
                        Console.ReadKey(true);
                        ok = true;
                    } while (!ok);
                }
                else if (input.Key == ConsoleKey.S)
                {
                    if (anzahl <= 0)
                    {
                        continue;
                    }
                    else
                    {
                    }
                    Console.CursorTop = Console.CursorTop - 2;
                    Console.Write("                                                                                                  \n");
                    Console.CursorTop = Console.CursorTop - 1;
                    Console.Write("                                                                                                  \n");
                    Console.CursorTop = Console.CursorTop - 3;
                    bool   ok        = false;
                    bool   aufwaerts = true;
                    string eingabe   = "";
                    do
                    {
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.Write("      (B)");
                        Console.ForegroundColor = ConsoleColor.Gray;
                        Console.Write("ubble Sort           ");
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.Write("(S)");
                        Console.ForegroundColor = ConsoleColor.Gray;
                        Console.Write("election Sort       ");
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.Write("(ESC) ");
                        Console.ForegroundColor = ConsoleColor.Gray;
                        Console.Write("zurück");

                        while (!Console.KeyAvailable)
                        {
                            ;
                        }
                        input = Console.ReadKey(true);
                        if (input.Key == ConsoleKey.B)
                        {
                            Console.CursorVisible   = false;
                            Console.CursorLeft      = 0;
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.WriteLine("Bubble Sort                                                         ");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.WriteLine("Wonach soll sortiert werden?");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("(D)");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write("atum, ");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("(T)");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write("emperatur, ");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("(L)");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write("uftdruck, Luft");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("(F)");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write("euchtigkeit, ");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("(ESC)");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write(" zurück\n");

                            while (!Console.KeyAvailable)
                            {
                                ;
                            }
                            input = Console.ReadKey(true);
                            if (input.Key == ConsoleKey.D)
                            {
                                eingabe = "Datum";
                            }
                            else if (input.Key == ConsoleKey.T)
                            {
                                eingabe = "Temperatur";
                            }
                            else if (input.Key == ConsoleKey.L)
                            {
                                eingabe = "Luftdruck";
                            }
                            else if (input.Key == ConsoleKey.F)
                            {
                                eingabe = "Luftfeuchtigkeit";
                            }
                            else if (input.Key == ConsoleKey.Escape)
                            {
                                break;
                            }
                            else
                            {
                                break;
                            }
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("(A)");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write("ufwärts oder ab");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("(w)");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write("ärts sortieren? ");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("(ESC)");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write(" zurück");
                            while (!Console.KeyAvailable)
                            {
                                ;
                            }
                            input = Console.ReadKey(true);
                            if (input.Key == ConsoleKey.A)
                            {
                                aufwaerts = true;
                            }
                            else if (input.Key == ConsoleKey.W)
                            {
                                aufwaerts = false;
                            }
                            else if (input.Key == ConsoleKey.Escape)
                            {
                                break;
                            }
                            else
                            {
                                break;
                            }

                            DatenSortieren(1, ref Datensaetze, eingabe, aufwaerts);

                            ok = true;
                            Console.CursorVisible = false;
                        }
                        else if (input.Key == ConsoleKey.S)
                        {
                            Console.CursorVisible   = true;
                            Console.CursorLeft      = 0;
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.WriteLine("Selection Sort                                                       ");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.WriteLine("Wonach soll sortiert werden?\n");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("(D)");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write("atum, ");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("(T)");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write("emperatur, ");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("(L)");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write("uftdruck, Luft");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("(F)");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write("euchtigkeit\n");
                            while (!Console.KeyAvailable)
                            {
                                ;
                            }
                            input = Console.ReadKey(true);
                            if (input.Key == ConsoleKey.D)
                            {
                                eingabe = "Datum";
                            }
                            else if (input.Key == ConsoleKey.T)
                            {
                                eingabe = "Temperatur";
                            }
                            else if (input.Key == ConsoleKey.L)
                            {
                                eingabe = "Luftdruck";
                            }
                            else if (input.Key == ConsoleKey.F)
                            {
                                eingabe = "Luftfeuchtigkeit";
                            }
                            else if (input.Key == ConsoleKey.Escape)
                            {
                                break;
                            }
                            else
                            {
                                break;
                            }
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("(A)");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write("ufwärts oder ab");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("(w)");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write("ärts sortieren? ");
                            Console.ForegroundColor = ConsoleColor.Yellow;
                            Console.Write("(ESC)");
                            Console.ForegroundColor = ConsoleColor.Gray;
                            Console.Write(" zurück");
                            while (!Console.KeyAvailable)
                            {
                                ;
                            }
                            input = Console.ReadKey(true);
                            if (input.Key == ConsoleKey.A)
                            {
                                aufwaerts = true;
                            }
                            else if (input.Key == ConsoleKey.W)
                            {
                                aufwaerts = false;
                            }
                            else if (input.Key == ConsoleKey.Escape)
                            {
                                break;
                            }
                            else
                            {
                                break;
                            }

                            DatenSortieren(2, ref Datensaetze, eingabe, aufwaerts);

                            ok = true;
                            Console.CursorVisible = false;
                        }
                        else if (input.Key == ConsoleKey.Escape)
                        {
                            break;
                        }
                        else
                        {
                            Console.CursorLeft = 0;
                            Console.Write("                                                                                 ");
                            Console.CursorLeft = 0;
                            Console.CursorTop  = Console.CursorTop - 1;
                            ok = false;
                            continue;
                        }
                    } while (!ok);
                }
                else
                {
                    //Fehler
                }
            } while (!fertig);
        }