none
C#, Textdatei Zeilenweise einlesen, splitten und vergleichen RRS feed

  • Frage

  • Hallo,

    ich habe eine Textdatei, in der ich Daten in folgender Form stehen habe
    [quote]
    Name,info1,info2
    Name,info1,info2
    [/quote]

    Nun habe ich eine WinForm erstellt, in der name und info 1 (z.B. Passwort) eingegeben werden. Bei Buttonklick soll das Eingebene mit den Daten in der Textdatei verglichen werden, und nur dann wenn Name und info1 identisch sind, soll weiter gemacht werden.
    Wie bekomme ich das hin? Gibt es dafür einen Beispiel-Code?


    Vergiss nicht: Profis haben die Titanic gebaut, Amateure die Arche
    Sonntag, 14. Juni 2009 20:51

Antworten

  • Prinzipell würde ich dir, speziell, wenn es um Logins geht, eher zu anderen Möglichkeiten raten.
    XML ist da eine sehr nette Angelegenheit.

    1. du musst die Datei nicht selber auslesen und interprätieren, das macht alles der XMLSerializer für dich.
    2. du kannst gleich ein Objekt daraus machen, beispielsweise eine Dctionary.

    Mein Vorschlag geht dahin, dass du eine Dictionary<string,string> machst, und diese befüllst .Add(Loginname,Passwort);
    Dann kannst du sehr kompfortabel das ganze vergleichen:

    If((Dictionary.Contains(txtLogin.Text)) && (Dictionary[txtLogin.Text] == txtPasswort.Text))
    {
    	//weitermachen
    }
    else { //Fehler anzeigen }



    Das wäre mein Vorschlag!
    Montag, 15. Juni 2009 13:59
  • Für die Problemstellung:

    http://msdn.microsoft.com/de-de/library/system.io.file.readalltext.aspx

    Dann ein String.Split auf die Zeilenumbrüche, gefolgt von einem Split auf die Kommas. Das dann in ein Dictionary packen damit der Lookup vernünftigt läuft (Performance). Mit einem Filesystemwatcher kann man sich auch noch über Veränderungen an der Datei benachrichtigen lassen.

    Chris

    Christoph Wille - MVP ASP.NET, Glengamoi Alumni - Realnamen sind ein Gebot der Höflichkeit in der Community
    Montag, 15. Juni 2009 14:45

Alle Antworten

  • Prinzipell würde ich dir, speziell, wenn es um Logins geht, eher zu anderen Möglichkeiten raten.
    XML ist da eine sehr nette Angelegenheit.

    1. du musst die Datei nicht selber auslesen und interprätieren, das macht alles der XMLSerializer für dich.
    2. du kannst gleich ein Objekt daraus machen, beispielsweise eine Dctionary.

    Mein Vorschlag geht dahin, dass du eine Dictionary<string,string> machst, und diese befüllst .Add(Loginname,Passwort);
    Dann kannst du sehr kompfortabel das ganze vergleichen:

    If((Dictionary.Contains(txtLogin.Text)) && (Dictionary[txtLogin.Text] == txtPasswort.Text))
    {
    	//weitermachen
    }
    else { //Fehler anzeigen }



    Das wäre mein Vorschlag!
    Montag, 15. Juni 2009 13:59
  • Für die Problemstellung:

    http://msdn.microsoft.com/de-de/library/system.io.file.readalltext.aspx

    Dann ein String.Split auf die Zeilenumbrüche, gefolgt von einem Split auf die Kommas. Das dann in ein Dictionary packen damit der Lookup vernünftigt läuft (Performance). Mit einem Filesystemwatcher kann man sich auch noch über Veränderungen an der Datei benachrichtigen lassen.

    Chris

    Christoph Wille - MVP ASP.NET, Glengamoi Alumni - Realnamen sind ein Gebot der Höflichkeit in der Community
    Montag, 15. Juni 2009 14:45