C-Neuling Geschrieben 2. Januar 2011 Teilen Geschrieben 2. Januar 2011 Hallo Liebes Forum! Ich habe vor kurzem begonnen C# zu programmieren. Jetzt möchte ich eine Ordnerstruktur anlegen, in die man Daten eingeben und abrufen kann (über .txt Dateien). Jetzt möchte ich aber, dass durch eine string eingabe eine bestimmte datei aufgerufen wird! Ich möchte aberauch nicht für jede Möglchkeit eine eigene if Anweisung shreiben. Bitte helft mir!!! Was ich bis jetzt habe: static void Main(string[] args) { int PW = 0; string Name =Convert.ToString("0"); string path = "C"; Name = Console.ReadLine(); PW = Convert.ToInt32(Console.ReadLine()); FileStream fs = new FileStream(@"C:\XXX\ABC[CODE] StreamReader sr = new StreamReader(fs); int s = Convert.ToInt32(sr.ReadLine()); if (PW == s) { Console.WriteLine("Anmeldung erfolgreich"); } else { Console.WriteLine("Falsches Passwort"); } fs.Close(); sr.Close(); Console.ReadLine(); } Danke C-Neuling.txt", FileMode.Open); Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
NerdonRails Geschrieben 2. Januar 2011 Teilen Geschrieben 2. Januar 2011 Stichwort: Kommandozeilen-Argument ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kevinka Geschrieben 3. Januar 2011 Teilen Geschrieben 3. Januar 2011 Moin: ich hätte 2 Klassen gemacht: Program und Logic Die Klasse Logic liest jede Zeile der Textdatei aus. Außerdem erlaubt sie nur 3 Zugriffversuche. Der Pfad kann vom Benutzer angegeben werden... Falls ich das so falsch verstanden habe, wäre gut wenn du das alles nochmal erläuterst was du mit: "Jetzt möchte ich eine Ordnerstruktur anlegen, in die man Daten eingeben und abrufen kann (über .txt Dateien)." meinst. class Program { static void Main(string[] args) { string path; Console.Write("Bitte Pfad angeben:"); while (!File.Exists(path = Console.ReadLine())) { Console.WriteLine("Datei existiert nicht! - Bitte korrekten Pfad angeben"); } Logic lg = new Logic(path); } } public class Logic { private string _path; const string PW = "meinPasswort"; int passwortTryout = 0; public Logic(string Path) { _path = Path; Console.WriteLine("Bitte Passwort eingeben:"); while (passwortTryout < 3) { passwortTryout++; TryPasswort(); } } private void TryPasswort() { string strCurrentEntry = strCurrentEntry = Console.ReadLine(); if (strCurrentEntry == PW) { Console.WriteLine("Anmeldung erfolgreich\r\n"); TextDateiLesen(); passwortTryout = 0; } else { Console.WriteLine(string.Format("Falsches Passwort - noch {0} Versuche", 3 - passwortTryout)); } } private void TextDateiLesen() { // using gibt den Speicher nach der Benutzung des StreamReaders frei. using (StreamReader sr = new StreamReader(new FileStream(_path, FileMode.Open))) { while (!sr.EndOfStream) { Console.WriteLine(sr.ReadLine()); } } } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
C-Neuling Geschrieben 3. Januar 2011 Autor Teilen Geschrieben 3. Januar 2011 Wie gesagt, ich bin Anfänger! Deine Lösung gefällt mir ganz gut, nur möchte ich, dass der Benutzer den ganzen Pfad angeben muss, sondern dass er den Pfad nur mit dem Dateinamen ergänzen muss! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kevinka Geschrieben 3. Januar 2011 Teilen Geschrieben 3. Januar 2011 static void Main(string[] args) { string path; Console.Write("Bitte Pfad angeben:"); while (!File.Exists(path = string.Format("C://{0}", Console.ReadLine()))) { Console.WriteLine("Datei existiert nicht! - Bitte korrekten Pfad angeben"); } Logic lg = new Logic(path); } Dann änderst du einfach das "C://" bei string.format denn {0} dient als Platzhalter für das Benutzer eingegebene, dh der dateiname mit Typ z.B. test.txt Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lbm1305 Geschrieben 3. Januar 2011 Teilen Geschrieben 3. Januar 2011 (bearbeitet) Könntet Ihr bitte den CODE-Tag verwenden?! Bearbeitet 3. Januar 2011 von lbm1305 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lbm1305 Geschrieben 3. Januar 2011 Teilen Geschrieben 3. Januar 2011 Wie gesagt, ich bin Anfänger! Deine Lösung gefällt mir ganz gut, nur möchte ich, dass der Benutzer den ganzen Pfad angeben muss, sondern dass er den Pfad nur mit dem Dateinamen ergänzen muss! Entweder Du liest den Pfad irgendwo her ein und / oder Du gibst den komplett vor und machst dann eine Zeichenkettenaddition. Beides Zusammen ergibt dann den Pfad + Dateiname. (Geht natürlich auch mit den Methoden, die String zur Verfügung stellt) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
C-Neuling Geschrieben 8. Januar 2011 Autor Teilen Geschrieben 8. Januar 2011 @ kevinka: hast du das jemals getestet??? Dein Code hat zumindest nicht funktioniert! Aber nicht so schlimm, es war nur ein kleiner Fehler, den konnte sogar ich beheben Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lilith2k3 Geschrieben 9. Januar 2011 Teilen Geschrieben 9. Januar 2011 @kevinka: Bitte auch mal einen Blick in Design Guidelines for Developing Class Libraries werfen... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.