Editace listu listů – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Editace listu listů – .NET – Fórum – Programujte.comEditace listu listů – .NET – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Matěj Andrle
~ Anonymní uživatel
1329 příspěvků
17. 7. 2013   #1
-
0
-

Dobrý den,

dělám matematický parser a po hrubé analýze mám vzorec rozčleněn do listu structů, které mají jako vlastnost další list strructů. A potřeboval bych přidat string k té nejvnitřnější vlastnosti:

subExpressions[subExpressions[index].Level].Expression[subExpressions[index].Index].Content += Calculate(subExpressions[index].Expression); 

Ale v C# se dá editovat jen obyčejný list. Takovéto složitosti mi to vždy ignorovalo. Jenže nyní by se to šiklo více, než kdy dříve. Jinak bych musel přistoupit k složitému předávání listu, kterů bude určovat co se kde a na co bude měnit... V čem tedy tkví problém takto hluboké editace? Popř. jak to lépe řešit?

Vlastnost Level určuje level zanoření daného vzorce - závorka. (Beru to jako vzorec ve vzorci - a rozkládám tedy z pole subvzorců do listu vzorců s indexem kam vložit výsledek.) Takže vše co potřebuji je systém, jak parsovat list vzorců tak, aby se výsledky subvzorců zasazovaly do rodičovského vzorce... Na vrchu toho složitého listu je vždy závorka, které nic nechybí - dá se spočítat bez znalosti výsledku nějakého subvzorce. Kam ale vložit její výsledek, aby se dal spočítat subvzorec hned pod ní...


Děkuji.

Nahlásit jako SPAM
IP: 78.136.150.–
Reklama
Reklama
vitamin+8
Grafoman
17. 7. 2013   #2
-
0
-

#1 Matěj Andrle

Väčšinou sa to rieši tak že si vygeneruje AST:

A * ( -B + 6)

Zátvorky sa v ňom vôbec nemusia nachádzať lebo len upravujú prioritu operátorov. Doporučujem ti pozrieť sa na Recursive descent parser.

Nahlásit jako SPAM
IP: 195.28.77.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
hobit
~ Anonymní uživatel
1 příspěvek
17. 7. 2013   #3
-
0
-
Nahlásit jako SPAM
IP: 84.242.74.–
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, 52 hostů

Podobná vlákna

Vycentrovanie listu — založil Peter

Hledání v listu — založil yaqwsx

Nacitani Listu z XML — založil gabbo

 

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