| |
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 |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Neu! sevCoolbar 3.0
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere 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
|
|