Laden...
L
Benutzerbeschreibung
hey 🙂 bin noch komplett neu was das Programmieren angeht 🙂

Forenbeiträge von Lens445 Ingesamt 45 Beiträge

15.02.2018 - 11:41 Uhr

@T-Virus danke, und ja du hast Recht, es zeigt mir immer wieder die gleiche Datei an 🤔

@Abt ahh jez hab ichs glaub ich.

            PricingAnalyzer analyzer = new PricingAnalyzer();
            string bla = analyzer.GetNextFile();

            List<Result> list = analyzer.GetAllKschl(bla, fileNameData); //hat hier noch gefehlt

            decimal total = analyzer.GetTotalAmount(bla, fileNameData);

Wie löse ich dass denn wenn ich die Datei Namen nicht in meiner Methode haben will, aber diese ja doch dort brauche? 🤔 einfach im "Hauptcode" deklarieren?

15.02.2018 - 11:20 Uhr

Hey,

Ich habe eine Methode

public List<Result> GetAllKschl(string fileNameResult, string fileNameData)

die mir eine Liste mit verschiedenen Elementen und dem Inhalt aus einer ewig langen .xml Datei zurückgibt. (Z.b. Info, Einzelpreis, Gesamtpreis, usw.)

Diese Daten gebe ich in einer DataGridView aus. Okay, funktioniert soweit.

Nun möchte ich einen weiteren Button Next File anlegen, der mir dann aus dem Order eben die nächste Datei anzeigt. Bzw wieder nur diese bestimmte Elemente aus der XML. (in der DGV)

Code für meinen ersten Button:

        string fileNameResult = @"bla.xml";
        string fileNameData = @"blabliblub.xml";
     
        private void button1_Click(object sender, EventArgs e)
        {
            PricingAnalyzer analyzer = new PricingAnalyzer();

            List<Result> list = analyzer.GetAllKschl(fileNameResult, fileNameData);

            decimal total = analyzer.GetTotalAmount(fileNameResult, fileNameData);

            //Gibt die Ergebnisse aus
            dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
            dataGridView1.AutoGenerateColumns = true;
            dataGridView1.DataSource = list;
            txtTotalAmount.Text = total.ToString();
        }

Das funktioniert 👍

der zweite Button:

        private void btnNext_Click(object sender, EventArgs e)
        {
            PricingAnalyzer analyzer = new PricingAnalyzer();
            string bla = analyzer.GetNextFile();

            dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
            dataGridView1.AutoGenerateColumns = true;
            dataGridView1.DataSource = bla;
        }

So hier für zeig ich mal meine Methode:

        IEnumerator<string> filesEnumerator;
        
        public string GetNextFile()
        {
            filesEnumerator = Directory.EnumerateFiles(@"C:\Pricing\sum", "Result*.xml").GetEnumerator();

            if (filesEnumerator != null && filesEnumerator.MoveNext())
            {
                return filesEnumerator.Current;
            }
            return null;
        }

Jetzt gibt er mir natürlich nichts aus, bzw einfach die ganze Datei, aber ich will ja nur die Elemente wieder haben! (aus der Klasse Result) Muss ich dann die andere Methode auch zusätzlich dort aufrufen? Also versteht ihr was ich meine?

Wieder nur Info, Gesamtsumme, usw. aus der XML Datei filtern und ausgeben, was ich halt mit der anderen Methode mache. Aber ich weiß nicht was ich dann in dem zweiten Button brauche, damit das so funktioniert?

LG

01.12.2017 - 09:23 Uhr

Ahh, ja genau, das ist die Methode die ich brauche 👍

Jetzt klappt es, danke! 👅

01.12.2017 - 08:57 Uhr

Ja, aber dass ist ja nicht mal die Methode die ich brauche.

In meinem Calculator hab ich die Methode:

        public int DezAddieren(int number1, int number2)
        {
            return number1 + number2;
        }

auf die ich ja zugreifen will.

Also meinst du, ich muss dann extra nochmal die inputs als int konvertieren?

01.12.2017 - 07:54 Uhr

