[Gambas-user] Doesn't IF NOT exist? Bug or feature? Or my bad logic?

Ron_1st ronstk at ...239...
Thu Sep 17 18:51:42 CEST 2009


On Thursday 17 September 2009, Rolf-Werner Eilert wrote:
> Benoît Minisini schrieb:
> >> Rolf-Werner Eilert wrote:
> >>> Just stumbled over this when trying to implement a small copying
> >>> function:
> >>>
> >>>    FOR EACH datei IN Dir(opfad, odatei & ".*")
> >>>      IF NOT file.Ext(opfad &/ datei) = "lock" THEN
> >>>        COPY opfad &/ datei TO ziel &/ datei
> >>>        SELECT CASE file.Ext(ziel &/ datei)
> >>>        CASE "fehl", "feldbak", "felder", "notizen"
> >>>          SHELL "chgrp kartei " & ziel &/ datei WAIT
> >>>          SHELL "chmod 660 " & ziel &/ datei WAIT
> >>>        CASE "konto", "kontobak", "ktx", "ktxbak"
> >>>          SHELL "chgrp konto " & ziel &/ datei WAIT
> >>>          SHELL "chmod 660 " & ziel &/ datei WAIT
> >>>        END SELECT
> >>>      END IF
> >>>    NEXT
> >>>
> >>> IF NOT ... = ... THEN
> >>>
> >>> wouldn't copy anything, although only one file has the given extension.
> >>> When I change this line into
> >>>
> >>> IF file.Ext(opfad &/ datei) <> "lock" THEN
> >>>
> >>> everything runs as expected. Doesn't make sense to me as both ways
> >>> should mean the same in my understanding of logical NOT (which doesn't
> >>> mean too much... :-) )
> >>>
> >>> Regards
> >>>
> >>> Rolf
> >>  From the docs, NOT is an operator that makes a boolean it's opposite
> >> (TRUE turns to FALSE and vice versa) and will also invert each bit in an
> >> integer.  NOT(11) = -12 because that's what you get when you change
> >> every bit from on to off and vice versa.
> >>
> >>  From other examples in the docs, if you NOT a string with something in
> >> it, you will get FALSE.  However, if you NOT an empty string, you will
> >> get TRUE.
> >>
> > 
> > In other words, try to use brackets: IF NOT (...) = ... THEN
> > 
> > 
> 
> Aaah - ok, now it's clear to me, too ;-)
> 
> Regards
> 
> Rolf

Funny isn't it ?? :) :)

Best regards,

Ron_1st

-- 





More information about the User mailing list