Startparameter effektiv auswerten

17/11/2008 - 12:49 von Thomas Hübner | Report spam
Hi NG,

die User meiner Applikation sollen die Möglichkeit haben
Startparameter zu übergeben. Diese sollen auch variable Werte (IP
Adresse, Benutzername, Login) enthalten können. Meine Lösung ist
momentan eine Hashtable. Gibt es eventuell eine spezielle Klasse die
sowas automatisch macht? Mein bisheriger Ansatz aus Sub Main
aufgerufen:

Private Sub ResolveCommandlineParams()
'Parametersyntax:
'/p
'/p=value
Dim pArr As New Hashtable
Dim p As String
For Each p In Environment.GetCommandLineArgs
Dim tArr() As String = p.Split(CChar("="))
If tArr.Length > 1 Then
pArr.Add(tArr(0), tArr(1).TrimEnd)
Else
pArr.Add(tArr(0), Nothing)
End If
Next
' hier normalerweise Zuweisung zu den Variablen
If pArr.ContainsKey("/d") Then MsgBox(pArr("/d"))
If pArr.ContainsKey("/u") Then MsgBox(pArr("/u"))
If pArr.ContainsKey("/pw") Then MsgBox(pArr("/pw"))
If pArr.ContainsKey("/v") Then MsgBox("visible")
End Sub

Gruß,
Thomas
 

Lesen sie die antworten

#1 Stefan Simon
19/11/2008 - 16:58 | Warnen spam
"Thomas Hübner" schrieb im Newsbeitrag
news:
Hi NG,

die User meiner Applikation sollen die Möglichkeit haben
Startparameter zu übergeben. Diese sollen auch variable Werte (IP
Adresse, Benutzername, Login) enthalten können. Meine Lösung ist
momentan eine Hashtable. Gibt es eventuell eine spezielle Klasse die
sowas automatisch macht? Mein bisheriger Ansatz aus Sub Main
aufgerufen:

Private Sub ResolveCommandlineParams()
'Parametersyntax:
'/p
'/p=value
Dim pArr As New Hashtable
Dim p As String
For Each p In Environment.GetCommandLineArgs
Dim tArr() As String = p.Split(CChar("="))
If tArr.Length > 1 Then
pArr.Add(tArr(0), tArr(1).TrimEnd)
Else
pArr.Add(tArr(0), Nothing)
End If
Next
' hier normalerweise Zuweisung zu den Variablen
If pArr.ContainsKey("/d") Then MsgBox(pArr("/d"))
If pArr.ContainsKey("/u") Then MsgBox(pArr("/u"))
If pArr.ContainsKey("/pw") Then MsgBox(pArr("/pw"))
If pArr.ContainsKey("/v") Then MsgBox("visible")
End Sub

Gruß,
Thomas

Warum schreibst du alle Parameter erst in die Hashtable um sie noch in der
gleichen Funktion wieder herauszuholen? Falls du sie im Laufe des Betriebs
wiederholt benötigst, wàre das Speichern in einer Hashtable ok, das geht
aber aus dem Code nicht hervor. Du kannst genau so gut die Werte den
Variablen direkt zuweisen (z.B. in einem Select Case entsprechend filtern).

Falls die Hashtable notwendig ist und das spàtere auslesen aller Parameter,
würde ich das nicht mit etlichen if..then Anweisungen tun. Eine Iteration
durch alle Eintràge der Hashtable ist kürzer und komfortabler.

Stefan

Ähnliche fragen