Wyjście poza tablice (dlaczego??).

0

public static void Odwroc(string nazwa1, string nazwa2, int licznik)
{
if (nazwa1 == nazwa2)
{
Console.WriteLine("Nie można tak");
return;
}
if (!File.Exists(nazwa1))
{
Console.WriteLine("Nie istnieje plik o podanej nazwie");
return;
}
StreamReader sr = new StreamReader(nazwa1);
StreamWriter sw = new StreamWriter(nazwa2);
while (!sr.EndOfStream)
{
string text1 = sr.ReadLine();
string text2 = "";

            for (int i = 0; i < text1.Length; i++)
            {
                if (text1[i] != ' ' || text1.Length - 1 != i)
                {
                    text2 = text2 + text1[i];
                }
                else
                {
                    char[] tab = text2.ToCharArray();
                    for (int j = 0; j >= licznik; j++)
                    {
                        tab[j] = text2[licznik - 1 - j];//w tym miejscu wyskakuje mi wyskok indeksu z tablicy(whyyyy?!!)
                        
                    }
                    writefile.WriteLine(new string(tab) + " ");
                    sw.WriteLine();
                    text2 = "";
                }
            }
        }
        sw.Close();
        sr.Close();
    }
0

Napisałem w którym miejscu mi sie wykrzacza :)

0

nie analizowałem całości ale ten warunek j >= licznik jest co najmniej dziwny. No i to text2[licznik - 1 - j] jest co najwyżej równe 0 a potem leci w minus

0

Rzeczywiście zła nierówność powinno być j<licznik, jednakze cały czas ten sam błąd. Wcale nie jest conajwyzej równy zero wszystko zalezy od licznika ktory jest parametrem fukcji.

0

przy warunku jaki był wcześniej wartość indeksu była <= 0. Wstaw poprawiony kod W ZNACZNIKACH. BTW jeśli licznik jest podawany jako parametr i ma się nijak do długości tej tablicy to czego oczekujesz? BTW2 masz debugger - postaw tam breakpointa, zobacz co jest w tablicy, policz do którego elementu się odwołujesz i będziesz miał odpowiedz, co jest nie tak

0

Dzięki za pomoc, działa już :)

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