Textbox überprüfen (Werte aus Textdatei)

U

unleashdance

Hallo!

Erst mal danke, falls sich jemand meinen Post durchliest und gewillgt ist mir zu helfen.
Nun mein "Problem"..

Ich habe in einer Textdatei verschiedene Strings, deren Inhalt sieht zb so aus:
123456;
asdf;
654321;
...

So, nun habe ich eine Form mit einer Textbox. Und die Eingabe dieser Textbox soll nun überprüft werden, ob der String in dieser Textdatei vorkommt.

Um dem ganzen einen logischen Hintergrund zu geben:
Die Strings in der Textdatei sind Barcodes von Kundenkarten oder Gutscheincodes, welche dann natürlich in der Textbox auf ihre Validität überprüft werden müssen, bevor das ganze abgeschickt werden kann.

Hoffe ihr versteht so in etwa was ich möchte, habe schon viel gegoogelt und in dem Zusammenhang nichts gefunden. Und sowas ähnliches habe ich auch noch nie gemacht, sonst würde ich nicht fragen.

Mfg, unleash
 

tequila slammer

Erfahrenes Mitglied
Am besten du liest die Datei zum Beispiel in ein Array ein. Anschließend kannst du unter .net 3.5 mit Array.Contains<> prüfen ob der Wert enthalten ist. Es ginge aber auch, in dem du das Array in einer Schleife durchläufst und prüfst ob der Wert an der aktuellen Position mit der Eingabe übereinstimmt.
 
U

unleashdance

Vielen Dank für die schnelle Hilfe! Hat wunderbar funktioniert!
 
H

HeaDHunteR

Verzeihung das ich das Thema wieder aufrufe, aber wie genau lese ich die Datei in ein Array ein und wie überprüfe ich die mit Array Contains. Und wie geht des dann noch mit der Schleife?

Genau so etwas such ich nämlich!

Bitte dringend um Hilfe

Cheers
HeaDHunteR
 

Turri

Erfahrenes Mitglied
Hallo,

man könnte es so hier machen.

C#:
string meinSuchstring = "123456;";
StreamReader reader = new StreamReader("C:\\Test.txt");  // Datei öffnen
string[] content = reader.ReadToEnd().Split('\n');  // Datei einlesen und in einzelne Zeilen splitten
reader.Close();
bool found = false;
foreach (string line in content)  // das Feld von Zeilen, "Zeile für Zeile" durchgehen
{
    if (line.Contains(meinSuchstring))  // wenn Suchstring gefunden
    {
        found = true;
        break;   // Suche abbrechen
    }
}
if (found)
    MessageBox.Show("gefunden!");
else
    MessageBox.Show("nicht gefunden!");
 
Zuletzt bearbeitet:
H

HeaDHunteR

Hehe,

Danke schonmal :)

Werd mich auch an diese Lösung gleich mal ransetzen und mich melden obs geklappt hat oder ich werd mich wieder mit neuen Problemen melden :p

Cheers
HeaDHunteR
 

Turri

Erfahrenes Mitglied
Hi,

habs 2008er doch noch gefunden. :)

C#:
using System.IO;
using System.Collections;

string meinSuchstring = "123456;";
StreamReader reader = new StreamReader("C:\\Test.txt");            // Datei öffnen
// Datei lesen, splitten in ein Feld, und gleich in eine Arrayliste kopieren
ArrayList liste = new ArrayList(reader.ReadToEnd().Split(new string[] {"\r\n"}, StringSplitOptions.None));  
reader.Close();
MessageBox.Show(liste.Contains(meinSuchstring).ToString());  // true wenn suchstring gefunden, false wenn nicht

Edit: sehe gerade das es Arraylist.Contains im VS2005 auch schon gibt
 
H

HeaDHunteR

Ahhhh oke danke :D

Naja nun schau ich mir erstma deinen 1. Vorschlag an.

Dan auch den 2. :p

Muss eben nur schauen das er das so abgleicht, dass immer 2 Zeilen 1 Block sind und wenn er in einem Block etwas findet, dass er dann auch nur aus diesem Block etwas entnimmt.
Aber ansonsten gehts sicher auch ohne. Ich werd einfach ma schauen und experimentieren :p

Cheers
HeaDHunteR
 
H

HeaDHunteR

Also deine 1. Idee funktioniert einwandfrei :)

So in etwa hab ich mir das auch vorgestellt. Nun werd ich noch ein bisschen rumtesten und es dann in mein Programm einbauen.

Außer wenn mir dein 2. Vorschlag besser gefällt, dann nehm ich den :p

Cheers
HeaDHunteR
 
H

HeaDHunteR

Also hier bin ich nochmal und mir ist etwas aufgefallen.

Ich hab in die Textdatei mal lalilo hineingeschrieben, und als test hab ich in meine textbox lali nur eingegeben. Trotzdem findet er es und sagt mir "gefunden". Wie kann ich das so einstellen, dass er mir nur "gefunden" sagt, wenn er auch das ganze wort findet, und nicht nur ein paar stückchen?

Hat da vllt. noch jemand ne Idee?