Parameter Übergabe

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Parameter Übergabe

    Moin Moin zusammen,

    es ist mal wieder so weit :)
    ich steh auf dem Schlauch...

    Ich übergebe an meine exe eine Telefonnummer die mir die Telefonanlage übermittelt,...

    Beispiel: inbound.exe 04316555222666

    Nun möchte ich mir auch einen "Fenster-Timeout" mit übergeben...
    Da ich es bis dato so gelöst habe:

    VB.NET-Quellcode

    1. Case "-10"
    2. timeout = 10
    3. Case "-15"
    4. timeout = 15
    5. Case "-20"
    6. timeout = 20
    7. Case "-25"
    8. timeout = 25
    9. Case "-30"
    10. timeout = 30


    das jedoch schmarrn ist,... dachte ich an was "variables". Anbei nochmal die komplette Args Liste...

    VB.NET-Quellcode

    1. Public Sub ExecuteParams()
    2. Dim args As String()
    3. args = Environment.GetCommandLineArgs()
    4. For i As Integer = 1 To args.Length - 1
    5. Select Case args(i).ToLower
    6. Case "-15"
    7. timeout = 15
    8. Case "-20"
    9. timeout = 20
    10. Case "-25"
    11. timeout = 25
    12. Case "-30"
    13. timeout = 30
    14. Case Else
    15. tel = args(i)
    16. End Select
    17. Next
    18. End Sub


    wie könnte ich das am "elegantesten" lösen?
    am liebsten würde ich natürlich die Argumente so übergeben...
    Beispiel: inbound.exe 017117171717 -t 30

    Danke schon mal für Eure Hilfe.

    Grüße Stefan
    Nein! Doch! OHH!
    @samson Kannst Du bitte mal genau aufscheiben, was Input ist und was Output sein soll?
    Wie kommst Du an die Daten der Telefonanlage?
    Welches Programm wertet den Input aus und in welchem Zusammenhang steht dieses zu inbound.exe?

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Wenn du timeout = timeout * -1 rechnest kannst du timeout mit übergeben und bis variabel.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @mrMo Wenn Du timeout = -timeout schreibst, ist das sogar elegant. 8o
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Eigentlich recht einfach...

    VB.NET-Quellcode

    1. Public Sub ExecuteParams()
    2. Dim args As String()
    3. args = Environment.GetCommandLineArgs()
    4. For i As Integer = 1 To args.Length - 1
    5. Select Case args(i).ToLower
    6. Case "-v"
    7. MsgBox("Programmversion " & ver & Chr(10) & Chr(13) & "Geschrieben von SaMsOn", MsgBoxStyle.Information, "Programmversion")
    8. Application.Exit()
    9. Case Else
    10. tel = args(i)
    11. End Select
    12. Next
    13. End Sub


    Im Sub Form_Load steht dann eben ExecuteParams() drin.

    Die API ruft die inbound.exe auf.
    Hier direkt mit der Telefonnummer hinten dran. Sprich: "inbound.exe %call_id%" (entspricht dann "inbound.exe 0931123456789")
    die Telefonnummer fange ich ja mit tel = args(i) ab.
    ich denke ich werde die Zeit einfach über die integrierte Settings laufen lassen. Macht das wohl am einfachsten.
    Nein! Doch! OHH!

    samson schrieb:

    VB.NET-Quellcode

    1. tel = args(i)
    Da kommt nur der letzte Parameter durch?
    Wo bleiben die anderen?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!