Strona 7 z 77

Re: CMUD

: 16 sty 2012 19:47
autor: Amirez
Mam maly problem.
Mam takiego tiga.

Kod: Zaznacz cały

^{> |}(*) ({@rany}) cie *
w zmiennej rany mam standard lekko rani}|rani|lekko tnie|tnie itd
Tyle ze w test tigger wylapuje mi np przy lekko rani
> abc 123 xyz lekko rani cie abc 123 xyz
%1:abc 123 xyz lekko
%2:rani

A chcialbym miec
%1:abc 123 xyz
%2:lekko rani

Co jest nie tak?

Re: CMUD

: 16 sty 2012 20:14
autor: Zdravik
Tak po prostu działa dopasowywanie wzorców, tzw. zachłanność wyrażeń regularnych - pierwsza gwiazdka zbiera najwięcej znaków, jak może.

Tutaj można to łatwo rozwiązać wymieniając jakich tekstów ma nie być przed tym 'ranieniem', np. pattern:

Kod: Zaznacz cały

^{> |}(*){^lekko|powaznie|bardzo ciezko} ({@rany}) cie *

Re: CMUD

: 16 sty 2012 22:25
autor: Zurwen
Polecam zainteresować się regexpem, tam jest coś takiego jak zachłanność albo jej brak (zachłanny - dopasowuje max znaków, nie zachłanny - dopasowuje min. znaków).

Re: CMUD

: 28 sty 2012 17:43
autor: Amirez
Dziekuje dziala wszystko pieknie :)
Teraz chcialbym pokolorowac suba w zaleznosci od stopnia poranienia

stworzylem tablice database @rany gdzie key to rodzaj rany zas value nr koloru

i suba

Kod: Zaznacz cały

#SUB {%ansi(green)Amirez:%ansi(red)%db(@imiona,TY)%ansi(red):%ansi(white) -- %ansi(%db(@rany,%1))%2 cie %ansi(white) -- %ansi(deepskyblue)%lower(%1)}
niestety gdzies pewnie blad mam znow.Na jeden kolor rany potrafie pokolorowac ale to nic nie daje.

Re: CMUD

: 28 sty 2012 18:22
autor: Zdravik
Musisz trochę rozwinąć opis problemu. Czego oczekujesz, a co się dzieje?

Wiesz, że jeśli @rany to zmienna database, to nie możesz jej już użyć w patternie?

Re: CMUD

: 28 sty 2012 19:13
autor: Amirez
chodzi o to zeby pokolorowac ciosy w zaleznosci od sily
zmienna rany nie musi byc database
taki sub z jednym kolorkiem mi dziala

Kod: Zaznacz cały

#SUB {%ansi(green)Amirez:%ansi(white)%db(@Imiona,TY)%ansi(red):%ansi(white) -- %ansi(orange)%2 cie %ansi(white) -- %ansi(deepskyblue)%lower(%1)} 
ale przy jednym kolorze ran jest nieprzydatny
niechcialbym robic oddzielnych subow na kazda rane tym bardziej ze jest jeden tigger

Kod: Zaznacz cały

^{> |}(*){^lekko|powaznie|bardzo ciezko} ({@rany}) cie *

Re: CMUD

: 28 sty 2012 19:48
autor: Rennz
Zdravik pisze:Musisz trochę rozwinąć opis problemu. Czego oczekujesz, a co się dzieje?

Wiesz, że jeśli @rany to zmienna database, to nie możesz jej już użyć w patternie?
Z tego co mi wiadomo to można - w patternie należy po prostu używać %% zamiast standardowego % żeby używać funkcji.

Re: CMUD

: 28 sty 2012 20:14
autor: Gość
Amirez:
sprawdz sobie w triggerze co Ci zwracaja %db(@Imiona,TY) i %db(@rany,%1)
najlatwiej przez dodanie w triggerze linii
#sa %db(@Imiona,TY)
#sa %db(@rany,%1)
Jesli %db(@rany,%1) zwraca prawidlowy klucz to sprobuj zamiast uzyc zmiennej tymczasowej np.
$t = %db(@rany,%1) i potem %ansi($t) ew. funkcji %eval

Re: CMUD

: 29 sty 2012 09:46
autor: Amirez
#sa %db(@Imiona,TY) dziala dobrze
Niestety przy

Kod: Zaznacz cały

#sa %db(@rany,%1)
zwracana jest pusta linijka :(
Probowalem uproscic do testow i napisalem cos takiego
Tigger

Kod: Zaznacz cały

^{> |}(*){^lekko|powaznie|bardzo ciezko} ({@rany}) cie *
@rany
value ledwo muska|lekko rani ..itd typ stringlist
@kolory
value 3|2|10|4|12|15 typ stringlist
i sub

Kod: Zaznacz cały

#sub {%ansi(%item(@kolory,%ismember(%2),@rany))}
ale tez nie dziala chyba jeszcze musze sie duzo uczyc:(
chodzi o to zeby test subowal tiggera i wyswietlal rany w kolorze w zaleznosci od sily

Re: CMUD

: 29 sty 2012 11:37
autor: Haern
Popraw nawiasy w %ismember.
Powinno działać - często tego używałem (zestawu ismember+item). Tylko, że w SUB nie masz żadnego tekstu do wyświetlenia ;)