Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von CarnifeX
Thema: [gelöst] SQL nach Wortauschnitten durchsuchen
Am im Forum: Grundlagen von C#

Hey Leute,

ich brauch mal wieder euere Hilfe.
Und zwar habe ich eine SQL Datenbank mit 2 Spalten.
In der einen Spalte steht eine ID und in der anderen eine Domain.
Mein Ziel:
Ich möchte einen Teil der Domain eingeben (z.B. "mycsharp") (Kompletter Text in meiner Domain-Spalte lautet jedoch: "www.mycsharp.de")
Und anschließend die ID zurückbekommen.

Mein Problem:
Ich muss immer komplett "www.mycsharp.de" anstatt mycsharp oder einfach nur sharp eingeben.

Kann mir jemand weiterhelfen?

 Console.WriteLine("Geben Sie eine Domain ein nach der gesucht werden soll:");
            string eingabe = Console.ReadLine();

            SqlCommand sqlCommand = new SqlCommand();
            sqlCommand.Connection = new SqlConnection("Data Source=Server;Initial Catalog=test;Integrated Security=True;Connect Timeout=20");  // SQL Verbindungsstring
            sqlCommand.Connection.Open();

            sqlCommand.Parameters.Add("@DM", eingabe);
            sqlCommand.CommandText = "SELECT MedienId FROM Domain.List WHERE Domain LIKE @DM"; // SQL Query

            SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();  // Select ausführen

            while (sqlDataReader.Read()) // Lese solange Werte vorhanden sind
            {
                int variable = sqlDataReader.GetInt32(0); // Spalte 0 der Abfrage auslesen
                Console.WriteLine(sqlDataReader.GetInt32(0));
            }

            sqlCommand.Connection.Close();

            Console.WriteLine("\n\n");

Thema: Schleife im Hintergrund (dauernd) laufen lassen.
Am im Forum: Grundlagen von C#

Hi Leute,

ist es möglich dass man eine Schleife in einer Konsolenanwendung parallel zum Rest laufen lassen kann?

Beispiel:
Ich habe einen Text der durch eine Schleife dauernd seine Farbe wechselt:

while (!Console.KeyAvailable)
            {
                String[] FarbenNamen = ConsoleColor.GetNames(typeof(ConsoleColor));
                int numColors = FarbenNamen.Length;
                Random rand = new Random();

                string colorName = FarbenNamen[rand.Next(numColors)];
                ConsoleColor color = (ConsoleColor)Enum.Parse(typeof(ConsoleColor), colorName);
                Console.ForegroundColor = color;
                Console.Write(TestTExt);
                Thread.Sleep(100);
                Console.Write("\b\b\b\b");

            } while (Console.ReadKey(true).Key != ConsoleKey.Enter) ;


Jetzt möchte ich eben dass dieser Text dauernd stehen bleibt(dauernd die Farbe wechselt) und der Rest meines Programmes weitergeführt werden kann.

ist das möglich?

Gruß
Carnifex

Thema: Laufende Schleife via Tastendruck beenden
Am im Forum: Grundlagen von C#

Hab es jetzt doch hinbekommen. Mit der KeyAvailable-Methode (Danke an Th69)

do
            {
                while (!Console.KeyAvailable)
                {
                    System.Console.SetCursorPosition(System.Console.WindowWidth / 2 - txt.Length / 2, System.Console.CursorTop);
                    WriteBlinkingText(txt, 1000, true);
                    WriteBlinkingText(txt, 500, false);
                }
            } while (Console.ReadKey(true).Key != ConsoleKey.Enter);

Thema: Laufende Schleife via Tastendruck beenden
Am im Forum: Grundlagen von C#

