Cześć mam problem z zadaniem. Mam do napisania program który sprawdza czy w tekście znajduje się szukany wyraz. Należy do tego wykorzystać pętle. Potem napisać metodę która korzysta z poprzedniej funkcji i na tej podstawie sprawdza ile wyrazów z pliku "wyrazy" znajduje się w pliku "plik".
Oto mój kod:
To jest napisane w "Class Library":
public static bool czyIstnieje(string tekst, string wyraz)
{
int ile = 0;
char[] t = tekst.ToCharArray();
char[] w = wyraz.ToCharArray();
int i = 0;
while (i < t.Length - w.Length + 1)
{
int suma = 0;
for (int j = 0; j < w.Length; j++)
{
if (t[i + j] == w[j]) suma++;
}
if (suma == wyraz.Length) ile++;
i++;
}
if (ile > 0) return true;
return false;
}
public static int SprawdzPlik(string plik, string wyrazy)
{
string dane = zPliku(plik);
string[] wyrazy_lista = wyrazy.Split(' ');
int licznik = 0;
for (int i = 0; i < wyrazy_lista.Length-1; i++)
{
if(czyIstnieje(dane, wyrazy_lista[i]))
{
licznik++;
}
}
return licznik;
}
public static string zPliku(string plik)
{
string w = string.Empty;
StreamReader sr = new StreamReader(plik);
while (!sr.EndOfStream)
{
w += sr.ReadLine();
}
sr.Close();
return w;
}
A to jest napisane w "Console Application":
static void Main(string[] args)
{
Console.WriteLine(Operacje.czyIstnieje("Ala ma kota", "ma"));
Console.WriteLine(Operacje.SprawdzPlik("wyrazy.txt", "plik.txt"));
Console.ReadKey();
}
Na potrzeby programu w folderze gdzie znajduje się program stworzyłem dwa pliki tekstowe "wyrazy" i "plik" wpisałem do nich to samo, liczby, słowa, ze spacją, bez i dalej pokazuje 0. Czy program to źle wyświetla czy jednak są błędy w kodzie? Bo nie wiem co mam dalej z tym zrobić.