Diskuze: Čtení po slovech (lichyým mazat prostřední znak)

C# .NET .NET (C# a Visual Basic) Čtení po slovech (lichyým mazat prostřední znak) American English version English version

Avatar
arevyhs
Člen
Avatar
arevyhs:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na arevyhs
David Čápka:

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  +1 10.6.2013 15:36
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Dumdych
Neregistrovaný
Avatar
Dumdych:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na Dumdych
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Dumdych
Petr Nymsa:

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  +1 11.6.2013 17:33
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Kit
Redaktor
Avatar
Odpovídá na Petr Nymsa
Kit:

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.