C# - zapis i przeszukanie pliku

0

Chciałbym dodać do swojego programu możliwość zapisu do pliku wylosowanej liczby z przedzialu 1-4 (ktora mam już zapisana w zmiennej "nr"), a nastepnie odczytu zawartosci pliku i sprawdzenie, ktory numer wystapil najwięcej razy.

Myślałem, żeby to zrobić tak:

  1. Konwertuję liczbę do stringa:
wygrany = Convert.ToString(nr); 
  1. Zapisuję stringa do pliku:
StreamWriter sw = File.CreateText("D:\\M\\statystyki.txt");
                                         sw.WriteLine(wygrany);
                                         sw.Close();
  1. Szukam wystąpienia "1" i zwiększam odpowiedni licznik.
  2. To samo robie z "2", "3" i "4";
  3. Porównuję liczniki i zmieniam labela (czy tam MessageBoxa) w zależności od największej wartości.

Jako, że jestem nowy w C#, to nie znam odpowiednich funkcji i nie wiem, jak się za to zabrać. Potrzebuję naprowadzenia z dwoma rzeczami:

  • sw.WriteLine nie dopisuje kolejnych numerów, a jedynie zmienia zawartość pliku na najnowszy numer
  • nie wiem, jak szukać w pliku zadanej wartości, zwiększyć licznik i szukac dalej

Byłbym wdzięczny za pomoc :)

1

Zamiast WriteLine użyj AppendText.
Albo po prostu File.AppendAllText i wtedy nie musisz bawić się StreamWriterem.

Żeby zliczyć ilość wystąpień danych liczb możesz skorzystać z Dictionary<char,int>

3

Do przeszukania teksu możesz użyć LINQ jeżeli szukasz znaku jak ponizej:

yourString.Count(x => x == '1');

i odpowiednio wsadzasz do typu Dictionary tak jak podał kolega wyżej gdzie masz klucz jako char, a wartość wyrażoną jako liczba stałoprzecinkowa.
Jeżeli chcesz szukać całych słów w swoim tekście to

Regex.Matches(yourString, "szukana fraza").Count 
0

Zamieniłem na "File.AppendAllText" i użyłem "yourString.Count(x => x == '1')", dzięki wielkie za pomoc :]

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