Program do nauki słówek

0

Dzień dobry,

Jestem w trakcie pisania programu do nauki słówek. C# okienkowy.

Opis działania programu:

  • Za pomocą przycisków wskaż lokalizacje plików tekstowych ze słowkamiANG i PL. (dwa osobne pliki)

  • Kliknij przycisk start aby rozpocząć program

  • w labelu pojawia się pierwsze słówko z tablicy

  • do textboxa wprowadzam tłumaczenie słowka i wyskakuje MessageBox "OK" lub "ŹLE"

I w tym miejscu pojawia się problem. Program zamiast za każdym razem czekać aż wprowadzę nowe słowko do textboxa to się zapętla, pytania w labelu się zamieniają i wyświetla MessageBox'y.
Jak najlepiej to zrobić aby program poprawnie działał?```

private void sprawdzButton_Click(object sender, EventArgs e)
        {
            BazaSlow.bazaPolskichSlowek = _fileReader.Read(adresPlikuPL);
            BazaSlow.bazaAngielskichSlowek = _fileReader.Read(adresPlikuANG);
            string odpowiedz = odpTextBox.Text;
            int i = 0;
 
            while (i < BazaSlow.bazaPolskichSlowek.Length)
            {
                trescSlowkaLabel.Text = BazaSlow.bazaPolskichSlowek[i];
                 
                if (odpowiedz.Equals(BazaSlow.bazaAngielskichSlowek[i].ToLower()))
                {
                    MessageBox.Show("OK");
                }
                else
                {
                    MessageBox.Show("ŹLE");
                }
                i++;
 
            }
 
        }
0

Czytanie z pliku raczej nie powinno być w tym przycisku

Zaczytane dane możesz przechowywać na poziomie całego forma, a nie lokalnie w tej funkcji, a następnie manipulować indexem (też żeby był na poziomie forma)

0

O ile wczytywanie pliku za każdym razem nie powoduje Twojego problemu (ale na pewno nie jest poprawne i wydajne) o tyle przelatywanie w pętli (while) po całej kolekcji odczytanej z pliku już na pewno. Musisz porównywać (jak kolega wyżej napisał) tylko słówka o odpowiednim indexie, aktualnie sprawdzasz poprawność wpisanego ze wszystkimi dostępnymi z pliku.

0

Słówka trzymaj w jednym pliku. Nawet CSV.
Dwa pliki tekstowe != spójne dane.

Słówka porównuj niedokładnie, np. użyj dystansu Levenshteina. Przy takich problemach to niezbędne, żeby nie porównywać stringów dokładnie co do znaku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1