TIA VB-Skript für Rezept-Datenbank

Zuviel Werbung?
-> Hier kostenlos registrieren
irgendwie doppelt gemoppelt,
da habe ich ihn noch etwas umformuliert:
Code:
...
    Add = CInt(Dir < 0) - CInt(Dir => 0)                                                                ' set add to -1 or +1 (TRUE = -1 !)
    ...
In VB (VBA oder VBS) kann man mit TRUE (=-1) und FALSE (=0) rechnen, Mario.
Ob es in anderen Sprachen auch geht und vor allem, ob dann TRUE auch -1 entspricht, sollte man unbedingt prüfen, bevor man es anwendet - oder es besser gleich lassen. Manchmal entspricht TRUE +1.

Ich verstehe aber nicht, warum Du den Vergleich 'StartNr =< 0' durch 'CInt(Dir < 0)' ersetzt?
 
Code:
...
    Add = CInt(Dir < 0) - CInt(Dir => 0)                                                                ' set add to -1 or +1 (TRUE = -1!)
...
In VB (VBA oder VBS) kann man mit TRUE (=-1) und FALSE (=0) rechnen, Mario.
Ob es in anderen Sprachen auch geht und vor allem, ob dann TRUE auch -1 entspricht, sollte man unbedingt prüfen, bevor man es anwendet - oder es besser gleich lassen. Manchmal entspricht TRUE +1.
Deswegen steht es bei mir extra im Kommentar.
Ansonsten müssten Minuend und Subtrahent miteinander tauschen.


Ich verstehe aber nicht, warum Du den Vergleich 'StartNr =< 0' durch 'CInt(Dir < 0)' ersetzt?
Hab' ich ja nicht, nur das hier:
Code:
    If Dir > 0 Then
        Add = 1
    Else
        Add = -1
    End If
aus dem ersten Script, wo ich bei der zusätzlichen Suche nach einem freien Platz dann "If Start=0" noch mit rein genommen hatte, obwohl es da drunter ja dann gleich noch einmal stand.


Eigentlich ist es ja auch einfach nur eine boolsche Zuweisung, nur dass ich die 0 hier nicht wirklich als Ergebnis gebrauchen konnte.
Vom Lesen her ist das IF..THEN für die meisten sicher einfacher, daher war das auch meine erste Wahl.
Für mich sah's dadurch aber halt irgendwie "doof" aus und das reizte mich...
🤷‍♂️
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Code:
...
    Add = CInt(Dir < 0) - CInt(Dir => 0)                                ' set add to -1 or +1 (TRUE = -1!)
...
Mir persönlich wäre ...
Code:
...
    Add = 1 + 2 * CInt(Dir <= 0)                    ' IF Dir > 0 THEN Add = 1 ELSE Add = -1 ' because TRUE = -1
...
... lieber bzw. anschaulicher, aber das fällt unter die Kategorie "GeschmacksSache".
 
Zuletzt bearbeitet:
Zurück
Oben