NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Neaktivní uživatel:16.3.2016 16:38

Ahoj,
měl bych dotaz. Pracuji na prezentaci do školy a chtěl bych se zeptat, jestli je nějaký rozdíl mezi přetypováním a parsováním. Myslím si, že jsou to dva pojmy pro označení toho samého, ale chtěl bych se ujistit, než to tam napíšu. :)

Odpovědět
16.3.2016 16:38
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Patrik Valkovič:16.3.2016 17:04

Parsing is the process of analysing a string of symbols, either in natural language or in computer languages, conforming to the rules of a formal grammar.
Parsuje se vždy nějaký text. Jak je zmíněno, podle pravidel gramatiky (k tomu je ale potřeba více teoretických znalostí).
Přetypování se provádí mezi typy (například z int do float).

Editováno 16.3.2016 17:04
Nahoru Odpovědět
16.3.2016 17:04
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Neaktivní uživatel:16.3.2016 17:08

No to jo, ale podle z tohoto jsou to pochopil krapet jinak :)
http://www.itnetwork.cz/…a-parsovani/

Nahoru Odpovědět
16.3.2016 17:08
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Patrik Valkovič:16.3.2016 17:19

To je samozřejmě špatně. Definice je výše (z wikipedie) - musí se jednat o "řetězec symbolů". Když chceš z floatu dostat int, nenapíšeš "Int32.Parse(ne­jakyFloat);" ale "nejakyInt = (int)int;" popřípadě "nejakyInt = nejakyFloat.To­Int32();"
viz https://msdn.microsoft.com/….110%29.aspx a https://msdn.microsoft.com/….110%29.aspx.
Skutečně se jedná o dva rozdílné pojmy.

Nahoru Odpovědět
16.3.2016 17:19
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Patrik Valkovič:16.3.2016 17:24

https://social.msdn.microsoft.com/…g-vs-parsing?…

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
16.3.2016 17:24
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Neaktivní uživatel:16.3.2016 17:25

Díky, už to (asi) chápu.
Ale proč je tedy Convert.ToInt32 a int.Parse, když pomocí toho dosáhnu stejného výsledku?

Nahoru Odpovědět
16.3.2016 17:25
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:16.3.2016 17:29

Díky moc, vše pochopeno :)

Nahoru Odpovědět
16.3.2016 17:29
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Patrik Valkovič:16.3.2016 17:34

Convert je trošku zavádějící, ale v poznámkách je napsáno, že pouze interně volá Int32.Parse, takže je to ekvivalentní :D

Nahoru Odpovědět
16.3.2016 17:34
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Petr Čech:16.3.2016 17:36

Jsou to dvě naprosto rozdílné věci, schválně si zkus přetypovat číslo ve stringu na int

int i=(int)"6";

Ani tě to nenechá zkompilovat.
Parsování znamená, že převedeš něco na něco jiného, ikdyž normálně jsou obě věci neslučitelné- třeba xml soubor převedeš na nějaký objekt uživatele. S parsováním se setkáváme i v neobjektových jazycích.

Přetypování funguje pouze v OOP a jde o to, že objekt, který převádíš na něco jiného ve skutečnosti je tím, na co ho chceš převést, ale kompilátor o tom neví. Použiješ to třeba tak, že si uložíš uživatele do typu object, ale chceš s ním dále pracovat. Jenže kompilátor neví, že v proměnné typu object je ve skutečnosti uživatel, proto to explicitně specifikuješ přetypováním.

object o=new User();
//nějaký kód
User b=(User)o;

Problém VB.NET neumím, ale co jsem tak pochopil z toho krátkého článku, je to dost matoucí, pokud neumíš OOP již z dřívějška. Nicméně platí, že to jsou 2 naprosto odlišné věci.
VB.NET jen očividně umožňuje zkrácený zápis pro parsování.

Nahoru Odpovědět
16.3.2016 17:36
the cake is a lie
Avatar
Neaktivní uživatel:16.3.2016 18:00

Tak teď už mi to je naprosto jasné. OOP jsem se učil v zdejším seriálu ;)

Nahoru Odpovědět
16.3.2016 18:00
Neaktivní uživatelský účet
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 10 zpráv z 10.