Skip to content

VorlageDokuFcnXname

Steffen Schuemann edited this page Oct 12, 2019 · 1 revision

xname()

Erzeugung von Zeichenmustern für Benennungen

Syntax

<str>=xname(<rne>,<maxrep>)

Beschreibung

Mit xname() wird ein Name mittels xNamer-Mechanismen erzeugt, wobei bei Kollisionen (also doppelten Namen) max. maxrep erneute Versuche unternommen werden.

Parameter

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.

Reguläre Namensausdrücke

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 und m.
$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.

Beispiel

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.

Referenzen

Clone this wiki locally