Danke für die beiden Tipps. Doch selbst nach langem probieren bekomme ich es nicht gebacken ?(

Thema: Laufende Schleife via Tastendruck beenden
Am im Forum: Grundlagen von C#

Hey Leute,

ich habe eine kleines Problem. Und zwar habe ich eine Schleife gebaut die Meinen Text zum blinken bringt. Ich möchte jetzt dass die Schleife so lange läuft bis ich eine beliebige Taste auf der Tastatur drücke.

Mir ist mein Fehler auch bekannt:
Die Schleife stoppt weil sie bei dem Befehl ist auf eine Eingabe zu warten.

ConsoleKeyInfo weiter = Console.ReadKey();

Wie schaffe ich es jetzt dass sie den Befehl solange ignoriert bis er auch wirklich erst benutzt wird?

while (true)
            {
                WriteBlinkingText(txt, 500, true);
                WriteBlinkingText(txt, 500, false);

                ConsoleKeyInfo weiter = Console.ReadKey();
            if (weiter.KeyChar == 13)
            {
                break;
            }

Thema: [gelöst] Welche Zahl ist näher an einem vorgegebenen Wert?
Am im Forum: Grundlagen von C#

Perfekt, funktioniert einwandfrei.
Danke pinki :)

Thema: [gelöst] Welche Zahl ist näher an einem vorgegebenen Wert?
Am im Forum: Grundlagen von C#

Hey Leute,

ich schreibe gerade ein kleines Programm bei dem man schätzen kann wie oft eine bestimmte Zahl in einer Zahlenreihenfolge vorkommt.

Ich bin jedoch auf ein Problem gestoßen:
Beispiel:
Die zu schätzende Zahl lautet 17.
Spieler 1 schätzt 20.
Spieler 2 schätzt 25.

Mein Programm zeigt mir an dass Sp 2 gewonnen hat?!
Wenn jedoch beide Spieler unter der zu schätzenden Zahl liegen (also z.B. 12 und 15) dann stimmt es.

Kann mir einer weiterhelfen?


int Sp1 = anzahl - Spieler1;
            int Sp2 = anzahl - Spieler2;
            string Fight2 = "\nSpieler 1 hat gewonnen! {0} ist näher an {1} als {2}.";
            string Fight = "\nSpieler 2 hat gewonnen! {0} ist näher an {1} als {2}.";

            Console.ForegroundColor = ConsoleColor.Green;
            if (Sp1 > Sp2)
            {
                Console.WriteLine(Fight, Spieler2, anzahl, Spieler1);
            }
            else if (Sp1 < Sp2)
            {
                Console.WriteLine(Fight2, Spieler1, anzahl, Spieler2);
            }
            else
                Console.WriteLine("\nKeiner hat gewonnen!");

Thema: [gelöst] Ersatz für If-Abfrage --> Switch
Am im Forum: Grundlagen von C#

Alles klar, Danke euch beiden :)

Thema: [gelöst] Ersatz für If-Abfrage --> Switch
Am im Forum: Grundlagen von C#

Danke für den Goto Tipp :)
hab es jetzt folgendermaßen gelößt (kurzes Feedback wäre nett :))

class Rechner
    {
         internal void IfAbfrage(ref decimal z1, ref decimal z2, ref string eingabe)
        {
            decimal ergebnis;

            switch (eingabe)
            {
                case "+":
                    ergebnis = z1 + z2;
                    Console.WriteLine(ergebnis);
                    break;
                case "-":
                    ergebnis = z1 - z2;
                    Console.WriteLine(ergebnis);
                    break;
                case "*":
                    ergebnis = z1 * z2;
                    Console.WriteLine(ergebnis);
                    break;
                case "%":
                    ergebnis = z1 % z2;
                    Console.WriteLine(ergebnis);
                    break;
                case "/":
                    ergebnis = z1 / z2;
                    Console.WriteLine(ergebnis);
                    break;
                default:
                    Console.WriteLine("Ungültige Rechenmethode!");
                    break;
            }
        }
     }
    class Program
    {
        static void Main(string[] args)
        {        
            Rechner ObjektRechner = new Rechner();
            decimal Zahl1, Zahl2;

            Console.WriteLine("Bitte geben Sie die erste Zahl ein:");
            Zahl1 = Convert.ToDecimal(Console.ReadLine());
            
            Console.WriteLine("Bitte geben Sie die gewünschte Rechenmethode ein: + - + % /");
       
            string eingabe = Console.ReadLine();
            
            Console.WriteLine("Bitte geben Sie die zweite Zahle ein:");
            Zahl2 = Convert.ToDecimal(Console.ReadLine());

            ObjektRechner.IfAbfrage(ref Zahl1, ref Zahl2, ref eingabe);
                    
            Console.ReadKey();
         }
    }

Thema: [gelöst] Ersatz für If-Abfrage --> Switch
Am im Forum: Grundlagen von C#

Vielen Dank vbprogger, genau das habe ich gesucht! :)

Thema: [gelöst] Ersatz für If-Abfrage --> Switch
Am im Forum: Grundlagen von C#

Hi Leute,

ich habe zur Übung einen kleinen Taschenrechner in C# geschrieben (Als Konsolenanwendung).
Da mir nichts anderes eingefallen ist habe ich die Überprüfung wie gerechnet werden soll (also +,- usw.) mit einer If-Anfrage Formuliert.
Ich bin mir sicher dass das keine gute Lösung ist und wollte daher fragen ob ihr eine leichtere/bessere Lösung für mich habt?

