Textbox überprüfen (Werte aus Textdatei)

Turri

Erfahrenes Mitglied
Hallo,

Dann müsstest du bei Variante 1 umbauen.

C#:
string meinSuchstring = "123456;";
StreamReader reader = new StreamReader("C:\\Test.txt");
string[] content = reader.ReadToEnd().Split(new string[]{"\r\n"},StringSplitOptions.None);            
reader.Close();
bool found = false;
foreach (string line in content)
{
    if (line.Equals(meinSuchstring))
    {
        found = true;
        break;
    }
}
if (found)
    MessageBox.Show("gefunden!");
else
    MessageBox.Show("nicht gefunden!");

Variante 2 müsste so eigentlich schon gehen.
 

joe81

Grünschnabel
:):)

Hallo Zusammen

Erstmal ein fettes Dankeschön an Turri. Deine Ausführungen haben mir schon enorm geholfen.

Nun habe ich aber ein paar kleine Fragen bezüglich deines Codes.

Was bewirkt das "{ "\r\n" }" in der dritten Zeile?

Kann man generell den Code umschreiben, dass er nicht Zeilen in das Array schreibt, sondern bei einem Semikolon einen Array Eintrag erstellt. Immo nimmt er ja Zeilen aus dem TXT. Ich hab eine CSV Datei und möchte diese in einzelne Werte aufteilen.

Die ganze Sache mit dem Split hab ich noch nicht begriffen.

Besten Dank für die Mühe.
Joe
 

Nico Graichen

Erfahrenes Mitglied
Hi

In dem Code wird die komplette Textdatei als ein String eingelesen und dann bei Zeilenumbrüchen (\r\n / Carriage Return Line Feed) gesplittet.

Die Methode Split kannst du auch bei deinem Vorhaben nutzen.

Du solltest hier jedoch etwas anders vorgehen. Mit File.ReadAllLines wird die ein String-Array geliefert. Pro Zeile ein Eintrag im Array. Jetzt kannst du mit
C#:
// completely untested
array[index].Split(";".ToCharArray();
die einzelnen Zeilen in sein Zellen trennen.
 

joe81

Grünschnabel
Hallo Nico
Besten Dank für die prompte Antwort. Jedoch kann ich das nicht umsetzen. Ich bin ein absoluter Anfänger.

Code:
private void button1_Click(object sender, EventArgs e)
        {
            //
            string meinSuchstring = tbLogin.Text;
            // Datei öffnen
            StreamReader reader = new StreamReader("C:\\Test.txt");
            // Datei lesen, splitten in ein Feld, und gleich in eine Arrayliste kopieren/
            string[] content = reader.ReadToEnd().Split(new string[]  { "\r\n" } , StringSplitOptions.None);


            // Reader schliessen
            reader.Close();
            // true wenn suchstring gefunden, false wenn nicht
            bool found = false;
            foreach (string line in content)
            {
                if (line.Equals(meinSuchstring))
                {
                    found = true;
                    break;
                }
            }
            // Ausgabe
            if (found)
            {
                MessageBox.Show("Login OK");
            
                VAP showVAP = new VAP();
                showVAP.Show();
                this.Hide();
            }

            else
                MessageBox.Show("nicht gefunden!");
        }

Das CSV-File beinhaltet die ID, Name, Vorname. Ich will eigentlich nur ein Login erstellen über ein Textfile. Sprich eingabe über eine Textbox, geprüft ob der Eintrag in dem Textfile vorkommt. Der nächste Schritt ist es nach dem Login eine Begrüssung zu machen, also array +1. stell ich mir das zu einfach vor?


Besten Dank
Joe
 

Nico Graichen

Erfahrenes Mitglied
Hi

Du hast bei dir erstmal nur die Zeilen. Die musst aber nochmal Splitten und dann im entsprechenden Feld im Array nachschauen.
Mit dem geposteten Code kann ich so nix anfangen. Sorry. Ich weiß so nicht, wo du jetzt genau Probleme hast