Brett vorm Kopf?

  • hallo,

    es ist wohl kein Brett sondern eine Bohle. Was ich möchte ist @Mon(Ausgabe ist ja 06) minus 1 dann sollte aber (05) ausgegeben werden aber es kommt (5) raus. Ich benötige aber (05). was mache ich falsche?

    mfg taucher_2006

    :P Streite nie mit einem Idioten
    Erst zieht er dich auf sein Niveau herunter und schlägt dich dort mit seiner Erfahrung :D

  • naja das konn man optimieren^^
    er will ja nicht 011 haben^^ denk ich mal^^

    [autoit]

    Dim $mon
    If @Mon<10 Then
    $mon = "0"&@Mon
    Else
    $mon = @Mon
    EndIf
    MsgBox(0,"",$mon)

    [/autoit]

    snoozer

  • Zitat

    Original von peethebee
    Hi!

    Wenn huggy mich herausfordert ;)

    Hier die Version, die auch bei Ursprungswerten über 9 geht:

    [autoit]

    ConsoleWrite(StringFormat("%02d", @MON - 1)&@CRLF)

    [/autoit]

    peethebee

    Langsam nervts ;)

  • was is denn nun los, was is denn bei pee anders als bei huggy und wann hat er dich gefordert???

    @Topic, ja is mir auch schonmal aufgefallen, glaube das ist ne Art kleiner Bug 8|

    vlt wird das ja in einer kommenden Version behoben, musste das damals auch über diesen Umweg machen...


    Waluev :rock:

    Flensburg ist wie Payback - wenn man 18 Punkte hat bekommt man ein Fahrrad.

  • hi,

    danke das geht, aber jetzt erscheint auch bei einem zweistelligen Monat die 0.
    habe es jetzt so gelöst
    If @MON <= 09 Then
    $mon = "0" & @Mon - 1
    Else
    $mon = @MON -1
    EndIf
    Ich hoffe das es richtig ist

    Mfg taucher

    :P Streite nie mit einem Idioten
    Erst zieht er dich auf sein Niveau herunter und schlägt dich dort mit seiner Erfahrung :D

    • Offizieller Beitrag

    Das hat mit einem Bug nichts zu tun...

    Erklärung:
    Wenn AutoIt rechnet (mit Zahlen arbeitet) - und das muss es machen, wenn ein + zwischen zwei Ausdrücken steht, dann kommt auch eine Zahl raus - logischerweise im normalen Zahlenformat, also 5.
    Daher ist die Unwandlung auf Stringbasis mit Stringformat nötig - dann wird es wieder als Zeichenkette behandelt und die 0 vorne macht wieder Sinn.

    Warum poste ich? Weil es wie snoozer schon sagte bei huggy nicht perfekt war...

    peethebee

  • Omg, naja wie du meinst....


    trotzdem wäre es in diesem Fall sinnvoller ohne diesem Umweg...

    und ich denke das könnte man auch getrost verbessern, oder nich???

    Waluev :rock:

    Edit: und das rechnen mit Zahlen arbeiten ist, weiß ich, auch wenn ich von AutoIt nich viel Ahnung hab -.-

    Flensburg ist wie Payback - wenn man 18 Punkte hat bekommt man ein Fahrrad.

    Einmal editiert, zuletzt von Waluev (11. Juni 2007 um 22:16)

  • hi ja so gehts =)
    hatte nur vergessen eins abzuziehen^^
    kann nur sagen dass pee's lösung viel eleganter ist und das gleiche bezweckt....

    [autoit]

    $mon = StringFormat("%02d", @MON - 1)
    MsgBoX(0,"",$mon)

    [/autoit]

    [quote]Warum poste ich? Weil es wie snoozer schon sagte bei huggy nicht perfekt war...[/qoute]^^

    snoozy

    • Offizieller Beitrag

    Du willst nicht wirklich, dass bei 05+9819283 dann 000009819288 rauskommt, oder?
    Wo Zahlen reinkommen, müssen auch Zahlen rauskommen - und Zahlen fangen nicht mit 0 an ;).

    Daher also kein Grund das zu ändern, das ist ein Fall, wo es (sehr begrenzt) weh tut, aber dafür sind in hunderten anderen die Ergebnisse voraussagbar :D.

    Der Hinweise "mit Zahlen arbeiten" war insofern wichtig, da er zu Zeichenketten abgrenzt :]

  • Man man man, ein Terror hier, was ist denn an der Version 0&bla das Prob??

    Waluev :rock:

    Flensburg ist wie Payback - wenn man 18 Punkte hat bekommt man ein Fahrrad.

  • hi,

    schuldigung wenn ich hier irgendwelche befindlichkeiten geweckt habe. beide varianten funzen.(habe mich aber für die zweite entschieden) ;)

    danke nochmals für die hilfe

    taucher

    gluck gluck...

    :P Streite nie mit einem Idioten
    Erst zieht er dich auf sein Niveau herunter und schlägt dich dort mit seiner Erfahrung :D