class Rechner
    {
        internal void Plus(ref decimal z1, ref decimal z2)
        {
            decimal ausgabe;
            ausgabe = z1 + z2;
            Console.WriteLine(ausgabe);
        }
        internal void Minus(ref decimal z1, ref decimal z2)
        {
            decimal ausgabe;
            ausgabe = z1 - z2;
            Console.WriteLine(ausgabe);
        }
        internal void Mal(ref decimal z1, ref decimal z2)
        {
            decimal ausgabe;
            ausgabe = z1 * z2;
            Console.WriteLine(ausgabe);
        }
        internal void Modulo(ref decimal z1, ref decimal z2)
        {
            decimal ausgabe;
            ausgabe = z1 % z2;
            Console.WriteLine(ausgabe);
        }
        internal void Geteil(ref decimal z1, ref decimal z2)
        {
            decimal ausgabe;
            ausgabe = z1 / z2;
            Console.WriteLine(ausgabe);
        }
    }
    class Program
    {
     static void Main(string[] args)
        {
            Anfang:
            Rechner ObjektRechner = new Rechner();
            decimal Zahl1, Zahl2;

            Console.WriteLine("Bitte geben Sie die erste Zahl ein:");
            Zahl1 = Convert.ToDecimal(Console.ReadLine());

            
            Console.WriteLine("Bitte geben Sie die gewünschte Rechenmethode ein: (+,-,+,%,/");
            rechenschritte:
            string eingabe = Console.ReadLine();
            

            Console.WriteLine("Bitte geben Sie die zweite Zahle ein:");
            Zahl2 = Convert.ToDecimal(Console.ReadLine());

            

            if (eingabe == "+")
            {
                ObjektRechner.Plus(ref Zahl1, ref Zahl2);
            }
            else if (eingabe == "-")
            {
                ObjektRechner.Minus(ref Zahl1, ref Zahl2);
            }
            else if (eingabe == "*")
            {
                ObjektRechner.Mal(ref Zahl1, ref Zahl2);
            }
            else if (eingabe == "/")
            {
                ObjektRechner.Geteil(ref Zahl1, ref Zahl2);
            }
            else if (eingabe == "%")
            {
                ObjektRechner.Modulo(ref Zahl1, ref Zahl2);
            }
            else
            { 
                Console.WriteLine("Ungültige Eingabe! Bitte geben Sie das Zeichen erneut ein");
                goto rechenschritte;
            }

            Console.ReadKey();
            goto Anfang;

            
        }
    }


Danke schonmal :)

Thema: Text aus Listbox auslesen -> in Text Dokument
Am im Forum: Grundlagen von C#

@Th69 Danke für den Tipp!
@Ezio Danke auf für deinen Tipp :)

@Alle Es funktioniert jezt mit dem unten stehenden Code:


string eingabe = txtEingabe.Text;
            int zähler = 1;


            lstbx.Items.Add(eingabe);
            txtEingabe.Text = "";
            
            string lkjlk = lstbx.Text;

            zähler = lstbx.Items.Count - 1;

            string Ausgabe = lstbx.Items[zähler].ToString();

            string path = @"C:\Users\Carnifex\Pictures\WriteText.txt";
            
            using (StreamWriter sw = File.AppendText(path))
            {
                sw.WriteLine(Ausgabe);
            }  

Thema: Text aus Listbox auslesen -> in Text Dokument
Am im Forum: Grundlagen von C#

@Th69

Mit Dem "Ausgabe-String" meine Ich den String "anzahl". In diesem String ist mein Text gespeichert der in die Datei geschrieben werden soll.
Und mein Problem ist halt jetzt dass ich die Textdatei immer überschreibe anstatt sie zu ergänzen.
Beispiel: Wenn mein String im ersten Durchlauf "aaa" heißt, wird in dem Textdokument "aaa" geschrieben.
Wenn mein String im zweiten Durchlauf "bbb" heißt, wird in dem Textdokument "bbb" geschrieben und somit "aaa" ersetzt.

Was ich will: Das "aaa" in dem Textdokument steht und eine Zeile darunter "bbb".

Thema: Text aus Listbox auslesen -> in Text Dokument
Am im Forum: Grundlagen von C#

Hey Leute,

ich schreibe gerade eine kleine Anwendung (Windows - Form) bei der man die Möglichkeit hat einen Text in eine Textbox einzugeben und per Button-klick in eine Liste-Box eintragen zu lassen.
Gleichzeitig wird ein Text-Dokument erstellt. In dieses Dokument wird nun der List-Box-Text eingetragen.

