Rozróżnianie tekstu z odstępami
diablix
26.01.2012
Krótki kodzik, wiele osób tego szukało więc zamieszczam
Jak on dokładnie działa? Otóż przydaje się on gdy chcemy porównać dwa teksty które mogą się różnic ilością "spacji" na końcu tekstu.
Przydatne dla osób które tworzą własne lub modyfikują czyjeś pluginy.
Najprościej to będzie opisać w przykładowym zastosowaniu:
U mnie się to naprzykład przydało w pluginie w którym gracz tworzył drużyny, aby nie mógł za nic ustawić takiej samej nazwy drużyny jak inna
stock przygotujTekst(sTekst[], iLen){
for(new i = iLen-0x1 ; i ; i--){
if(sTekst[i] == ' ') sTekst[i] = EOS;
if(sTekst[i-0x1] != ' ') break;
}
}
Jak on dokładnie działa? Otóż przydaje się on gdy chcemy porównać dwa teksty które mogą się różnic ilością "spacji" na końcu tekstu.
Przydatne dla osób które tworzą własne lub modyfikują czyjeś pluginy.
Najprościej to będzie opisać w przykładowym zastosowaniu:
public sprawdzDwaTeksty(id){
new sTekst[0x2][0x10];
ArrayGetString(g_sNazwa, 0x1, sTekst[0x0], sizeof sTekst[]-0x1); // "Tekst"
ArrayGetString(g_sNazwa, 0x2, sTekst[0x1], sizeof sTekst[]-0x1); // "Tekst "
przygotujTekst(sTekst[0x0], sizeof sTekst[] - 0x1);
przygotujTekst(sTekst[0x1], sizeof sTekst[] - 0x1);
if(equal(sTekst[0x0], sTekst[0x1]))
log_amx("Dwa teksty zostaly DOKLADNIE porownane, ich tresc jest identyczna.");
}
U mnie się to naprzykład przydało w pluginie w którym gracz tworzył drużyny, aby nie mógł za nic ustawić takiej samej nazwy drużyny jak inna
DarkGL
26.01.2012
po kij używać szesnastkowego tutaj ? ( chyba że lubisz utrudniać życie tym którzy nie znają go biegle )
w amxx jest już funkcja od tego
http://www.amxmodx.o...?go=func&id=570
w amxx jest już funkcja od tego
http://www.amxmodx.o...?go=func&id=570
G[o]Q
26.01.2012
tak diablix chciał pokazać ze zna inne systemy
Diablix a co się stanie jak w tablicy bd mieć np "jakis tam sobie tekst" ?? funkcja usunie spacje czy efektem będzie zapamiętanie tylko "jakis" ??
Diablix a co się stanie jak w tablicy bd mieć np "jakis tam sobie tekst" ?? funkcja usunie spacje czy efektem będzie zapamiętanie tylko "jakis" ??
diablix
27.01.2012
@G[o]Q
Zawsze używam szesnastkowego, kwestia przyzwyczajenia
No to zostanie tylko pierwsze zdanie Ewentualnie mogę zrobić wersje która sprawdza tylko na końcu spacje jeżeli ktoś tego chce:)
@Fili:P
Właśnie tak.
EDIT
Jednak dobrze że GoQ mnie upomniał, nie taki miał być cel tej funkcji Poprawione
Zawsze używam szesnastkowego, kwestia przyzwyczajenia
No to zostanie tylko pierwsze zdanie Ewentualnie mogę zrobić wersje która sprawdza tylko na końcu spacje jeżeli ktoś tego chce:)
@Fili:P
Właśnie tak.
EDIT
Jednak dobrze że GoQ mnie upomniał, nie taki miał być cel tej funkcji Poprawione
R3X
15.02.2012
Darku ma rację, trim i po sprawie. Czy poniższy kod nie jest dużo bardziej czytelny?
new szTextOne[] = " text "; new szTextTwo[] = "text"; trim(szTextOne); trim(szTextTwo); if(equal(szTextOne, szTextTwo)){ }
diablix
16.02.2012
R3X ale trim usunie wszystkie spacje a moim problemem było to że chciałem tylko te na końcu... Ludzie wybierali nazwę "grupy" i chciałem żeby wykryło taki tekst:
"Grupa numer jeden"
"Grupa numer jeden "
I wtedy equal już tak dobrze się nie sprawdzał
Ale wiem że mogłem to zrobić na zasadzie:
No cóż, alę może komuś się przyda..
"Grupa numer jeden"
"Grupa numer jeden "
I wtedy equal już tak dobrze się nie sprawdzał
Ale wiem że mogłem to zrobić na zasadzie:
if(equal(sTekst1, sTekst2, strlen(sTekst1)-0x1))
No cóż, alę może komuś się przyda..
DarkGL
17.02.2012
tylko że twój stock nie usunie spacji z początkuTo może komuś się chociaż przyda jego stockowa wersja