Program do nauki słówek

Program do nauki słówek
AR
  • Rejestracja:około 6 lat
  • Ostatnio:około 4 lata
  • Postów:2
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ł?```

Kopiuj
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++;
 
            }
 
        }
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około godziny
  • Postów:5143
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)

AR
Okej, dzięki za uwagę.
litrmleka
  • Rejestracja:ponad 11 lat
  • Ostatnio:2 miesiące
  • Lokalizacja:lubuskie
  • Postów:201
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.

Spine
  • Rejestracja:około 22 lata
  • Ostatnio:2 minuty
  • Postów:6688
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.


🕹️⌨️🖥️🖱️🎮
edytowany 5x, ostatnio: Spine

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.