Funktioniert auch fast alles!
Mein Problem:
Ich überschreibe logischerweiße immer wieder meinen Ausgaben-String.
Wie schaffe ich es dass der String nicht überschrieben sondern erweitert wird?

(Ja ich weiß, der Code könnte besser geschrieben sein :D Aber ich bin ja noch Anfänger!. Tipps nehme ich gerne an)


 string eingabe = txtEingabe.Text;
            string textFeld = eingabe;
            int zähler = 1;
                    
            
            lstbx.Items.Add(eingabe);
            txtEingabe.Text = "";

            string lkjlk = lstbx.Text;


            while (zähler < Convert.ToInt32((lstbx.Items.Count.ToString())))
            {
                zähler++;
            }


            string anzahl = lstbx.Items[zähler-1].ToString();
            
            System.IO.File.WriteAllText(@"C:\Users\Carnifex\Pictures\WriteText.txt", anzahl);

Thema: String überprüfen, Stelle für stelle
Am im Forum: Grundlagen von C#

Hey Leute,
aaaalso: Ich habe es geschafft! ICh habe die Aufgabe am Anfang missverstanden: Man muss "eine" Teilsequenz des Alphabetes finden und rauslöschen. (Diese Teilsequenz ist wie ein Labyrinth aufgebaut). Mit dem unten-stehenden Code hat der benutzer die Möglichkeit zeile für Zeile eines "ABC-Labyrinths" einzugeben. z.B:
oiunabcnkl
leknfedlnl
dodhgalskf
addijklmno
lknnnlsrqp
ddnlkntnnd
knlknvuddd
kzzyxwdddd
dagdfgdsgg
sdgrgsrrrr

Nun wird das zusammenstehende Abc aus der Liste gelöscht gelöscht.


class Program
    {
        public static char[,] eingabe = new char[100,10];
        
        public static void Main(string[] args)
        {
            Console.WriteLine("Bitte geben sie die Buchstaben ein:");
            string[] eingabeString = userEingabe();
            Console.Write("\n"); //geht in eine neue Zeile damit die Eingabe und die Ausgabe nicht als eines gesehen werden
            stringsInCharArraySpeichern(eingabeString);
            findeDenAnfang(eingabeString);
            anzeige(eingabeString);
            Console.ReadLine();                         //lässt die Konsole offen bei einer Eingabe schließt die Anwendung

        }

        private static string[] userEingabe()
        {
            string[] eingabeString = { Console.ReadLine(), Console.ReadLine(), Console.ReadLine(), Console.ReadLine(), Console.ReadLine(), Console.ReadLine(),
                                     Console.ReadLine(), Console.ReadLine(), Console.ReadLine(), Console.ReadLine(), };
            return eingabeString;
        }

        private static void stringsInCharArraySpeichern(string[] eingabeString)
        {
            for (int y = 0; y < eingabeString.Length; y++)  //iteriert durch die spalten
            {
                for (int x = 0; x < eingabeString[y].Length; x++) // iteriert durch die zeilen
                {
                    eingabe[x, y] = eingabeString[y].ElementAt(x);
                }
            }
        }

        private static void findeDenAnfang(string[] eingabeString)
        {
            for (int y = 0; y < eingabeString.Length; y++)  //iteriert durch die spalten
            {
                for (int x = 0; x < eingabeString[y].Length; x++) // iteriert durch die zeilen
                {
                    if (eingabe[x, y] == 97 || eingabe[x, y] == 65)
                    {
                        bool hatAnfangenGefunden = nachbarbuchstabeIstSequenziell(x, y, 97);
                        if (hatAnfangenGefunden == true)
                        {
                            break;
                        }
                    }
                }
            }
        }

        private static bool nachbarbuchstabeIstSequenziell(int x, int y, int ascii)
        {
            int asciiGroß = ascii - 32;
            if ((x ≥ 0) && (y ≥ 0) && (x < (eingabe.GetLength(0) - 1)) && (y < (eingabe.GetLength(1) - 1)) && (ascii ≤ 122) && (asciiGroß ≤ 90))
            {
                if (eingabe[x, y] == ascii || eingabe[x, y] == asciiGroß)
                {
                    if (eingabe[(x + 1), y] == (ascii + 1) || eingabe[(x + 1), y] == (asciiGroß + 1))
                    {
                        löscheVorherigesFeld(x, y, ascii);
                        löscheVorherigesFeld(x, y, asciiGroß);
                        x += 1;
                        ascii += 1;
                        asciiGroß += 1;
                        nachbarbuchstabeIstSequenziell(x, y, ascii);
                        return true;
                    }
                    if ((x - 1 ≥ 0))
                    {
                        if (eingabe[(x - 1), y] == (ascii + 1) || eingabe[(x - 1), y] == (asciiGroß + 1))
                        {
                            löscheVorherigesFeld(x, y, ascii);
                            löscheVorherigesFeld(x, y, asciiGroß);
                            x -= 1;
                            ascii += 1;
                            asciiGroß += 1;
                            nachbarbuchstabeIstSequenziell(x, y, ascii);
                            return true;
                        }
                    }

                    if (eingabe[x, (y + 1)] == (ascii + 1) || eingabe[x, (y + 1)] == (asciiGroß + 1))
                    {
                        löscheVorherigesFeld(x, y, ascii);
                        löscheVorherigesFeld(x, y, asciiGroß);
                        y += 1;
                        ascii += 1;
                        asciiGroß += 1;
                        nachbarbuchstabeIstSequenziell(x, y, ascii);
                        return true;
                    }
                    if ((y - 1 ≥ 0))
                    {
                        if (eingabe[x, (y - 1)] == (ascii + 1) || eingabe[x, (y - 1)] == (asciiGroß + 1))
                        {
                            löscheVorherigesFeld(x, y, ascii);
                            löscheVorherigesFeld(x, y, asciiGroß);
                            y -= 1;
                            ascii += 1;
                            asciiGroß += 1;
                            nachbarbuchstabeIstSequenziell(x, y, ascii);
                            return true;
                        }
                    }
                    if ((eingabe[x, y] == 97 || eingabe[x, y] == 65) == false)
                    {
                        eingabe[x, y] = ' ';
                    }
                }
            }
            return false;
        }

        private static void löscheVorherigesFeld(int x, int y, int ascii)
        {
            if (eingabe[x, y] == ascii || eingabe[x, y] == ascii)
            {
                eingabe[x, y] = ' ';
            }
        }
      
        private static void anzeige(string[] eingabeString)
        {
            for (int y = 0; y < eingabeString.Length; y++)  //iteriert durch die spalten
            {
                for (int x = 0; x < eingabeString[y].Length; x++) // iteriert durch die zeilen
                {
                    Console.Write(eingabe[x, y]);            //zeigt jeden Buchstaben vom char array an
                }
               Console.Write("\n");              //geht in eine neue Zeile damit char arrays einzeln angezeigt werden    
            }
             
        }
        
    }
}

