IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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í.

Revgex

Knihovna a program pro generování náhodných testovacích dat pomocí "jazyka" nápadně podobného regulárním výrazům.

Na projektu pracuji sám, napsán je v C# za použití Windows Forms.

Projekt využívá FastColoredTex­tBox komponentu.

Popis jazyka

Základ jazyka je podobný regulárním výrazům

  • nerezervovaný znak (nebo rezervovaný který je předcházen zpětným lomítkem) -> vypsán na výstup
  • [abc123] -> vypsán náhodný znak z výběru, možno používat i intervaly - např. a-z
  • \d, \s apod. -> kategorie znaků (možno použít i uvnitř []): \d jsou číslice, \s bílé znaky, \w písmena, číslice a _, velkým pístenem se značí opak (např. \D -> cokoli kromě číslic)
  • () -> skupina, může začínat výrazem ve tvaru :název; - tedy (:název; kód ) -> takto lze skupinu pojmenovat
  • * -> náhodný počet opakování, horní limit je zadán v aplikaci ("Repetition limit"), častěji generuje méně opakování
  • + -> jako *, ale vždy vygeneruje alespoň 1 výskyt
  • {n} -> n výskytů
  • {n,} -> alespoň n výskytů
  • {n,m} -> alespoň n, nejvýše m výskytů
  • (abc|012) -> znak '|' odděluje možnosti, z možností va dané skupině se náhodně vybere
  • . -> libovolný znak
  • \01 -> zpětná reference na 1. skupinu
  • \:název; -> zpětná reference na skupinu s daným názvem
  • $01 -> zpětná reference na 1. skupinu, namísto generování použije naposledy vygenerovanou hodnotu
  • $:název; -> zpětná reference na skupinu s daným názvem, namísto generování použije naposledy vygenerovanou hodnotu

Pozn.: rekurze není povolená

Další syntaxe

  • (!x kód ) -> modifikuje vše co je generováno jejím obsahem na základě znaku za vykřičníkem
U převod na velká písmena
l převod na malá písmena
C velká písmena na začátku slov
_ nahradí mezery a pomlčky za podtržítka
' ' nahradí pomlčky a podtržítka za mezery
- nahradí mezery a podtržítka za pomlčky
n odstraní mezery
t odebere bílé znaky ze začátku a konce
0 odebere nuly ze začátku
! výstup kódu je skryt - možno použít jako komentář nebo pro defiince skupin které mají být použity později
  • (?: kód ) -> na skupinu nelze zpětně odkazovat, v číslování skupin je ignorována
  • (" oddělovač ; opakování kód ) -> generuje pomocí kódu tolikrát, kolik je dáno opakováním, vygenerovaté výrazy oddělí oddělovačem, např. (",\ ;{5} \d{2} )
  • (' oddělovač ; opakování kód ) -> jako s dvojitými uvozovkami, ale generuje pouze jeden výraz a ten opakuje

Poznámky k aplikaci

  • volby pro ignorování bílých znaků v aplikaci jsou zde pro umožnění formátování "kódu". Pokud má být bílý znak přeci jen vygenerován, stačí použít zpětné lomítko ("\ " pro mezeru, "\n" pro konec řádky)
  • Filtr umožňuje filtrovat vygenerované texty na základě regulárního výrazu
  • knihovna generuje pouze ASCII znaky
  • aplikace umožňuje uložit výstup do souboru

Vyjádření poroty

  • Dan Vítek - 9 bodů - Super aplikace, osobně jsem něco takového už nějakou dobu hledal. Funguje dobře, reálně mi tam chyběl nějaký, alespoň základní, syntax highlighting. Stačilo by, aby oddělil barevně skupiny, makra a další fce od textu.
  • Adam Ježek - 10 bodů - Dobrý nápad, aplikace funkční, dovedu si představit její využití, v GUI nejsou žádné nepotřebné grafické prvky.

V následujícím cvičení, Cvičení 1 - Spojování textu, si procvičíme nabyté zkušenosti z předchozích lekcí.


Galerie

Program byl vytvořen v roce 2018.

 

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 14x (1.26 MB)
Aplikace je včetně zdrojových kódů v jazyce C#

 

Všechny články v sekci
Zdrojákoviště C# .NET - Okenní aplikace Windows Forms
Přeskočit článek
(nedoporučujeme)
Cvičení 1 - Spojování textu
Program pro vás napsal Zdeněk Pavlátka
Avatar
Uživatelské hodnocení:
2 hlasů
Autor se věnuje spoustě zajímavých věcí ze světa informatiky a grafiky
Aktivity