This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
vba:functions:rndstring [04.05.2017 15:50:55] yaslaw created |
vba:functions:rndstring [04.09.2019 11:56:01] (current) yaslaw |
||
---|---|---|---|
Line 1: | Line 1: | ||
<const> | <const> | ||
- | version=1.0.0 | + | version=1.0.1 |
- | vdate=04.05.2017 | + | vdate=04.09.2019 |
fname=udf_rndstring.bas | fname=udf_rndstring.bas | ||
ns=%NAMESPACE% | ns=%NAMESPACE% | ||
Line 7: | Line 7: | ||
</const> | </const> | ||
====== [VBA] rndString() ====== | ====== [VBA] rndString() ====== | ||
- | //Stellt aufgrund eines Patterns ein Zufallstext zusammen// | + | //Stellt aufgrund eines Patterns ein Zufallstext zusammen. zB. für ein Passwortgenerator// |
==Version %%version%% - %%vdate%%== | ==Version %%version%% - %%vdate%%== | ||
{{%%ns%%:%%fname%%|Download %%fname%% (V-%%version%%)}} | {{%%ns%%:%%fname%%|Download %%fname%% (V-%%version%%)}} | ||
+ | ===== Definition ===== | ||
+ | <code>String = rndString(pattern)</code> | ||
+ | <code vb>'/** | ||
+ | ' * Erstellt ein Zfallswerd gemäss Patterndefinition | ||
+ | ' * @example rndString("L(a{10}[\#\_\-\|])") -> fo2kvnx1#c8z725 | ||
+ | ' * @param String Pattern | ||
+ | ' * @return String | ||
+ | ' */ | ||
+ | Public Function rndString(ByVal iPattern As String) As String</code> | ||
+ | |||
+ | ==== Patterns ==== | ||
+ | Die Anwendungen findest du in den Beispielen | ||
+ | === Zeichenpattern === | ||
+ | ***a** Lower-Case Alphanumeric ''abcdefghijklmnopqrstuvwxyz 0123456789'' | ||
+ | ***A** Mixed-Case Alphanumeric ''ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789'' | ||
+ | ***U** Upper-Case Alphanumeric ''ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789'' | ||
+ | ***d** Digit ''0123456789'' | ||
+ | ***h** Lower-Case Hex Character ''0123456789 abcdef'' | ||
+ | ***H** Upper-Case Hex Character ''0123456789 ABCDEF'' | ||
+ | ***l** Lower-Case Letter ''abcdefghijklmnopqrstuvwxyz'' | ||
+ | ***L** Mixed-Case Letter ''ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz'' | ||
+ | ***u** Upper-Case Letter ''ABCDEFGHIJKLMNOPQRSTUVWXYZ'' | ||
+ | ***p** Punctuation '',.;:'' | ||
+ | ***b** Bracket ''()[]{}<>'' | ||
+ | ***s** Printable 7-Bit Special Character ''!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~'' | ||
+ | ***S** Printable 7-Bit ASCII ''A-Z, a-z, 0-9, !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~'' | ||
+ | |||
+ | === Steuerpattern === | ||
+ | ***[...]** Mehrfachauswahl. Eines der Pattern davon wird verwendet | ||
+ | ***{#}** Anzahl Zeichen | ||
+ | ***{#,#}** Mindestens und Maximal Anzahl Zeichen | ||
+ | ***(...)** Alle Patterns innerhalb der Klammern kommen vor. Die Reihenfolge wird gemischt | ||
+ | ***\** Das folgende Zeichen ist kein Pattern sondern das Zeichen selber | ||
+ | ***^*** Das folgende Zeichen/Pattern wird von vorgehenden Pattern abgezogen. ''a^d'' entspricht somit dem ''l'' | ||
+ | | ||
+ | ===== Beispiele ===== | ||
+ | Einfache Beispiele. | ||
+ | <code vb>'5 Zeichen aus dem Sortiment a-zA-Z0-9 | ||
+ | ?rndString("A{5}") | ||
+ | V6lfN | ||
+ | |||
+ | 'Im Vergleich dazu, 5 mal den Buchstaben a | ||
+ | ?rndString("\a{5}") | ||
+ | aaaaa | ||
+ | |||
+ | '5 Zeichen, die entweder ein Punkt- oder ein Klammerzeichen oder ein Kleinbuchstabe sind | ||
+ | ?rndString("[pbl]{5}") | ||
+ | f>;g( | ||
+ | |||
+ | 'dasselbe, aber mindestesn 4 Zeichen, maximal 10 Zeichen | ||
+ | ?rndString("[pbl]{4, 10}") | ||
+ | {}m>,>ion] | ||
+ | </code> | ||
+ | |||
+ | Zusammengesetzt Pattern | ||
+ | <code vb>'Ein Buchstabe (Gross und Klein). gefolgt von 2 Ziffern. | ||
+ | 'Dann ein Satzzeichen oder ein Klammerzeichen und zum Schluss nochmals ein Buchstaben | ||
+ | ?rndString("Ld{2}[pb]L") | ||
+ | z06[z | ||
+ | |||
+ | 'dasselbe. Aber abgeseehn vom ersten Zeichen ist der Rest in () gefasst und wird somit wild gemischt | ||
+ | ?rndString("L(d{2}[pb]L)") | ||
+ | r.R76</code> | ||
+ | |||
+ | Zeichen aus einem Pattern ausschliessen mit ^ | ||
+ | <code vb>'16 Ziffern ohne die 0 | ||
+ | ?rndString("d^\0{16}") | ||
+ | 6719115112343998 | ||
+ | |||
+ | '10 Sonderzeichen ohne Klammern und Punkte | ||
+ | ?rndString("s^[pb]{10}") | ||
+ | %*"|?+'`=&</code> | ||
+ | |||
+ | Und noch ein nützliches Beispiel. | ||
+ | <code vb>'Ein Passwort. Beginnt mit einem Buchstaben. | ||
+ | 'Dann kommt ein Teil, bestehend aus 8 Buchstaben+Zahlen und 2 Sonderzeichen ohne Punkte und Klammern. | ||
+ | ?rndString("L(a{8}s^[pb]{2})") | ||
+ | C$zr%i6z3md</code> | ||
===== Code ===== | ===== Code ===== | ||
<source '%%fpath%%/%%fname%%' vb> | <source '%%fpath%%/%%fname%%' vb> |