Klammern und Rückgabewerte

  • Hi,

    hier mal ein Besipiel:

    [autoit]

    Until (FileExists(@ProgramsCommonDir & "\xxx.xx") = 1 And FileExists(@ProgramsCommonDir & "\xxx.xx") = 1)

    [/autoit]


    unterschied?

    [autoit]

    Until (FileExists(@ProgramsCommonDir & "\xxx.xx") = 1) And (FileExists(@ProgramsCommonDir & "\xxx.xx") = 1)

    [/autoit]


    Setzt sich der Wert inerhalb der Klammer aus den Rückgabewert der Funktionen zusammen? Also 1 + 1 beide haben der Rückgabewert 1 oder 1 + 0 eine Funktion hat den Rückgabewert 0? Oder muss das dann so aussehen:

    [autoit]

    Until (FileExists(@ProgramsCommonDir & "\xxx.xx") = 1) (FileExists(@ProgramsCommonDir & "\xxx.xx") = 1)

    [/autoit]
  • Wie genau soll das jetzt sein? Soll das Gemacht werden wenn eine Func erfolgreich ist oder wenn beide erfolgreich sind?

    Beide
    [autoit]

    Until FileExists(@ProgramsCommonDir & "\xxx.xx") = 1 And FileExists (@ProgramsCommonDir & "\xxx.xx") = 1

    [/autoit]
    EIns von Beiden oder Breide
    [autoit]

    Until FileExists(@ProgramsCommonDir & "\xxx.xx") = 1 Or FileExists(@ProgramsCommonDir & "\xxx.xx") = 1

    [/autoit]

    mfg. Jam00

  • Ne so meine ich nicht, ich will wissen wie sich dir Rückgabewert in Klammern verhalten.

  • Also zwischen 1. und zwei besteht kein Unterschied...
    Beispiel 3 dürfte komplett falsch sein..

    Das ganze geht nach der boolschen Algebra -> Operator ist "AND"
    Also wenn:
    -wahr(1) & wahr(1) dann wahr(1)
    -falsch(0) & wahr(1) dann falsch(0)
    -falsch(0) & falsch(0) dann falsch(0)

    Also:
    1 + 1 = 1
    1 + 0 = 0
    0 + 1 = 0
    0 + 0 = 0

    Bei der Operation "Or" sähe das so aus:
    1 + 1 = 1
    1 + 0 = 1
    0 + 1 = 1
    0 + 0 = 0

  • Ahha okay, aber wenn ich jetzt zb:

    [autoit]

    FileExists($sFilename) = 1

    [/autoit]


    ist der unterschied zu dem:

    [autoit]

    (FileExists($sFilename) = 1)

    [/autoit]


    Das der Rückgabewert genommen wird als (1) da FileExists($sFilename) = 1 stimmt?

  • Ja in dem Beispiel ist es egal wieviele Klammern du schreibst..Rückgabewert bleibt 1.

  • Ahha okay danke, nur noch eins :D.

    [autoit]

    If WinWait($Windows) Then

    [/autoit]


    ist das selbe wie

    [autoit]

    If WinWait($Windows) = 1 Then

    [/autoit]


    aber wieso der Rückgabewert vin WinWait könnte genauso 0 sein??

  • Ehm weiß nich was du genau wolltest, aber ja es ist genau das gleiche..

    Jede Funktion hat einen Rückgabewert! Falls bei WinWait 1 rauskommt... dann würde deine Zeile heißen:

    [autoit]

    If WinWait($Windows) = 1 Then

    [/autoit]


    1 = 1 Ist wahr (=> True)
    Also ich will damit sagen das, das "= 1" nicht an WinWait gebunden ist

  • Das versteh ich aber irrgendwie nicht, da If ja einen Wert abfragt, aber hier wurde keiner angegeben, nur eine Funktion also zb:

    [autoit]

    If FileExists($sFilename) = 1 Then

    [/autoit]


    Ist das selbe wie:

    [autoit]

    If FileExists($sFilename) Then

    [/autoit]


    aber wenn FileExists = 0 dann überprüft das nur die If-Abfrage so:

    [autoit]

    If FileExists($sFilename) = 0 Then

    [/autoit]


    aber wieso geht die If-Abfrage von dem 1-Wert aus?

    Edit: neuer Beitrag habs verstanden!