User Tools

Site Tools


vba:functions:rndstring

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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>
vba/functions/rndstring.1493905855.txt.gz · Last modified: 04.05.2017 15:50:55 by yaslaw