If Else Abfrage für einen Teil einer Variablen

  • VBScript

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

    If Else Abfrage für einen Teil einer Variablen

    Hallo Zusammen,

    ich stoße wieder an meine Grenzen und konnte im Forum leider auch nichts finden.
    Ich hoffe, dass ich euch nicht zu sehr nerve und dass ihr mir nochmal helfen könnt und wollt :).


    Diesmal geht es um eine IF ELSE Abfrage. Je nach der letzten Zahl bei der Slotangabe soll immer einmal mehr die Pfeiltaste nach unten gedrückt werden. Beginnend mit 0=5xPfeiltaste unten.

    Bsp.:
    • 5xPfeiltaste unten für Slot 0/21/1/0
    • 6xPfeiltaste unten für Slot 0/22/2/1
    • 6xPfeiltaste unten für Slot 0/21/3/1
    • Etc.

    Meine Probleme sind jetzt:
    • Das ich nicht weiß wie ich der Funktion sage, dass sie nur die letzte Zahl von der Slotangabe überprüfen soll.
    • Wenn dieser Wert größer als 0 ist soll eine höhere Anzahl von Pfeiltasten genutzt werden.
      • Also: 0=5xPfeiltaste; 1=6xPfeiltaste; 2=7xPfeiltaste etc.
    • Wie dampfe ich die Funktion dann am besten ein, nicht dass ich dann für jede Änderung der letzten Zahl bei der Slotangabe ein eigenes Elseauf mache.


    Hier ist meine Grundfunktion:

    VB.NET-Quellcode

    1. set PfU = CreateObject("WScript.Shell")
    2. PfeilU = ("{DOWN}")
    3. Set S = CreateObject("WScript.Shell")
    4. Slot = "0/21/1/0"
    5. if Slot = "0/21/1/0" then
    6. n = 0
    7. Do
    8. n = n + 1
    9. PfU.SendKeys PfeilU
    10. WScript.Sleep 200
    11. Loop Until n = 5
    12. else
    13. n = 0
    14. Do
    15. n = n + 1
    16. PfU.SendKeys PfeilU
    17. WScript.Sleep 200
    18. Loop Until n = 6
    19. end if



    Ich freu mich schonmal auf eure Rückmeldungen :).


    Gruß,
    MHAS

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „MHAS“ ()

    Nur Teilweise getestet, bedarf evtl. noch Anpassungen deinerseits.

    VB.NET-Quellcode

    1. ​Slot = "0/21/1/1" 'Eingabe
    2. min=5 'Mindestwert
    3. step=1 'increment-Wert
    4. x=Split(Slot,"/") 'Splittet die Eingabe bei Slash
    5. value=x(uBound(x)) 'letzter Wert in diesem Array
    6. count = min
    7. for i=1 to value
    8. count = count + step
    9. next
    10. PfU.SendKeys "{DOWN " & count & "}"


    LG, Acr0most
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:

    Acr0most schrieb:

    Nur Teilweise getestet, bedarf evtl. noch Anpassungen deinerseits.

    VB.NET-Quellcode (14 Zeilen)

    LG, Acr0most


    Das Funktioniert wunderbar, vielen Dank dir :).

    Ich bin nun noch auf das Problem gestoßen, dass ich nochmal die Selbe Funktion nutzen muss, nur diesmal mit dem Vorletzten Wert aus der Slotangabe .
    Ich dachte mir eigentlich dass das doch nicht so schwer sein kann und ich im Notfall zumindest eine Antwort über Google finde.... falsch gedacht....
    Kannst du mir dabei bitte nochmal helfen?



    Gruß,
    MHAS
    Die Antwort zuckt mir in den Fingern, aber besser wär Deine Antwort auf folgende Frage: Was war denn Dein Folgecode, wenn Du dachtest,

    MHAS schrieb:

    dass das doch nicht so schwer sein kann
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.

    VaporiZed schrieb:

    Die Antwort zuckt mir in den Fingern, aber besser wär Deine Antwort auf folgende Frage: Was war denn Dein Folgecode, wenn Du dachtest, Zitat von MHAS: „dass das doch nicht so schwer sein kann“


    Leider komme ich nicht auf einen Folgecode.... das ist ja das was mich nervt, das sollte eigentlich möglich sein, erstrecht nach so einem Goldtablet von Acr0most.

    Wie Acr0most schon geschrieben hat spricht er mit

    VB.NET-Quellcode

    1. value=x(uBound(x))
    den letzten Wert in dem Array an.



    was ich mir vorstellen könnte wäre sowas wie

    VB.NET-Quellcode

    1. value=y(uBound(y)-1)
    ,dass 1 weniger als der letzte Wert angesprochen wird - also der Vorletzte.
    Ich glaube das macht tatsächlich Sinn.


    EDIT:
    Es hat tatsächlich so funktioniert, vielen Dank nochmal!!! :).
    Hier auch nochmal der Code für die Auswahl des vorletzten Wertes:

    VB.NET-Quellcode

    1. Set S = CreateObject("WScript.Shell")
    2. Slot = "0/21/0/1" 'Eingabe
    3. set PfU = CreateObject("WScript.Shell")
    4. PfeilU = ("{DOWN}")
    5. min=5 'Mindestwert
    6. step=1 'increment-Wert
    7. y=Split(Slot,"/") 'Splittet die Eingabe bei Slash
    8. value=y(uBound(y)-1) 'Vorletzter Wert in diesem Array
    9. count = min
    10. for i=1 to value
    11. count = count + step
    12. next
    13. PfU.SendKeys "{DOWN " & count & "}"





    Gruß,
    MHAS

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „MHAS“ ()