Operator LikeOperator Like używany jest do porównywania łańcuchów. Składnia: [Wynik=]Łańcuch Like Maska Wynik (Opcjonalne) zmienna numeryczna Łańcuch (Wymagane) wyrażenie łańcuchowe Maska (Wymagane) wyrażenie łańcuchowe zawierające maskę porównania Jeżeli Łańcuch pasuje do Maski zostanie zwrócone True, w przeciwnym przypadku zostanie zwrócone False. Jeżeli Łańcuch lub Maska ma wartość Null, zostanie zwrócone Null. Sposób porównywania przez operator Like jest zależny od ustawień wykonanych rozkazem Option Compare. Domyślną metodą porównania jest Option Compare Binary. Rezultat porównania Option Compare Binary jest oparty na wewnętrznej binarnej reprezentacji znaków. W Microsoft Windows kolejność jest określona przez stronę kodową. Typowy porządek binarny: A < b < e < z < a < b < e < z < Ŕ < Ę < Ř < ŕ < ę < ř < A < b < e < z < a < b < e < z < Ś < Ź < ś < ź < Ł < Ą < Ż < ł < ą < ż < Ć < Ę < Ń < Ó < ć < ę < ń < ó < (w języku polskim) Rezultat porównania Option Compare Text oparty jest na porządku określonym przez ustawienia lokalne systemu, bez względu na wielkość liter. Typowy porządek Option Compare Text: (A=a) < ( Ŕ=ŕ) < (b=b) < (e=e) < (Ę=ę) < (z=z) < (Ř=ř) (A=a) < (Ą=ą) < (b=b) < (e=e) < (Ę=ę) < (z=z) < (Ż=ż) (w języku polskim) Zestaw specjalnych znaków pozwala na tworzenie rozbudowanych Mask porównania. Można używać "białych znaków" określających pojedynczy znak, szereg znaków, listę lub zakres znaków w dowolnych kombinacjach.
Zestaw jednego lub więcej znaków na ListaZnaków zawarty w nawiasach kwadratowych ([ ]) może być użyty do określenia pojedynczego znaku w Łańcuchu i może zawierać prawie wszystkie znaki włączając cyfry. Aby uzyskać w Masce jeden ze znaków specjalnych: otwierający nawias kwadratowy ([), znak zapytania (?), znak liczby (#) i gwiazdka (*) należy zamknąć go w nawiasach kwadratowych. Zamykający nawias kwadratowy (]) nie może być wykorzystywany wewnątrz listy, ale może być wykorzystywany poza nią jako pojedynczy znak. Znak myślik (-) może być używany do określenia zakresu znaków pomiędzy górnym i dolnym zakresem. Np. [A-Z] określa znak należący do zakresu dużych liter od A do Z. Jeżeli powinno zostać użytych kilka zakresów należy umieścić je w nawiasie kwadratowym bez znaków separujących, np. [A-E c-g]. Znaczenie poszczególnych zakresów jest zależne od wybranego porządku znaków (zależnego od ustawień Option Compare i lokalnych ustawień strony kodowej). Np. użycie Option Compare Binary z zakresem [A-C] powoduje użycie znaków A, B i C. Użycie Option Compare Text z zakresem [A-C], wymusi sprawdzenie znaków A, a, Ą, ą, B, b, C, c. Zakres ten nie obejmuje znaków Ć i ć, które znajdują się poza górnym zakresem (za C). Obowiązujące zasady dotyczące tworzenia Maski:
W niektórych językach istnieją specjalne znaki w alfabecie reprezentujące dwa oddzielne znaki. Np. w niektórych językach znak "ć" jest wykorzystywany do określenia występujących po sobie znaków "a" i "e". Operator Like rozpoznaje takie pojedyncze znaki specjalne i dwa odpowiednie pojedyncze znaki. Jeżeli język wykorzystujący znaki specjalne zostanie określony w lokalnych ustawieniach systemowych, wystąpienie pojedynczego znaku specjalnego w Masce lub Łańcuchu jest równoważne z występieniem 2-znakowej sekwecji w drugim łańcuchu. Podobnie pojedynczy znak specjalny zawarty w nawiasach kwadratowych w Masce (pojedyczno, w liście lub zakresie) odpowiada sekwencji 2-znakowej w Łańcuchu. Przykład użycia Operatora Like: Dim varWynik varWynik="aBBBa" Like "a*a" 'varWynik=True varWynik="F" Like "[A-Z]" 'varWynik=True varWynik="F" Like "[!A-Z]" 'varWynik=False varWynik="a2a" Like "a#a" 'varWynik=True varWynik="aM5b" Like "a[L-P]#[!c-e]" 'varWynik=True varWynik="BAT123khg" Like "B?T*" 'varWynik=True varWynik="CAT123khg" Like "B?T*" 'varWynik=False varWynik="-l?p" Like "[-p]?[l-q ?-A c-n][a-c r p]" 'varWynik=True ' "-" należy do "[-p]" ' "l" należy do "?" ' "?" należy do "[l-q ?-A c-n]" ' "p" należy do "[a-c r p]" varWynik="-l?p" Like "[-p]?[!l-q [!?-A] c-n][a-c r p]" 'varWynik=False na górę strony... |