Halloweenská akce! Na stránce s dobitím bodů zadej dole kód STRASIDELNYCH20 a získej porci +20% bodů zdarma!
Akce končí 31.10. o půlnoci.

Revgex

C# .NET Formuláře Windows Forms Zdrojákoviště Revgex

ONEbit hosting Unicorn College Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

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.

Galerie

Program byl vytvořen v roce 2018.

 

Stáhnout

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

 

 

Program pro vás napsal Zdeněk Pavlátka
Avatar
Jak se ti líbí článek?
1 hlasů
Autor se věnuje spoustě zajímavých věcí ze světa informatiky a grafiky :)
Aktivity (5)

 

 

Komentáře

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.

Zatím nikdo nevložil komentář - buď první!