Der Code hat bestimmt ein paar macken, aber er funktioniert!

Thema: String überprüfen, Stelle für stelle
Am im Forum: Grundlagen von C#

@chilic das o kommt weg weil unter dem o ein n ist.
Mir ist gerade erst aufgefallen dass das Ganze wie eine Tabelle aufgebaut ist und die Teilsequenzen des ABC's sowohl senk- als auch Waagerecht beachtet werden müssen -.-. Das macht das ganze noch eine Nummer schwieriger.

Thema: String überprüfen, Stelle für stelle
Am im Forum: Grundlagen von C#

Danke EnjoX für den Tipp, ich werde mich jetzt erstmal dran setzen und rumprobieren :)

Thema: String überprüfen, Stelle für stelle
Am im Forum: Grundlagen von C#

Hallo Zusammen,

ich bin ganz neu in dem Gebiet der Programmierung und habe ein kleines Problem:
Ich habe eine Eingabefunktion in die der Benutzer folgendes eingeben soll:
z.B. :
abcyqrstik
rhdapbhuev
gfelomwvqc
hostnixagd
ijklmuyplb
kvotayzirs
dgwpxgajce
yihqkntrbm
ofzadbnpxl
mrtcwzfuyb

Jetzt soll meine Konsolenanwendung alle Sequenzen aus dem Alphabet rausschmeisen, so dass nur noch der Rest da steht:

y ik
rh a bh ev
l m qc
ost i agd
u plb
kvotay irs
dgwpxgajce
yihqkntrbm
ofzadbnpxl
mrtcwzfuyb


abcyqrstik
rhdapbhuev
gfelomwvqc
hostnixagd
ijklmuyplb
kvotayzirs
dgwpxgajce
yihqkntrbm
ofzadbnpxl
mrtcwzfuyb

   y    ik
rh a bh ev
   l m  qc
ost i agd
     u plb
kvotay irs
dgwpxgajce
yihqkntrbm
ofzadbnpxl
mrtcwzfuyb




Ich habe mir überlegt dass ich Stelle für Stelle überprüfe also ob jetzt nach a wirklich b kommt, wenn ja dann weg, wenn nicht dann stehen lassen. Jedoch weiß ich nicht den entsprechenden Befehl/Code. Kann man das mit einer Schleife lösen?

Danke schon mal :)