Startup Parameter auslesen

    • VB.NET

    Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von picoflop.

      Startup Parameter auslesen

      hey,
      mit diesem Code könnt ihr die Startupparameter auslesen, ihr müsst nur eine Listbox eurem Form hinzufügen:

      VB.NET-Quellcode

      1. Dim parameter() As String = Environment.GetCommandLineArgs().ToArray
      2. If (parameter.Count - 1) => 1 Then 'Höher als 1 weil der index 0 der Pfad zum programm ist
      3. For i = 1 To parameter.Count - 1
      4. ListBox1.Items.Add(parameter(i))
      5. Next
      6. End If


      ich hoffe ihr könnt damit etwas anfangen :D

      lg.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gelöschter Benutzer“ ()


      If parameter.Count - 1 > 1

      Wenn - wie du sagst - Index 0 nur den Programmpfad enthält, würde also index 1 den ersten "echten" Parameter enthalten. Wir hätten also ein "Count" von 2. 2 minus 1 ist 1. Und 1 ist NICHT größer als 1. Wannimmer also das Programm mit nur einem Parameter gestartet wird, geht dein Code in die Hose.
      Funzt leider net.. wie picoflop schon schreibt :D
      hab noch einen fehler:

      VB.NET-Quellcode

      1. Dim parameter() As String = Environment.GetCommandLineArgs().ToArray
      2. If parameter.Count - 1 > 1 Then 'Höher als 1 weil der index 0 der Pfad zum programm ist
      3. For i = 1 To parameter.Count - 1
      4. ListBox1.Items.Add(parameter(i))
      5. Next
      6. End If


      Listbox1.Items.Add :)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „martinustreveri“ ()

      so, habs jetzt ausgebessert:

      VB.NET-Quellcode

      1. Dim parameter() As String = Environment.GetCommandLineArgs().ToArray
      2. If (parameter.Count - 1) >= 1 Then 'Höher als 1 weil der index 0 der Pfad zum programm ist
      3. For i = 1 To parameter.Count - 1
      4. ListBox1.Items.Add(parameter(i))
      5. Next
      6. End If


      lg.

      ne, aber count hat keinen Nullten Index

      Count hat mit Indexen Null Komma Garnix zu tun ...

      Im übrigen ist der ausdruck:
      If a-1 >= 1 (bei ganzen, positiven Zahlen)
      gleichbedeutend mit
      if a >= 2
      bzw
      if a > 1

      BTW: in index 0 steht NICHT der Pfad. Jedenfalls nicht wenn das Programm nicht unter der IDE läuft. Startet man das Programm direkt, steht hier nur der Name der ausführbaren Datei ohne Extension (also dummy.exe -> dummy)
      we hat hier jetzt was von komma gesagt?
      wenn man count benutzt, beginnt die Zählung bei 1, Arrays haben aber einen Nullten index deswegen beginnt die Zählung bei 0(das ist Basis wissen), damit es jetzt kein Error kommt muss man den Index von count -1 rechnen.


      lg.

      wenn man count benutzt, beginnt die Zählung bei 1, Arrays haben aber einen Nullten index deswegen beginnt die Zählung bei 0(das ist Basis wissen), damit es jetzt kein Error kommt muss man den Index von count -1 rechnen.

      Hör zu Freak ... star
      Natürlich beginnt count bei "1" zu ZÄHLEN (weil man das ja auch in der Grundschule lernt). andernfalls wären 2 Äpfel ja nur 1 Apfel. Mit dem ArrayIndex hat das aber NICHTS zu tun. Um's noch mal klar zu sagen: Das betrifft dein "If ... then" und natürlich NICHT die Zählschleife! Da ist es richtig. Aber einfach stumpf immer "-1" zu verwenden ist natürlich Humbug. Das muss dahin wo es hingehört und weg wo es nicht hingehört. Du würdest schließlich auch nicht schreiben:
      If b+4 >= a+2
      oder?


      (das ist Basis wissen),

      a) Werd ich mir den hinweis per Zeitmaschine ins Jahr 83 oder 84 schicken, wo ich es zum ersten Mal mit Arrays zu tun hatte
      b) Nimm halt mal VB6 und setze "Option Base 1" (war bei Wannabee Programmierern immer sehr beliebt, weil das Hirnkapazität sparen hilft)

      Aber es ist dein Code. Die Begründung, die du für dein Konstrukt abgegeben hast, ist allerdings schlicht falsch.

      Ein C-Programmierer der durch Zufall bei VB gelandet ist, würde es vermutlich SO machen:

      VB.NET-Quellcode

      1. If parameter.Count Then

      ;)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „picoflop“ ()