| |
VB.NET - Ein- und UmsteigerZufallsstring wird nur mit nachfolgender Msgbox erzeugt ? | | | Autor: manuelhasi | Datum: 25.05.21 20:34 |
| Hallo zusammen,
mit folgender Funktion erzeuge ich einen Zufallsstring:
Public Enum RandomTextType
LowerCaseLetters = 1
UpperCaseLetters = 2
LowerCaseLettersMixedNumbers = 3
UpperCaseLettersMixedNumbers = 4
MixedAll = 5
End Enum ''' <summary>
''' Erzeugen von Zufallsstring
''' </summary>
''' <param name="theLen">die Länge des Strings</param>
''' <param name="art">die Art der Zusammensetzung des Strings</param>
Public Function CreateRandomString(theLen As Short, art As RandomTextType) _
As String
Const lowerChars = "abcdefghijklmnopqrstuvwxyzäöüß"
Const upperChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ"
Const numericChars = "0123456789"
Const specChars = "!§$%&/()=?{[]}+*~#'-_.:,;<>"
Dim rs As String = ""
Dim ast As String = "", le, ix As Short
Dim rnd As New Random()
' Zusammensetzung gemäß vorgegebener Art
Select Case art
Case RandomTextType.LowerCaseLetters
ast = lowerChars
Case RandomTextType.UpperCaseLetters
ast = upperChars
Case RandomTextType.LowerCaseLettersMixedNumbers
ast = lowerChars + numericChars
Case RandomTextType.UpperCaseLettersMixedNumbers
ast = upperChars + numericChars
Case RandomTextType.MixedAll
ast = lowerChars + upperChars + numericChars + specChars
End Select
le = ast.Length - 1
For i As Short = 1 To theLen
ix = rnd.Next(0, le)
rs += ast.Substring(ix, 1)
Next
' Rückgabe des Strings
Return rs
End Function Dieser soll jetzt als icalendar formatiert werden
Dim file As System.IO.StreamWriter
file = My.Computer.FileSystem.OpenTextFileWriter("D:\pPA - praktische" & _
"Pflegeausbildung\pPA\pPA\Kalender-Export.ics", False)
file.WriteLine("BEGIN:VTIMEZONE")
file.WriteLine("TZID:Europe/Berlin")
file.WriteLine("X-LIC-Location:Europe/Berlin")
file.WriteLine("BEGIN:DAYLIGHT")
file.WriteLine("TZOFFSETFROM:+0100")
file.WriteLine("TZOFFSETTO:+0200")
file.WriteLine("TZNAME:CEST")
file.WriteLine("DTSTART:19700329T020000")
file.WriteLine("RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3")
file.WriteLine("End:DAYLIGHT")
file.WriteLine("BEGIN:STANDARD")
file.WriteLine("TZOFFSETFROM:+0200")
file.WriteLine("TZOFFSETTO:+0100")
file.WriteLine("TZNAME:CET")
file.WriteLine("DTSTART:19701025T030000")
file.WriteLine("RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10")
file.WriteLine("End:STANDARD")
file.WriteLine("End:VTIMEZONE")
For x As Integer = 0 To 20
Dim Zufallszahl As String = CreateRandomString(100, _
RandomTextType.MixedAll)
file.WriteLine("UID:" & Zufallszahl)
next Warum wird die Funktion nur ausgeführt, wenn ich im For/Next-Teil eine MsgBox einbaue?
For x As Integer = 0 To 20
Dim Zufallszahl As String = CreateRandomString(100, _
RandomTextType.MixedAll)
MsgBox(Zufallszahl)
file.WriteLine("UID:" & Zufallszahl)
next Lieben Gruß | |
Re: Zufallsstring wird nur mit nachfolgender Msgbox erzeugt ? | | | Autor: Manfred X | Datum: 26.05.21 08:31 |
| Hallo!
Mir fällt nur auf, dass Du nicht typ-sicher programmierst.
Nutze in Zukunft "Option Strict ON".
Random ist auf Klassen-ebene zu deklarieren, damit es wie
vorgesehen arbeiten kann.
Die Obergrenze der Next-Methode muss 1 über der maximal
gewünschten Zufallszahl liegen (exklusiv).
Dim rnd As New Random(Now.Millisecond)
Public Function CreateRandomString(theLen As Short, art As RandomTextType) As _
String
Const lowerChars As String = "abcdefghijklmnopqrstuvwxyzäöüß"
Const upperChars As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ"
Const numericChars As String = "0123456789"
Const specChars As String = "!§$%&/()=?{[]}+*~#'-_.:,;<>"
Dim rs As String = ""
Dim ast As String = "", le, ix As Integer
' Zusammensetzung gemäß vorgegebener Art
Select Case art
Case RandomTextType.LowerCaseLetters
ast = lowerChars
Case RandomTextType.UpperCaseLetters
ast = upperChars
Case RandomTextType.LowerCaseLettersMixedNumbers
ast = lowerChars + numericChars
Case RandomTextType.UpperCaseLettersMixedNumbers
ast = upperChars + numericChars
Case RandomTextType.MixedAll
ast = lowerChars + upperChars + numericChars + specChars
End Select
le = ast.Length - 1
For i As Short = 1 To theLen
ix = rnd.Next(0, le + 1)
rs &= ast.Substring(ix, 1)
Next
' Rückgabe des Strings
Return rs
End Function | |
Re: Zufallsstring wird nur mit nachfolgender Msgbox erzeugt ? | | | Autor: manuelhasi | Datum: 26.05.21 10:24 |
| Guten Morgen
vielen Dank für die Hilfe.. ich habe "Option Strict On" aktiviert und tatsächlich sofort einige Fehler gefunden.. Werde ich ich Zukunft nutzen, danke..
Der Fehler in der Funktion hing tatsächlich mit den fehlerhaften DatenTypen zusammen. Jetzt funktioniert er.
Vielleicht sollte darauf im Tipp hingewiesen werden
https://www.vbarchiv.net/tipps/details.php?id=2480 | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevGraph (VB/VBA)
Grafische Auswertungen
Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|