Command Parser   otázka

C#

Zdravím, chtěl bych udělat program(Analyzer příkazů), který by zpracovával příkazy z příkazové řádky, nejraději v C#, ale možná i v Javě, to je celkem jedno, nechci zde psát zdrojové kódy, maximálně kratoučké příklady.

K věci, jde mi o to, že uživatel zadá do konzole nějaký příkaz a třeba jeho parametr, asi takto:

!select <file>

Kde místo <file> bude jméno, problém je, že pomocí Console.Readline(); to nelze, jelikož to vždy čeká na ten vstup a pokud jich je tam třeba 10, tak to jede popořadě, což samozřejmě nechci, napadlo mě udělat to pomocí Regulárních výrazů, pokud máte nějaký nápad napište, stačí pouze nějaký MOŽNÝ postup, nepotřebuji zdrojový kód, to už si nějak dohledám, maximálně krátký příklad jak jsem psal. Děkuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nevidím důvod, proč by to nešlo pomocí ReadLine? Stačí ukládat řádky a definovat příkaz, který vyvolá parser, který projede uložené řádky.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Už jsem to vyřešil, udělal jsem si vlákno, které neustále kontroluje vstup, pokud uživatel něco zadá, hodnota se uloží do dynamického pole a následně se porovná s polem, obsahující příkazy, teď ještě musím dodělat to zpracování parametrů. Měl jste pravdu, šlo to i tak, jen jsem to předtím špatně "Zpracoval".

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Neviem, či Vám to už došlo, ale toto sa dá oveľa ľahšie spraviť pomocou ReadLine. Uvedená funkcia číta klávesy až kým užívateľ nestlačí Enter.Toto je akurát vhodné na načítanie jednotlivých príkazov.Ak bude potreba uviesť viac príkazov naraz, potom buď definujte alternatívny oddeľovač príkazov.Pri najhoršom spravte tú Vašu prasáreň s poľom, ale zvážte pritom použitie System.Collections.Generic.List<char> a/alebo System.Text.StringBuilder .

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Právě že to ukládám do List<char> :-) A i vy jste nekdy zacinal, tak nedelejte že jste vždy psal dokonalý SW.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

K čemu to má sloužit? Těžko uděláte něco lepšího než PowerShell.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To ani nechci :-) Dělám to čistě z výukových účelů, opravdu nechci konkurovat PowerShellu :-), jen mě zajímají metody a postu spracování textu, vstupu a výstupu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback