如何从控制台的ASCII框中删除ASCII字符。 C#

时间:2018-08-02 06:03:29

标签: c# matrix console ascii

我有一个具体问题。我编写了一个程序,在其中在控制台中显示一种矩阵,其中的数字周围带有ascii框。

现在,我编写了一种方法,该方法在矩阵内显示具有特定颜色,描述等内容的特定“区域”。对于这些区域,我想删除/删除单个ASCII字符,以便为每个区域获得1个框。

希望你能帮助我!

my output at the moment:

我的代码:

public static void OrderByMaxValue(int input, string strInput)
    {
        try
        {
            //Ruft die Datenbank-Helper auf
            var results = DBHelper.GetMaxValueAndIDForMeasurement(input);
            var koordinaten = DBHelper.GetMessflaecheForKopf(input);
            var sensorKoordinaten = DBHelper.GetCoordinatesForSensor(koordinaten.ID);
            var zonen = DBHelper.GetEverythingFromZoneAndZonenZuordnung(koordinaten.ID);

            if (strInput == "JA")
            {
                //Schleift durch die bestimmten Koordinaten
                for (int y = 1; y <= koordinaten.Laenge; y++)
                {
                    for (int o = 1; o <= koordinaten.Breite; o++)
                    {
                        //Bestimmt welcher Sensor auf welcher Koordinate liegt
                        var sK = sensorKoordinaten
                            .Where(sKoordinaten =>
                                sKoordinaten.XKoordinate == o && sKoordinaten.YKoordinate == y)
                            .DefaultIfEmpty(new Sensor())
                            .FirstOrDefault();

                        var z = zonen.Where(zone => zone.IDSensor == sK.ID).FirstOrDefault();

                        if (z != null)
                        {
                            Console.ForegroundColor = (ConsoleColor)z.Farbe;
                        }
                        //Legt den Wert auf den Sensor
                        var sattelMaximalwert = results
                            .Where(sattelMaxi =>
                                sattelMaxi.IDSensor == sK.ID)
                            .DefaultIfEmpty(new SattelMax())
                            .FirstOrDefault();

                        Console.Write(" ┌".PadRight(sattelMaximalwert.Maximalwert.ToString().Length + 3, '─') + "─┐ ");
                        Console.ForegroundColor = ConsoleColor.Gray;
                    }

                    Console.Write("\n");

                    for (int x = 1; x <= koordinaten.Breite; x++)
                    {
                        //Bestimmt welcher Sensor auf welcher Koordinate liegt
                        var sK = sensorKoordinaten
                            .Where(sKoordinaten =>
                                sKoordinaten.XKoordinate == x && sKoordinaten.YKoordinate == y)
                            .DefaultIfEmpty(new Sensor())
                            .FirstOrDefault();

                        var z = zonen.Where(zone => zone.IDSensor == sK.ID).FirstOrDefault();

                        if (z != null)
                        {
                            Console.ForegroundColor = (ConsoleColor)z.Farbe;
                        }

                        //Legt den Wert auf den Sensor
                        var sattelMaximalwert = results
                            .Where(sattelMaxi =>
                                sattelMaxi.IDSensor == sK.ID)
                            .DefaultIfEmpty(new SattelMax())
                            .FirstOrDefault();
                        Console.Write($" | {sattelMaximalwert.Maximalwert} | ");
                        Console.ForegroundColor = ConsoleColor.Gray;
                    }

                    Console.Write("\n");

                    for (int u = 1; u <= koordinaten.Breite; u++)
                    {
                        //Bestimmt welcher Sensor auf welcher Koordinate liegt
                        var sK = sensorKoordinaten
                            .Where(sKoordinaten =>
                                sKoordinaten.XKoordinate == u && sKoordinaten.YKoordinate == y)
                            .DefaultIfEmpty(new Sensor())
                            .FirstOrDefault();

                        var z = zonen.Where(zone => zone.IDSensor == sK.ID).FirstOrDefault();

                        if (z != null)
                        {
                            Console.ForegroundColor = (ConsoleColor)z.Farbe;
                        }

                        //Legt den Wert auf den Sensor
                        var sattelMaximalwert = results
                            .Where(sattelMaxi =>
                                sattelMaxi.IDSensor == sK.ID)
                            .DefaultIfEmpty(new SattelMax())
                            .FirstOrDefault();

                        Console.Write(" └".PadRight(sattelMaximalwert.Maximalwert.ToString().Length + 3, '─') + "─┘ ");
                        Console.ForegroundColor = ConsoleColor.Gray;
                    }
                    Console.Write("\n");
                }

                Console.ReadKey();
            }
            else if (strInput == "NEIN")
            {
                //Schleift durch die bestimmten Koordinaten
                for (int y = 1; y <= koordinaten.Laenge; y++)
                {
                    for (int o = 1; o <= koordinaten.Breite; o++)
                    {
                        //Bestimmt welcher Sensor auf welcher Koordinate liegt
                        var sK = sensorKoordinaten
                            .Where(sKoordinaten =>
                                sKoordinaten.XKoordinate == o && sKoordinaten.YKoordinate == y)
                            .DefaultIfEmpty(new Sensor())
                            .FirstOrDefault();

                        //Legt den Wert auf den Sensor
                        var sattelMaximalwert = results
                            .Where(sattelMaxi =>
                                sattelMaxi.IDSensor == sK.ID)
                            .DefaultIfEmpty(new SattelMax())
                            .FirstOrDefault();

                        Console.Write(" ┌".PadRight(sattelMaximalwert.Maximalwert.ToString().Length + 3, '─') + "─┐ ");
                    }

                    Console.Write("\n");

                    for (int x = 1; x <= koordinaten.Breite; x++)
                    {
                        //Bestimmt welcher Sensor auf welcher Koordinate liegt
                        var sK = sensorKoordinaten
                            .Where(sKoordinaten =>
                                sKoordinaten.XKoordinate == x && sKoordinaten.YKoordinate == y)
                            .DefaultIfEmpty(new Sensor())
                            .FirstOrDefault();

                        //Legt den Wert auf den Sensor
                        var sattelMaximalwert = results
                            .Where(sattelMaxi =>
                                sattelMaxi.IDSensor == sK.ID)
                            .DefaultIfEmpty(new SattelMax())
                            .FirstOrDefault();
                        Console.Write($" | {sattelMaximalwert.Maximalwert} | ");
                    }

                    Console.Write("\n");

                    for (int u = 1; u <= koordinaten.Breite; u++)
                    {
                        //Bestimmt welcher Sensor auf welcher Koordinate liegt
                        var sK = sensorKoordinaten
                            .Where(sKoordinaten =>
                                sKoordinaten.XKoordinate == u && sKoordinaten.YKoordinate == y)
                            .DefaultIfEmpty(new Sensor())
                            .FirstOrDefault();

                        //Legt den Wert auf den Sensor
                        var sattelMaximalwert = results
                            .Where(sattelMaxi =>
                                sattelMaxi.IDSensor == sK.ID)
                            .DefaultIfEmpty(new SattelMax())
                            .FirstOrDefault();

                        Console.Write(" └".PadRight(sattelMaximalwert.Maximalwert.ToString().Length + 3, '─') + "─┘ ");
                    }
                    Console.Write("\n");
                }

                Console.ReadKey();
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }

0 个答案:

没有答案