Poradniki

Poradnik Autoit – Stringi cz.I

Stringami nazywamy zmienne, które zawierają ciag znaków. Jako, że temat wykorzystywania stringów jest dość obszerny zamierzam podzielić tę lekcję na kilka części.

Deklarowanie stringów w Autoit jest uproszczone i sprowadza się jedynie do umieszczenia go w cudzysłowiu np.
$string = "Hurra, jestem stringiem !"

Na początku warto zaznajomić się z wbudowaną w Au3 funkcją które niejednokrotnie będzie nam ratowało tyłek a mianowicie IsString($string)

Ta prosta funkcja zwraca wartość 1 jeżeli zmienna jest ciągiem, jeżeli nie otrzymamy wartość 0

$string = "Hurra, jestem stringiem !"
if IsString($string) =1 then
Msgbox(0,'Test string','zmienna jest stringiem'
else
Msgbox(0,'Test string','zmienna nie jest stringiem'
endif

Zalecam stosowanie takiego warunku niemal wszędzie – w ten sposób unikniemy wykrzaczania się skryptu z byle powodu.

Podstwowe operacje na stringach:
StringInStr ( "string", "to co chcemy szukać" [, casesense = 0 , occurrence = 1 , start = 1 , count] )

Polecenie sprawdza, czy w podanym ciągu string istnieje ciąg „to co chcemy szukać”. Jeżeli StringinStr znajdzie szukany ciąg zwróci jego pozycję, jeżeli mu się nie powiedzie – zwróci 0.

dodatkowe parametry:

casesense – określa czy brać pod uwagę stringi pisane małymi oraz wielkimi literami. Wybranie parametru z wartością 0 spowoduje, że StringinStr nie będzie zwracał na to uwagi:
$string = "Hurra, jestem stringiem !"
if StringInStr($string,"STRINGIEM !") >1 then
Msgbox(0,'Test string','zmienna znaleziona !')
else
Msgbox(0,'Test string','Nic nie znalazłem ;-(')
endif

Natomiast, jeżeli zmienimy skrypt tak, by był wrażliwy na rozmiar liter:
$string = "Hurra, jestem stringiem !"
if StringInStr($string,"STRINGIEM !",1) >1 then
Msgbox(0,'Test string','zmienna znaleziona !')
else
Msgbox(0,'Test string','Nic nie znalazłem ;-(')
endif
W tym przypadku wyświetli się nam drugi Msgbox, gdyż „stringiem ! ”  to nie ten sam ciąg znaków co „STRINGIEM !”

Wybranie wartości 2 w tym parametrze powoduje, że StrinInStr nie rozróżnia wielkości liter i używa szybszego porównywania ciągów.

occurence – określa które powtórzenie szukanego ciągu zwrócić (przydatne, gdy szukany ciąg znaków występuje w stringu więcej niż raz), domyślną wartością jest 1 (pierwsze wystąpienie). Jeżeli zachodzi potrzeba szukania ciągu w kolejności od 'tyłu’ podajemy tutaj -1.

start – w ten sposób wybieramy od którego znaku zaczynamy poszukiwania naszego ciagu.

Funkcja StringIsDigit ( „string” ) sprawdza, czy nasz ciąg zawiera tylko cyfry (zwracając 1 jak test zakończy się powodzeniem, 0 jeżeli nie). Jej bliźniacze  i równie przydatne funkcje to

StringIsASCII ( „string” ) – sprawdza, czy w ciągu występują jedynie znaki ASCII – wyłącznie z przedziału 0x00 – 0x7f (0 – 127).
StringIsSpace ( „string” ) – sprawdza, czy w ciągu występują wyłącznie spacje.
StringIsUpper ( „string” )  – testuje, czy w ciągu występują wyłącznie wielkie litery.
StringIsLower ( „string” ) – j.w, w tym przypadku sprawdza małe litery.

StringLen ( „string” ) – zwraca długość ciągu.

StringStripWS ( „string”, parametr ) – z tego polecenia będziemy korzystać, gdy znaki niedrukowane (spacje, tabulatory oraz przejścia do nowych linii) będą uniemożliwiać wydobycie niezbędnych dla nas informacji (przydatne szczególnie przy korzystaniu z _StringBetween, o którym będzie jeszcze sporo informacji…)  W przypadku StringStripWS nie będę rozpisywał się nad parametrami tego polecenia  gdyż i tak będziemy korzystać tylko z wartości 8 – usuwającej wszystkie niedrukowane znaki.

 StringReplace ( „string”, „co szukać”, „na co zamienić” [, occurrence = 0 [, casesense = 0]] ) – bardzo przydatne polecenie w działaniu podobne do „Znajdź i zamień” znanego z edytorów tekstów. Inaczej mówiąc StringReplace, odnajduje ciąg i podmienia go na coś innego. Parametry opcjonalne occurrence oraz casesense są identyczne jak w przypadku StrinInStr

StringReverse ( „string”) – zwraca ciąg zapisany od prawej do lewej.

StringTrimLeft ( „string”, wartość) oraz StringTrimRight ( „string”, wartość) – przycina ciąg o wybraną ilość znaków począwszy od lewej/prawej.

StringLower ( „string” ) oraz StringUpper ( „string” ) to kolejne bliźniaki w naszym poradniku, tym razem przekształcają duże litery na małe i vice versa.

To by było na tyle w temacie podstawowych operacji, następnym razem zajmiemy się funkcjami dostępnymi w UDF’ie String.au3.
Na zakończenie poradnika przytoczę rozmowę, jaka  odbyła się pomiędzy mną (J) a znajomą koleżanką (K):

Dzwoni telefon, odbieram.
K – co porabasz ?
J – Szukam stringów
K – Co ? aaa no dobra…

Może cię zainteresować:

Konfiguracja VBA (Emulator GB Advance)

Kabson

Przenosimy cache Chrome do ramdysku

Kabson

Tworzymy kopię zapasową naszego profilu Google

Kabson

Instalujemy Windows na nośniku usb

Kabson

Konfiguracja ppsspp (emulator Playstation Portable)

Kabson

Przenoszenie profilu Firefox i Thunderbird

Kabson

Zostaw komentarz