VB 5/6-Tipp 0538: Die Parameter-Variable Command richtig nutzen
von Peter K. Sauer
Beschreibung
Dieser Tipp zeigt wie man die übergebenen Parameter an die eigene EXE aufnimmt, und in einzelne Teile zerlegt
Schwierigkeitsgrad: | Verwendete API-Aufrufe: keine | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei command.vbp ------------- '-------- Anfang Formular "Form1" alias command.frm -------- ' Steuerelement: Listen-Steuerelement "List1" ' Steuerelement: Schaltfläche "Command1" ' 'Autor: "SAP*" peter.k.sauer@web.de Option Explicit Private myVariabs() As String Private Sub Command1_Click() ' Beim Testen kann der Command$ recht einfach gesetzt werden ' Projekt > Eigenschaften > Erstellen > Befehlszeilenargumente Dim CmdString As String Dim workTb() As String Dim Ele() As String Dim myVariabs() As String Dim i As Integer ' Übergeben der Command$ an eine eigene Variable CmdString = Command$ ' Nicht benötigte Spaces entfernen Do While InStr(CmdString, Space(2)) > 0 CmdString = Replace(CmdString, Space(2), Space(1)) Loop ' Generell Gross- oder Kleinschreibung ' durch UCase hier also nur Grossbuchstaben CmdString = UCase(CmdString) ' Aufteilen in WorkArray temporär workTb = Split(CmdString, Space(1)) ' Einlesen in Public Variablenliste ' Variablenarray vergrößern ReDim myVariabs(LBound(workTb) To UBound(workTb), 0 To 1) For i = LBound(workTb) To UBound(workTb) ' aufteilen in Variablenname (+ Wert, falls angegeben) Ele = Split(workTb(i), "=") myVariabs(i, 0) = Ele(0) If UBound(Ele) = 1 Then myVariabs(i, 1) = Ele(1) End If Next ' In List1 alle Command$ ausgeben For i = LBound(myVariabs) To UBound(myVariabs) List1.AddItem myVariabs(i, 0) & Space(3) & myVariabs(i, 1) Next End Sub '--------- Ende Formular "Form1" alias command.frm --------- '-------------- Ende Projektdatei command.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
VB5 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
VB6 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.
Archivierte Nutzerkommentare
Klicken Sie diesen Text an, wenn Sie die 4 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.
Kommentar von jroth-haj am 28.09.2005 um 16:01
Folgendes löst einen Error aus, wenn ein Parameter ohne Wert übergeben wird (Bsp: /ini="c:\test.ini" /nogui):
For I = LBound(Kommands()) To UBound(Kommands())
tmpArray() = Split(Kommands(I), "=")
varName(I) = tmpArray(0)
varWert(I) = tmpArray(1)
Next I
Hier der ergänzte Code:
For I = LBound(Kommands()) To UBound(Kommands())
tmpArray() = Split(Kommands(I), "=")
varName(I) = tmpArray(0)
If UBound(tmpArray()) = 1 Then
varWert(I) = tmpArray(1)
Else
varWert(I) = ""
End If
Next I
Kommentar von MVXA am 10.04.2004 um 18:43
Ich hab mal was programmiert das etwas besser handzuhaben ist und man von jeder Form aus aufrufen kann (sofern es in einem Modul steht).
Public Type tKommand
Namen() As String
Werte() As String
End Type
Public Function GetCommand() As tKommand
Dim Kommands() As String
Dim tmpArray() As String
Dim varName() As String
Dim varWert() As String
Dim I As Long
Kommands() = Split(Command$, Space$(1))
ReDim Preserve varWert(UBound(Kommands()))
ReDim Preserve varWert(UBound(Kommands()))
For I = LBound(Kommands()) To UBound(Kommands())
tmpArray() = Split(Kommands(I), "=")
varName(I) = tmpArray(0)
varWert(I) = tmpArray(1)
Next I
GetCommand.Namen() = varName()
GetCommand.Werte() = varWert()
End Function
Kommentar von Johannes am 22.06.2003 um 16:12
Natürlich funktioniert es wenn es compiliert wurde, man muss eben eine Verknüpfung erstellen und Parameter eingeben
Kommentar von Baby an Board am 12.11.2002 um 23:02
Sobald compiliert wird läuft es nicht.