Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
arevyhs
Člen
Avatar
arevyhs:10.6.2013 15:31

Ahoj... mam program ktery ma mazat prostredni znak lichym slovum... prosim poradne kde mam chybu.

int mezera = 0;
            int mezera2 = 0;
            int y = 0;
            for (int i = mezera; i < textBox1.Text.Length; i++)
            {
                if ((textBox1.Text[i] == Convert.ToChar(" ")) || (textBox1.Text[i] == Convert.ToChar(".")))
                {
                    mezera = i;
                    for (y = mezera2; y < mezera; y++)
                    {

                        if ((mezera - mezera2) % 2 == 1)
                        {
                            if (y == (i / 2))
                            {
                                textBox2.Text += "";
                            }

                            else
                                textBox2.Text += textBox1.Text[y];

                        }

                        else
                            textBox2.Text += textBox1.Text[y];

                        //textBox2.Text += Convert.ToString(i);
                        textBox2.Text += Convert.ToString(mezera - mezera2);
                    }
                    //textBox2.Text += Convert.ToString(mezera2);
                    mezera2 = y + 1;
                }
            }
 
Odpovědět
10.6.2013 15:31
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na arevyhs
David Hartinger:10.6.2013 15:36

Tohle už tu jednou bylo, zřejmě nějaký úkol do školy. Já osobně to číst nebudu, protože to děláš příšerně složitě. Existuje metoda Split, která ti text rozdělí na slova, stačí poté projet pole slov. Projíždět znaky a kontrolovat mezery by se hodilo možná do starého céčka, v C# se programuje jinak.

Nahoru Odpovědět
10.6.2013 15:36
You are the greatest project you will ever work on.
Avatar
Dumdych
Neregistrovaný
Avatar
Dumdych:11.6.2013 17:30

Pokud se dá spolehnout na to, že všechna slova jsou oddělena mezerou (a všechny skupiny znaků jsou slova), pak stačí:

private void OddEraseCenter(string source)
{
    string[] separated = source.Split(' ');

    for(int index = 0, index < separated.Length; index += 2)
    {
        int length = separated[index].Length / 2 - 1;

        separated[index] = separated[index].Substring(0, length - 1) + separated[index].Substring(length + 1);
    }
}
 
Nahoru Odpovědět
11.6.2013 17:30
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na
David Hartinger:11.6.2013 17:32

Ono jde splitovat i podle pole znaků, může si tám dát k mezeře co chce.

Nahoru Odpovědět
11.6.2013 17:32
You are the greatest project you will ever work on.
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na
Petr Nymsa:11.6.2013 17:33

Tohle jsi mu psát nemusel :@ ... dělá to do školy, myslíš že jsi mu pomohl ? Ne :). Zamachruje že má úkol, ale užitek a pochopení 0. Poradit že exituje Split není na škodu ale a´t zbytek vymyslí sám, at nad tím klidně stráví víkend a bude u toho brečet. Ano jednou se mi to povedlo, pár slz z totální frustrace proběhlo :D ... takhle mu je to k ničemu

Nahoru Odpovědět
11.6.2013 17:33
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Petr Nymsa
Kit:11.6.2013 17:37

Stejně to má blbě, takže je to jedno.

Nahoru Odpovědět
11.6.2013 17:37
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.