Hey,

habe zu erst ein Konsolen Programm programmiert dass mir alle Zahlensysteme (Dezimal, Dual, Hex) konvertieren kann und einen Taschenrechner.

Jetzt möchte ich das als WinForms haben, habe den Konvertierer auch schon fertig, aber das mit dem Taschenrechner will nicht so ganz, hab eine Logik mit Rechnungen bereits, deswegen benötige ich doch nur z.B.

        private void btnRechne_Click(object sender, EventArgs e)
        {
            Calculator calculator = new Calculator();
            string input1 = txtInputCalc1.Text;
            string input2 = txtZeichen.Text;
            string input3 = txtInputCalc2.Text;
            string result = string.Empty;

            if (rbDezCalc.Checked)
            {
                if (input2 == "+")
                {
                    result = calculator.DezAddieren(int.Parse(input1, input3));
                }
            }

        }

und input1 passt ihm so, aber bei input3, meckert er

Fehlermeldung:
Error CS1503 Argument 2: cannot convert from 'string' to 'System.Globalization.NumberStyles'

Ich versteh das nicht 🤔

08.11.2017 - 13:18 Uhr

Ja genau das war der Fehler.. X(

Aber ja jetzt klappt es 👍

08.11.2017 - 13:13 Uhr

Ok ich hab meinen Fehler gefunden! 🙂 es funktioniert 👍

                for (int index = 0; index < allFiles.Length; index++)
                {
                    string fileName = Path.GetFileName(allFiles[index]);
                    Console.WriteLine("{0} Datei: {1}", index, fileName);
                }
                string inputFile = Console.ReadLine();

Danke euch für die schnelle Hilfe

08.11.2017 - 13:08 Uhr

Ahhh danke! Hab ich total übersehen 8o

Aber: jetzt gibt er mir zwar nicht mehr den ganzen Pfad aus, aber dafür nur noch jeweils einen Buchstaben pro Datei 🤔

08.11.2017 - 13:01 Uhr

Hey,

habe hier folgenden Code, der auch funktioniert:

            if (userInput == "1")
            {
                string[] allFiles = Directory.GetFiles(@"C:\Users\Debug", "*.txt");
               
                
                Console.WriteLine("Wähle eine Datei aus, die du öffnen möchtest:", allFiles.Length);
                Console.Write("\n");
                
                for (int index = 0; index < allFiles.Length; index++)
                {
                    string fileName = Path.GetFileName(allFiles[index]);
                    Console.WriteLine("{0} Datei: {1}", index, allFiles[index]);
                    
                    
                }
                string inputFile = Console.ReadLine(); 

                int userIndex;
                if (int.TryParse(inputFile, out userIndex)) 
                {
                    if (userIndex >= 0 && userIndex < allFiles.Length)
                    
                    {
                        string selectFile = allFiles[userIndex]; 
                        string readText = File.ReadAllText(selectFile);  
                        Console.WriteLine(readText); 
                    }
                    else
                    {
                        Console.WriteLine("Eingabe außerhalb des Bereichs!");
                    }
                }
                else
                {
                    Console.WriteLine("Kein numerischer Wert!");
                    Console.Read();
                }
                Console.Read();

Jetzt gibt er mir immer den kompletten Pfad aus, ich möchte aber das er mir eben nur den hinteren Teil also den Namen ausgibt.

Wie ihr seht habe ich es bereits mit

                for (int index = 0; index < allFiles.Length; index++)
                {
                    string fileName = Path.GetFileName(allFiles[index]);
                    Console.WriteLine("{0} Datei: {1}", index, allFiles[index]);
                    
                    
                }
                string inputFile = Console.ReadLine();

versucht. Man braucht ja die GetFileName Methode, aber wo liegt den mein Fehler? Finde im Internet nichts dazu und er gibt mir auch keinen Fehler aus 🤔

07.11.2017 - 15:40 Uhr

Klar ich probier es selber, wollte nur wissen ob der Ansatz so stimmt 😃

danke 😃

07.11.2017 - 15:35 Uhr

Hey,

danke für eure Hilfe!

was sagt ihr zu diesem Code?

            if (userInput == "1")
            {
                string[] allFiles = Directory.GetFiles(@"C:\Users\Debug", "*.txt");
                Console.WriteLine("Wähle eine Datei aus:", allFiles.Length);
                Console.Write("\n");

                int count = 0;
                foreach (string file in allFiles)
                {
                    count += 1;
                    Console.WriteLine("{0} Datei: {1}", count, file);            
                }
                Console.Read();
                
                string inputFile = Console.ReadLine();

            }

Also es wird mir so als 1 Datei ist blablabla 2 Datei ist blabliblub usw angezeigt.

Kann ich damit dann weiter arbeiten, also dass wenn ich jetzt die 1 auswähle er mir dann den Inhalt von 1 ausgibt 🤔

07.11.2017 - 15:10 Uhr

echt, brauch ich dafür ne Liste? 🤔
Dann muss ich ja erst mal immer alles in die Liste speichern und dann abrufen oder?

07.11.2017 - 14:58 Uhr

Hey,

habe jetzt folgenden Code:

            if (userInput == "1")
            {
                string[] allFiles = Directory.GetFiles(@"C:\Users\ConsoleApp3\bin\Debug", "*.txt");
                Console.WriteLine("Wähle eine Datei aus:", allFiles.Length);
                Console.Write("\n");
                foreach (string file in allFiles)
                {
                    Console.WriteLine(file);            
                }
                Console.Read();
                string indexFile = Console.ReadLine();

Ich glaube ich stehe gerade auf dem Schlauch, aber ich möchte dass meine Dateien nummeriert in der Konsole erscheinen, sodass man eben eine Datei auswählen kann, also die Dateien werden untereinander angezeigt, aber ohne Nummern davor 🤔 wie kann ich das ändern?

LG

07.11.2017 - 10:47 Uhr

Hey 123thomas,

Vielen Dank, hilft mir schon mal sehr viel weiter 🙂

@Coffebean

Danke dir auch, werde es jetzt mal testen. 👍

07.11.2017 - 10:44 Uhr

Hey Abt,

Hab ich sehr wohl gelesen und geschrieben, dass ich das nicht ganz verstehe, da ich nicht verstehe was mein zweiter string sein soll, siehe paar Beiträge weiter oben

07.11.2017 - 10:31 Uhr

Hey,

Ja genau den Inhalt der dateien brauch ich auch. Aber das Problem ist, in dem Ordner befinden sich eben viele Dateien, z.B. eine mit .exe, oder .pdb. Aber ich will NUR die .txt Datei in meinem Programm lesen, wisst ihr was ich meine? Momentan sieht meine Konsole so aus:

Wähle eine Option aus:

  1. Datei öffnen
  2. Datei erstellen
    1
    Das sind alle vorhandenen Dateien:

ConsoleApp3.exe
ConsoleApp3.exe.config

ConsoleApp3.pdb
Hallo.txt

und ich will nur z.B. die Hallo.txt Datei haben.

07.11.2017 - 10:25 Uhr

Hey,

danke, meinst du GetFiles(String,String) ? 🤔

aber ich versteh trotzdem nicht ganz, was mein zweiter string sein soll 8o

LG

07.11.2017 - 10:14 Uhr

Hey,

bin neu hier und die Frage klingt vllt doof, aber ich hab mehrere .txt Dateien gespeichert und will diese beim Öffnen meines Programms abrufen.
Ich finde nur Befehle und Tutorials für das Einlesen für einen Pfad? Das ist ja nicht schwer, da geb ich einfach den bestimmten Pfad ein, aber wie mach ich das mit mehreren? Die können sich auch immer verändern, heißt einfach "alle" Pfads eingeben geht auch nicht.

Hier mal mein Code:

   if (userInput == "1")
            {
                Console.WriteLine("Das sind alle vorhandenen Dateien:");
                Console.Read();              

                DirectoryInfo di = new DirectoryInfo(@"C:\Pfad wo alle Dateien drin sind");
                foreach (var file in di.GetFiles())
                {
                    Console.WriteLine(file.Name);
                    Console.Read();
                }
                Console.WriteLine();

mein Programm beendet sich einfach immer nachdem es jede Datei abgelaufen ist.
Ich muss ihm jetzt irgendwie noch sagen, dass er alle .txt Dateien anzeigen soll, gibt es da einen bestimmten Befehl den ich übersehen habe?

Bin eben neu im Programmieren 😁

LG

13.10.2017 - 13:26 Uhr

Vielen Dank für die 'netten' Worte @LaTino.

Kann ichs ja anscheinend gleich sein lassen, wenn es eh zu spät ist. 👍

13.10.2017 - 13:12 Uhr

Eben, ich will einfach verschiedenes versuchen zu üben 🙂

Will dann das ganze auch noch mit XML probieren.. einfach um das mal gemacht zu haben.

Und ich will das Ganze auch nicht mit Helfern oder Librarys machen, sondern eben selber. 🙂

13.10.2017 - 10:34 Uhr

Ja, habe ich vorhin auch selber bemerkt 😁 👍

Aber danke! Hat geklappt 🙂

So jetzt muss ich schauen, dass immer wenn ich das Programm schließe, dass dann die gespeicherten Daten angezeigt werden.

Muss ich quasi alles rückwärts machen jez oder? Also Datei lesen, spliten ..?

13.10.2017 - 09:36 Uhr

ach so, also fehlt mir sowas wie

File.WriteAllText(@"Name.csv", autos);

? Dass er auch alles in eine Datei schreibt?

13.10.2017 - 09:11 Uhr

Wenn ich das aber genau so mit dem Debugger durchlaufen lassen, dann zeigt er mir alle vorhandenen Autos an 🤔

13.10.2017 - 09:02 Uhr

okay, danke schon mal 🙂

Aber wenn ich jetzt

CSVWriter.SaveFileAuto(_autos);

in meinen Hauptcode schreibe, dann müssten doch alle Autos gespeichert sein oder?

13.10.2017 - 08:08 Uhr

So habe eine Klasse CSVWriter erstellt:

    public static class CSVWriter
    {       
        public static void SaveFileAuto(List<Auto> autos)
        {
            // Erste Zeile (Header für Auto)
            string fileContent = "Hersteller;Modell;Farbe;Kennzeichen" + Environment.NewLine;

            // weitere Zeilen hinzufügen
            foreach (var auto in autos)
            {
                fileContent += auto.Hersteller + ";" + auto.Modell + ";" + auto.Farbe + ";" + auto.Kennzeichen + Environment.NewLine;
            }
        }

        public static void SafeFilePersonen(List<Personen> personen)
        {
            // Erste Zeile (Header für Personen)
            string fileContent = "Vorname;Nachname,Geburtstag" + Environment.NewLine;
            
            // weitere Zeilen hinzufügen
            foreach (var person in personen)
            {
                 fileContent += person.Vorname + ";" + person.Nachname + ";" + person.Geburtstag + Environment.NewLine;
            }         
        }       
    }

jetzt muss ich es noch ausgeben als CSV Datei..

10.10.2017 - 16:14 Uhr

Das letzte was ich wollte ist irgendwem böse Absichten zu unterstellen 8o

Entschuldigung bei allen, ich werde versuchen es iwie selber hinzubekommen

10.10.2017 - 15:55 Uhr

Ich habe es probiert! Mega viele Varianten..

Mein Problem ist, dass ich sowas noch nie gemacht habe und jetzt halt nicht weiß, kommt das alles vor static void Main?

weil da hab ich ja bereits eine Klasse mit Fuhrpark, muss danach die Klasse CSVWriter? Das würde mir schon sehr viel weiter helfen, dass zu wissen.

Hab nie nach einer vollständigen Lösung verlangt.

Noch hinzu kommt, im Internet steht nie was man tun soll, wenn das Programm, anlegen, löschen und editieren kann und man das alles speichern möchte.

10.10.2017 - 15:37 Uhr

Hä? nein, nur wollte ich eine Erklärung dazu haben mensch..
Sorry, das ich Anfänger bin und es nicht verstanden habe.

Ja, ich habe mir alle Beispiele angeschaut, nur war bei mir immer alles falsch und es kamen nur Fehlermeldungen, deswegen dachte ich, dass das nicht die richtige Lösung war.

Nicht sehr freundlich mich gleich so anzuschnauzen.

10.10.2017 - 14:42 Uhr

Ja, aber das hilft mir ja alles nicht wirklich weiter, ich will ja mein Konsolen Programm in CSV Format speichern.

Mein Programm beginnt ja schon mal mit:

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

namespace Fuhrpark1
{
    class Fuhrpark
    {
        private static List<Auto> _autos = new List<Auto>(); // Anlegen von neuer Liste für Autos
        private static List<Personen> _personen = new List<Personen>(); // Anlegen von neuer Liste für Personen

        static void Main(string[] args)
        {
            do
            {
                Console.WriteLine(
                    "\n" +
                    "Wähle bitte eine Möglichkeit: \n\n" +
                    "1 für das Anlegen eines neuen Autos \n" +
                    "2 für das Anzeigen der vorhandenen Autos \n" +
                    "3 für das Anlegen von Personen \n" +
                    "4 für das Anzeigen von vorhandenen Personen \n\n" +
                    "5 für das Löschen einer Person \n" +
                    "6 für das Löschen eines Autos \n" +
                    "7 für das Bearbeiten einer Person \n" +
                    "8 für das Bearbeiten eines Autos \n\n" +
                    "9 für das Verknüpfen von Auto und Personen\n" +
                    "0 Für das Anzeigen der Verknüpfungen\n");                
                input = Console.ReadKey().Key;
                Console.Clear();

also nur ein kleiner Ausschnitt vom Anfang, und ich will jez dass immer wenn ich eine Person/Auto anlege oder verknüpfe dass es mir das in CSV Format speichert.

10.10.2017 - 10:32 Uhr

Ach so, macht Sinn. 😁

Kann ich aber

public class CSVWriter
{}

schreiben als Anfang?

10.10.2017 - 10:17 Uhr

Hey danke für die Seite.

Also lieg ich aber richtig, dass man dafür ne neue Klasse öffnen muss oder? Weil dort auch steht "mapping class"?

10.10.2017 - 09:49 Uhr

Hey Leute,

Bin ja neu in der Welt des Programmierens.
Habe mir ein Consolen Programm erstellt, dass mir verschiedene Werte einer Liste ausgibt, z.B. verschiedene Personen und Autos und ich kann die Personen und Autos auch miteinander verknüpfen mit einer n:m Beziehung. Klappt alles so weit ohne Fehler. Jetzt möchte ich, dass die gemachten Veränderungen und Eingaben nicht immer verloren gehen, sondern alle Informationen gespeichert werden.
Habe mich für CSV entschieden, habe allerdings sowas noch nie erstellt.

Mein Ziel ist es also, nach jeder Aktion im Programm sollen alle Infos automatisch gespeichert werden.

So, ich habe viel gegoogelt, aber keine passende Lösung gefunden.
Muss ich eine neue Klasse aufmachen in C# und dort eine CSV Datei erstellen? oder in meiner Main?
Möchte nur gerne den Anfang wissen, was ich tun muss um sowas zu erstellen..

Liebe Grüße

05.10.2017 - 11:38 Uhr
      public static void BearbeitePerson()
        {
            
            Console.WriteLine("Wähle eine Person, die du bearbeiten willst:");
            Console.WriteLine("\n");
            for (int i = 0; i < _personen.Count; i++)
            {
                Console.WriteLine(i.ToString() + " " + _personen[i].ToString());               
            }
            int index = Convert.ToInt32(Console.ReadLine());
            Personen myPerson = _personen[index];

            Console.Write("Vorname: ");
            var vorname = Console.ReadLine();
            if (string.IsNullOrEmpty(vorname)) return;

und dann das halt für Nachname und Gb erweitern, ich habe nämlich vorhin einen anderen und übersichtlicheren Weg gefunden.. ich bin in die Klasse Personen gegangen und hab dort:

        public string ReadNewValue(string prefix)
        {
            Console.Write(prefix + ": ");
            var input = Console.ReadLine();
            return input;

geschrieben. In meinen Main Code musste dann nur noch:

        public static void BearbeitePerson()
        {
            
            Console.WriteLine("Wähle eine Person, die du bearbeiten willst:");
            Console.WriteLine("\n");
            for (int i = 0; i < _personen.Count; i++)
            {
                Console.WriteLine(i.ToString() + " " + _personen[i].ToString());               
            }
            int index = Convert.ToInt32(Console.ReadLine());
            Personen myPerson = _personen[index];

            myPerson.Vorname = myPerson.ReadNewValue("Vorname");
            myPerson.Nachname = myPerson.ReadNewValue("Nachname");
            myPerson.Geburtstag = myPerson.ReadNewValue("Geburtstag");

        }

so fand ich es fast einfacher.. 🙂

05.10.2017 - 11:24 Uhr

Ich hab es jetzt übrigens geschafft 🙂
Vielen Dank für eure Hilfe!

05.10.2017 - 09:53 Uhr

ja wie gesagt, bin noch total am Anfang und finde das alles sehr schwierig noch 🙁

Hey 123thomas,

danke für deine Hilfe! mein Code macht aber einfach gar nichts, ich gebe die Person ein die er ändern soll aber nichts passiert 8o

 public static void BearbeitePerson()
        {
            Console.WriteLine("Wähle eine Person, die du bearbeiten willst:");
            Console.WriteLine("\n");
            for (int i = 0; i < _personen.Count; i++)
            {
                Console.WriteLine(i.ToString() + " " + _personen[i].ToString());               
            }       

            Personen myPerson = _personen[1];
            string myPersonName = myPerson.Vorname;
            Console.ReadLine();                 
        }

Ich kenne ja die einfachen Grundlagen, aber ich verstehe einfach nicht, warum das Programm einfach nichts macht? nicht mal mit return passiert etwas..

P.S. sorry, hab es vorhin noch nicht hinbekommen

05.10.2017 - 09:14 Uhr

Okay, ich muss also meine Liste

 private static List<Personen> _personen = new List<Personen>();

also _personen zu einen Int wandeln?

nur weiß ich dafür keinen passenden Befehl.. mit _personen.ConvertAll?

und: wenn ich dein Programm teste gibt es mir eine Fehlermeldung aus bei

cars.Add(new Car(i, "Porsche 911"));

Fehlermeldung:
--> Error CS1729 'Personen' does not contain a constructor that takes 2 arguments, wenn ich den Inhalt lösche, dann kommt kein Fehler mehr.

05.10.2017 - 08:28 Uhr

Hey, ja ich frage zu erst ab "Vorname?" dann "Nachname?" dann "Geburtstag?" und des was ich da eingebe wird gespeichert. Sobald ich die Nummer 7 drücke, erscheint eine Liste mit allen Personen die ich manuell eingegeben habe. Und von dieser Liste will ich eine beliebige auswählen die ich ändern kann.

Kann ich dann anstatt wie du "Porsche" zu schreiben, einfach einen Platzhalter machen? Weil er soll ja dafür kein vorgegebenes Wort einsetzen, sondern ich will ja dann wieder die Person/auto manuell bearbeiten.

05.10.2017 - 08:08 Uhr
public static void BearbeitePerson()
        {
            Console.WriteLine("Wähle eine Person, die du bearbeiten willst:");
            Console.WriteLine("\n");
            for (int i = 0; i < _personen.Count; i++)
            {
                Console.WriteLine(i.ToString() + " " + _personen[i].ToString());
            }
            string zuBearbeiten = Console.ReadLine();

Ist es dann richtig wenn ich so anfange, dass er mir praktisch alle vorhandenen Personen in einer nummerierten Liste ausgibt? Und jetzt müsste ich eine auswählen (je nachdem wie viele ich hab), dass ich bearbeiten kann..
Weil ich habe ja keine Autos gegeben, sondern gebe die ja erst in die Konsole ein, verstehst du was ich meine? (sorry, ich bekomm es nicht hin dass ich den C# Code hervor hebe X()

05.10.2017 - 07:43 Uhr

Hey, hab es jetzt geschafft bestimmte Elemente in einer Liste zu löschen, aber wie kann ich denn bestimmte Elemente bearbeiten? Heißt ich will z.B,. den Namen oder Geburtstag verändern, während der Konsolen Anwendung, muss ich dafür wieder eine neue Liste anlegen? 8o

04.10.2017 - 14:07 Uhr

okaay danke 😁
werd ich mir merken 👍

04.10.2017 - 13:34 Uhr

das sind einfach Übungen die ich zur Hilfe machen kann 😉

Ich habe das Problem übrigens selber gefunden, habe eine if Schleife gemacht 🙂 aber vielen dank an euch alle!

04.10.2017 - 12:36 Uhr

Aber er gibt mir immernoch, die Fehlermeldung bei guess = input[0]; aus..

04.10.2017 - 11:38 Uhr

Hey, sorry bin neu hier und auch in der ganzen C# Welt sehr neu, verzeiht mir also doofe Fragen X(

also zur erwähnten doofen Frage 😁 :

muss ich dann guess = string.IsNullOr.WhiteSpace eingeben? ich komm grad echt nicht weiter..

04.10.2017 - 10:55 Uhr

Hey Leute,

habe ein Hangman Spiel programmiert das auch einwandfrei läuft, allerdings wenn man die Retourn Taste drückt, haut es mir eine Fehlermeldung raus. Ich muss also abfragen was passiert wenn man eben nichts angibt.
Nur wie mach ich das? Weil mit string.empty klappt es nicht, da es kein string is. Die Fehlermeldung wird mir hier ausgegeben:


            int lives = 5; //Anzahl Versuche
            bool won = false;
            int lettersRevealed = 0; //Aufgedeckte Buchstaben
            string input;
            char guess; //Versuche

            while (!won && lives > 0)
            {
                Console.WriteLine("Gib einen Buchstaben ein: ");
                input = Console.ReadLine().ToUpper();
                guess = input[0]; //-->Hier is die Fehlermeldung

habt ihr eine Idee? Vllt mit try und catch? aber er gibt mir nur Fehlermeldungen aus..

04.10.2017 - 09:36 Uhr

Hey, ich habe folgende Listen erstellt:

         private static List<Auto> _autos = new List<Auto>();
        private static List<Personen> _personen = new List<Personen>();

und da drin kann ich jeweils die Namen der Autos und Personen eingeben. Bsp.: ich klicke 1 und dann kann ich selber eingeben: VW, Golf, schwarz.
Das gleiche bei Personen: Lena, Bauer, 13.05.1996

ich kann eben unterschiedlich viele Elemente eingeben und diese werden dann in die Listen gespeichert.

So, jetzt möchte ich, dass wenn ich 5 eingebe sollen alle bereits vorhandenen Personen auftauchen und ich kann davon eine auswählen und diese dann löschen.. so Problem für mich ist, wie mach ich des dass ich da eine Person auswählen kann, ich weiß ja vorher nicht welche ich auswähle.

also mein Programm beginnt so:

Console.WriteLine(
                    "Wähle bitte eine Möglichkeit: \n\n" +
                    "1 für das Anlegen eines neuen Autos \n" +
                    "2 für das Anzeigen der vorhandenen Autos \n" +
                    "3 für das Anlegen von Personen \n" +
                    "4 für das Anzeigen einer vorhandenen Person \n\n" +
                    "5 für das Löschen einer Person \n" +
                    "6 für das Löschen eines Autos \n" +
                    "7 für das Bearbeiten einer Person \n" +
                    "8 für das Bearbeiten eines Autos \n");

ich habe die ersten 4 Punkte bereits, aber verstehe nicht ganz wie ich da jetzt bestimmte Elemente löschen/bearbeiten kann.