Hallo zusammen
Ich hab in Problem mit dem StreamReader, ich benutze die Visual C++ 2008 Express edition.
Also mein Problem:
Ich hab ne Textbox in der der Benutzer eine Eingabe macht, dann drückt er auf einen Button und seine Eingabe wird mit einer Wort in einer bestimmten Zeile in einer Textdatei (.txt) verglichen.
Dann bekommt der Benutzer ne MessageBox mit dem Ergebnis ob seine Eingabe mit der Textdatei übereinstimmt.
Bis hierhin hab ich alles gut hingekriegt, aber jetzt hab ich das Problem das der StreamReader weitermacht mit dem Auslesen. Sprich wenn in der Textdatei 4 Zeilen stehen, dann bekommt der Benutzer 4 mal ne MessageBox, und net 1mal wie geplant.
Und jetzt meine Frage: wie kann ich dem StreamReader sagen das er immer eine Zeile vergleichen soll, dann die MessageBox -> dann soll der Benutzer wieder ne Eingabe machen -> der StreamReader geht in die nächste Zeile, vergleicht diese -> MessageBox -> usw. bis ende der Datei?
hier ist mal mein Code den ich bisher dazu hab:
Ich hab in Problem mit dem StreamReader, ich benutze die Visual C++ 2008 Express edition.
Also mein Problem:
Ich hab ne Textbox in der der Benutzer eine Eingabe macht, dann drückt er auf einen Button und seine Eingabe wird mit einer Wort in einer bestimmten Zeile in einer Textdatei (.txt) verglichen.
Dann bekommt der Benutzer ne MessageBox mit dem Ergebnis ob seine Eingabe mit der Textdatei übereinstimmt.
Bis hierhin hab ich alles gut hingekriegt, aber jetzt hab ich das Problem das der StreamReader weitermacht mit dem Auslesen. Sprich wenn in der Textdatei 4 Zeilen stehen, dann bekommt der Benutzer 4 mal ne MessageBox, und net 1mal wie geplant.
Und jetzt meine Frage: wie kann ich dem StreamReader sagen das er immer eine Zeile vergleichen soll, dann die MessageBox -> dann soll der Benutzer wieder ne Eingabe machen -> der StreamReader geht in die nächste Zeile, vergleicht diese -> MessageBox -> usw. bis ende der Datei?
hier ist mal mein Code den ich bisher dazu hab:
Code:
/*** 1. Öffnen-Dialog konfigurieren ***/
// das gerade aktuelle Verzeichnis als Vorgabe in Dialog anzeigen
openFileDialog1->InitialDirectory = ".";
// Dateifilter definieren
// Jeder Filter besteht aus einem anzuzeigenden Text und
// einer Dateiextension - beides getrennt durch |
// Mehrere Filter werden ebenfalls durch | getrennt
openFileDialog1->Filter = "Textdateien (*.txt)|*.txt";
// Einen Filer auswählen
openFileDialog1->FilterIndex = 1;
// Keine Mehrfachauswahl
openFileDialog1->Multiselect = false;
// Kein vorgegebener Dateiname
openFileDialog1->FileName = "";
/*** 2. Öffnen-Dialog aufrufen ***/
if (openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
{
/*** 3. Dateiinhalt einlesen ***/
String^ Eingabe=textBox1->Text;
StreamReader ^sr = nullptr;
try
{
sr = gcnew StreamReader(openFileDialog1->FileName, false);
String ^zeile = "";
array<Char> ^zeichen = {'-'};
array<String^> ^woerter;
while (sr->Peek() != -1)
{
zeile = sr->ReadLine();
woerter = zeile->Split(zeichen);
("{0}-{1}-{2}", woerter[0], woerter[1], woerter[2]);
if (Eingabe == woerter[1])
{
MessageBox::Show("Richtig", "Richtig");
}
else
{
MessageBox::Show("Falsch", "Falsch");
}
}
}
catch (Exception ^e)
{
MessageBox::Show("Datei wurde nicht gefunden", "Fehler: ");
}
finally
{
if (sr)
sr->Close();
}
}
}