keresés a tömbben

Fórumok

local aSzavak:={"hetfő","kedd","szerda","csütörtök"}
local cTxt:=""
? ascan(aSzavak,cTxt) // 1

$cccdir/ccclib/src/ascan.prg
58 -ik sorát átírva
// if( !(arr[i]!=blk) )
if(arr[i]==blk)
at:=i
exit
end

? ascan(aSzavak,cTxt) // 0 nekem így kell

más típusú változókkal nem próbáltam...
volt már hasonló tapasztalat?

Hozzászólások

Ez Clipper feature. A Clipper '=' (összehasonlítás) operátora anno úgy működött, hogy

(a=b)==.t.

akkor és csak akkor, ha az egyenlóség a b hosszában fennáll. Emiatt a "" string (jobbról) mindennel egyenlő (a '=' operator szerint). A '=' operator a CCC-ből száműzve van, de tudni kell, hogy a >, <, >=, <=, != operátorok is így működnek.

Namost az ascan alapból az '=' féle összehasonlítást csinálja. Ha más kell, akkor meg kell neki adni egy összehasonlító kódblokkot. Neked erre lehet szükséged:

ascan(tomb,{|x,y|x==y})

Az operátorok és az ascan működésén a kompatibilitás érdekében nem lehetett változtatni. Egyébként nekem sem tetszik.

--
CCC3