Přetypování string na int – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Přetypování string na int – .NET – Fórum – Programujte.comPřetypování string na int – .NET – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Kenvelo+2
Super člen
11. 4. 2013   #1
-
0
-

Zdravím mám menší problém nejspíš s přetypováním. C# se teprve učím.

private void zadaniHesla(object sender, EventArgs e)   // TEXT BOX
        {
           
        }
        private void klikPrihlasit(object sender, EventArgs e) // BUTTON PŘIHLÁŠENÍ
        {
            int a = 1234;

            if (tbHeslo.TextLength == a)     // POKUD TEXT BOX == PROMĚNNÉ "A" OTEVŘE SE FORM 2
            {
                Form2 form = new Form2();
                form.Show();
            }
            else 
            {
                Close();
            }

Problém spočívá že pokud zadám číselnou variaci Form2 se neotevře. I když zadám čísla špatně Form1 se nezavře. 

Nahlásit jako SPAM
IP: 89.177.13.–
Díky bohu, že počítače vymysleli muži. Kdyby to byly ženy, tak binární soustavu reprezentují jedničky, nuly a "možná"
KIIV
~ Moderátor
+43
God of flame
11. 4. 2013   #2
-
0
-

#1 Kenvelo
neni box.textLength delka textu v nem? nejspis by to proslo, kdyz bys tam dal text dlouhej 1234 znaku

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Kenvelo+2
Super člen
11. 4. 2013   #3
-
0
-

#2 KIIV
Když napíšu pouze if (tbHeslo.Text == a)  

Tak mi to píšeš Operator "==" cannot be applied to operand of type "string" and "int"

Nahlásit jako SPAM
IP: 89.177.13.–
Díky bohu, že počítače vymysleli muži. Kdyby to byly ženy, tak binární soustavu reprezentují jedničky, nuly a "možná"
KIIV
~ Moderátor
+43
God of flame
11. 4. 2013   #4
-
0
-

jenze na prevod textu na cislo sou taky nejaky funkce ci metody... hledal bych nejaky  int parse, toInt ... strToInt a podobny

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Kenvelo+2
Super člen
11. 4. 2013   #5
-
0
-

#4 KIIV
Po pravdě vůbec  netuším jak to udělat :)

Nahlásit jako SPAM
IP: 89.177.13.–
Díky bohu, že počítače vymysleli muži. Kdyby to byly ženy, tak binární soustavu reprezentují jedničky, nuly a "možná"
KIIV
~ Moderátor
+43
God of flame
11. 4. 2013   #6
-
0
-

no zacnes tim ze zapnes google a zadas hledat   .net text to int   nebo tak neco...

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
naromax
~ Redaktor
+1
Návštěvník
11. 4. 2013   #7
-
0
-

Jak již bylo řečeno. TextLength vrací délku řetězce, takže použijte vlastnost Text, která vrací obsah textového pole. Další věcí je, že pokud to z nějakého důvodu opravdu nepotřebujete, proměnnou pro heslo definujte jako string (textový řetězec) a nemusíte vůbec řešit nějaké přetypovávání, protože porovnáváte dva stejné datové typy. 

string a = "1234";

if (tbHeslo.Text == a)   
{
     // Váš kód,...	
}
Nahlásit jako SPAM
IP: 86.61.239.–
Pořádek je pro blbce, inteligent zvládá chaos.
naromax
~ Redaktor
+1
Návštěvník
11. 4. 2013   #8
-
0
-

No, když jsem v tom, tak pokud by bylo potřeba heslo definovat jako int, pro konverzi se používá třída Convert a ta obsahuje metodu ToInt32().

int a = 1234;

if (Convert.ToInt32(tbHeslo.Text) == a)   
{
     // Váš kód,...
}

Šlo by to ještě taky tak, že proměnnou a přetypujete na string a porovnáte jen s tbHeslo.Text.

Nahlásit jako SPAM
IP: 86.61.239.–
Pořádek je pro blbce, inteligent zvládá chaos.
LukoSS
~ Anonymní uživatel
73 příspěvků
11. 4. 2013   #9
-
0
-

#8 naromax
Programátor nikdy nesmí důvěřovat vstupu od uživatele    Convert.ToInt32 vyhodí výjimku v případě, že vstup není číslo. Proto by bylo lepší řešení třeba tohle:

int heslo = 1234;
int zadaneHeslo;

if (Int32.TryParse(tbHeslo.Text, out zadaneHeslo) && heslo == zadaneHeslo)
{
	Form2 form = new Form2();
	form.Show();
}

Metoda TryParse vrací true v případě, že se povedlo ze stringu získat číslo, jinak vrací false..

Nahlásit jako SPAM
IP: 88.103.252.–
naromax
~ Redaktor
+1
Návštěvník
11. 4. 2013   #10
-
0
-

#9 LukoSS
Ano, to jsem trochu opomenul. V tom případě by bylo vhodnější přetypovat proměnnou a na string (a.ToString()) a potom hodnoty porovnávat.

Ale jak jsem již řekl, heslo by mělo být definované jako string, nevidím absolutně žádný důvod, proč by to mělo být číslo. Tím do značné míry také degradujete i možnosti pro bezpečnější heslo (příklad - 123456789 a 1b3D94d56qw4r - zde je rozdíl myslím dost patrný).

Nahlásit jako SPAM
IP: 86.61.239.–
Pořádek je pro blbce, inteligent zvládá chaos.
LukoSS
~ Anonymní uživatel
73 příspěvků
11. 4. 2013   #11
-
0
-

#10 naromax
Dotaz původně zněl jak převést řetězec na číslo a když už se tu objevil kód s Convert.ToInt32, tak jsem se jen snažil ukázat správnou cestu. To, že by mělo být heslo string a ne int je samozřejmě pravda, o tom nemá cenu diskutovat..

Nahlásit jako SPAM
IP: 88.103.252.–
naromax
~ Redaktor
+1
Návštěvník
11. 4. 2013   #12
-
0
-

#11 LukoSS
Nemá cenu o tom diskutoval, ale vzhledem k tomu, že tazatel je začátečník, je dobré na to upozornit. 

Nuže, vše co bylo potřeba říci řečeno bylo, takže bych tuto diskuzi označil za uzavřenou, hmmm.... ? :)

Nahlásit jako SPAM
IP: 86.61.239.–
Pořádek je pro blbce, inteligent zvládá chaos.
Kenvelo+2
Super člen
11. 4. 2013   #13
-
0
-

Všem díky ;) 

Nahlásit jako SPAM
IP: 89.177.13.–
Díky bohu, že počítače vymysleli muži. Kdyby to byly ženy, tak binární soustavu reprezentují jedničky, nuly a "možná"
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 81 hostů

Podobná vlákna

Přetypování int na double — založil DooFy93

String << int — založil Kenvelo

Premena int -&gt; String — založil Dagi

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý