-
Notifications
You must be signed in to change notification settings - Fork 2
VorlageDokuFcnXname
Erzeugung von Zeichenmustern für Benennungen
<str>=xname(<rne>,<maxrep>)
Mit xname() wird ein Name mittels xNamer-Mechanismen erzeugt, wobei bei Kollisionen (also doppelten Namen) max. maxrep
erneute Versuche unternommen werden.
rne
- Regulärer Namensausdruck, eine Regel, mit der der Name erzeugt werden soll.
maxrep
- Maximale Anzahl von erneuten Versuchen bei Erzeugung von schon vorhandenen Namen.
Die Regulären Namensausdrücke erzeugen über ein paar einfache Regeln die Zeichenmuster, die einen Namen ausmachen. Dabei gibt es folgende Regeln:
(<regel> <regel> ...)
- Die runden Klammern sorgen für eine Zusammenfügung der dazwischen angegebenen Regeln.
[<regel>|<regel>|...]
- Die eckigen Klammern bewirken, das die durch den Strich getrennten Regeln als Alternativen angesehen werden, xNamer also eine von ihnen zufällig auswählt.
[<regel>|<regel>|...]<n>
- Diese Variante der vorherigen Regel erzwingt die n-fache Wiederholung zufälliger Auswahl aus den Regeln, wobei die Teilergebnisse aneinandergefügt werden.
[<regel>|<regel>|...]<n>:<m>
- Diese Variante der vorherigen Regel bewirkt eine Wiederholung um einen Zufallswert zwischen
n
undm
. $name
- Wird durch das Ergebnis der Regel mit dem Namen $name ersetzt.
irgendwelche Buchstaben
- Einfache Buchstaben werden direkt übernommen, wobei ein # als Leerzeichen verwendet werden kann.
Es sei dies eine Regeldatei die Vorlage mittels der Option -xn übergeben wurde:
; Dies ist eine (einfache) Vornamen-Regel
$fore = [Carl|Pete|Hank]
; Dies ist eine Nachnamen-Regel
$sur = [Higgins|Johnson|Smith]
; Diese Regel kombiniert die Namensteile zu vollen Namen
$name = ($fore # $sur)
Aus dieser Regel könnten durch #message xname('$name',10)
z.B. folgende Namen entstehen:
Carl Johnson
Hank Higgins
Hank Johnson
Pete Smith
Carl Higgins
Natürlich ist die ein äußerst primitives Beispiel, aber alle Namen meiner Zwerge sind nach xNamer-Regeln benannt, und auch Gulrak ist auf diese Weise entstanden. Hierzu müssen natürlich schon die Namensteile aus kurzen, möglichst gut zusammenpassenden Zeichenfolgen zusammengesetzt werden.
- Allgemeines
- Einführung
-
Funktionen
- abs()
- after()
- and()
- antoi()
- before()
- ceil()
- change()
- close()
- crop()
- equals()
- exp()
- flatten()
- float()
- floor()
- int()
- isnothing()
- itoan()
- length()
- log()
- log10()
- match()
- not()
- open()
- or()
- random()
- read()
- readline()
- sign()
- status()
- statustext()
- substr()
- system()
- time()
- tolower()
- toupper()
- typeof()
- write()
- writeline()
- xname()
- xor()
- Metabefehle
- Rückruf-Prozeduren
- Report-Objekte
- Anhang