[Gambas-user] Doesn't IF NOT exist? Bug or feature? Or my bad logic?
Lee McPherson
leemcpherson at ...626...
Thu Sep 17 16:49:06 CEST 2009
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.
More information about the User
mailing list