Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET. Zároveň využij akci až 30 % zdarma při nákupu e-learningu - 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í.
C# .NET + discount 30
Avatar
srdosm
Člen
Avatar
srdosm:23.4.2015 20:02

Potřeboval bych vysvětlit jednu zásadní věc, proč mi nefunguje kód níže.

Problém mám v druhém cyklu for. Nevím jak problém popsat, ale z kódu je to lehce pochopitelné.

private void AsciiToInt()
        {
            rtb.Text = "";

            // pole charu chArray
            char[] chArray = new char[256];

            // vyplneni pole chArray hodnotami ascii
            for (int i = 0; i < chArray.Length; i++)
            {
                chArray[i] = (char)i;
                //chArray[i] = (char)iArray[i];
            }

            // vypsani chArray do richTextBoxu NEFUNGUJE
            for (int i = 0; i < chArray.Length; i++)
            {
                if (i == 0)
                    rtb.Text += chArray[20].ToString(); // vypise znak enteru (int 20 = char 'ENTER')
                rtb.Text += chArray[i].ToString();      // neudela nic.

            }

            rtb.Text += "\nKONEC";  // nevypise se. Pokud zakomentuji radek s komentem "neudela nic", tak se vypise

        }

Nechápu, pro proč když zadávám index "ručně" (např. array[2]), tak to funguje, ale ho když zadám z proměnné (například array[i]), tak to neběží a kód navíc vůbec nepokračuje.

 
Odpovědět
23.4.2015 20:02
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na srdosm
Jan Vargovský:23.4.2015 20:10

Protože string je ukončený \0 znakem. Ten tam pravděpodobně dáváš taky a to je důvod, proč se ti nezobrazí. Takže si tam přidej nějakou podmínku, jestli náhodou přidávaný znak není '\0'.

Btw, nemusíš volat ToString na každém znaku. String má přetížený operátor, který akceptuje jen char.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět
23.4.2015 20:10
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
srdosm
Člen
Avatar
Odpovídá na Jan Vargovský
srdosm:23.4.2015 21:07

To je pravda, je to tak, díky. Hned na první pozici je znak \0. Jdu si s tím hrát.

 
Nahoru Odpovědět
23.4.2015 21:07
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 3 zpráv z 3.