string equal, equali - real time exact comparision

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Tetusis

Re: string equal

Post by Tetusis »

aaarnas wrote:Tada turi rašyti savo funkcija ar išiminėti nikus kas kablelį ir tada juos lyginti. Čia jau specifinis poreikis ir jokia funkcija tau to nepadarys.
gal jau yra padaryta kazkas pan, laukiu kitu atsakymu

User avatar
beast
AMX Mod X ekspertai
Posts: 509
Joined: 2011 Jan 08 18:44
Skype: thefurious4
Contact:

Re: string equal

Post by beast »

Nežinau ar to tau reikia ir ar veiks taip kaip manau...

Code: Select all

#include <amxmodx> public funcija(){    if(contains("asfasf, asdd, asgag", "asdd") != -1)    {        //rado    }        else    {        //nerado    }}   contains(str[], substr[]){    new pos = containi(str, substr)        if(pos == -1)        return -1        new temp[32], len = strlen(substr)            copy(temp, len + 1, str[pos])        if(temp[len] == ',' || temp[len] == EOS)        return pos        return -1}

InvIs
Gana aktyvus vartotojas
Posts: 421
Joined: 2011 Aug 13 11:12
Skype: pksoldierlt
Location: ATOSTOGOSE

Re: string equal

Post by InvIs »

Tetusis wrote:
aaarnas wrote:Tai yra:
Birutė,
Virga,
Jonė,
Stasė.

Tai contain(nics, "Jonė") kuo yra blogas? Ar tau reikia patikrinti ar nėra dviejų Jonių nicks stringe ?
bet jei yra zaidejo nick:
Birutė Kiausiniene
vistiek bus true, nes pagal contain/containi atitiko Birutė...

Gali būti, kad visai nusikalbėsiu, bet. Negalima čia naudoti equal ? equal("Birutė", "Birutė kiaušinienė") bus false ar klystu?
ISVYKES

Tetusis

Re: string equal

Post by Tetusis »

InvIs wrote:
Tetusis wrote:
aaarnas wrote:Tai yra:
Birutė,
Virga,
Jonė,
Stasė.

Tai contain(nics, "Jonė") kuo yra blogas? Ar tau reikia patikrinti ar nėra dviejų Jonių nicks stringe ?
bet jei yra zaidejo nick:
Birutė Kiausiniene
vistiek bus true, nes pagal contain/containi atitiko Birutė...

Gali būti, kad visai nusikalbėsiu, bet. Negalima čia naudoti equal ? equal("Birutė", "Birutė kiaušinienė") bus false ar klystu?
Jau minejau as tai :facepalm: .... Senai equali naudociau jei jis veiktu string'uose...

InvIs
Gana aktyvus vartotojas
Posts: 421
Joined: 2011 Aug 13 11:12
Skype: pksoldierlt
Location: ATOSTOGOSE

Re: string equal

Post by InvIs »

O tai bent bandei, kad sakai, jog neveikia? Kiek pamenu, viskas ten turi veikti.
ISVYKES

Tetusis

Re: string equal

Post by Tetusis »

InvIs wrote:O tai bent bandei, kad sakai, jog neveikia? Kiek pamenu, viskas ten turi veikti.
pasikartosiu... equali, equal string'e (multiple results) neveikia..

InvIs
Gana aktyvus vartotojas
Posts: 421
Joined: 2011 Aug 13 11:12
Skype: pksoldierlt
Location: ATOSTOGOSE

Re: string equal

Post by InvIs »

Tai nenaudok multiple, patikrink po vieną. Matai, kad geresnio varianto nėra
ISVYKES

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: string equal

Post by aaarnas »

Jau pradžioje sakiau, kad reikia tikrinti po vieną rezultatą skaidant duomenis esančius tarp kablelių. beast davė tą darantį algoritmą. Ar equal ar containi tame algoritme naudoti, čia nuo realizacijos priklauso, bet turėtų būti equal. Bet naudojant equal, reikia tada užtikrinti, kad teisingai suskaidysi duomenis (neliks tarpų, nereikalingų simbolių ir pan.).

Šiaip tokius paprastus algoritmus reikėtų mokėti parašyti, ar bent tobulintis, kad išmokti, nes neįsivaizduoju kaip galima kažką rimčiau programuoti negalint sugalvoti tokių paprastų algoritmų. Programavimas paremtas algoritmų rašymu, ne funkcijų naudojimu. Jei priešingai, tada geriau nelysti toliau Javos.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

Tetusis

Re: string equal

Post by Tetusis »

beast wrote:Nežinau ar to tau reikia ir ar veiks taip kaip manau...

Code: Select all

#include <amxmodx> public funcija(){    if(contains("asfasf, asdd, asgag", "asdd") != -1)    {        //rado    }        else    {        //nerado    }}   contains(str[], substr[]){    new pos = containi(str, substr)        if(pos == -1)        return -1        new temp[32], len = strlen(substr)            copy(temp, len + 1, str[pos])        if(temp[len] == ',' || temp[len] == EOS)        return pos        return -1}

Dekui veikia taip kaip noriu, bet yra problema: viskas butu gerai jei nebutu tarpu pvz prisijungia zaidejas pirma karta su nick "gooby" (iregina), paskui prisijungia su "gooby " arba "gooby " (daugiau tarpu...) nors yra trim, vistiek buna true, t.y neaptinka duplikato. Dar vienas dalykas, zaidejas prisijungia su nick pirma syki "test test"(iregina), veliau prisijungia su "test te"(iregina) na ir vel prisijungia su "test te" neaptinka duplikatu..

siaip as galvoju ar isvis verta deti pastangas kuriant kazkokius failsafe su amxx, gal jau yra MYSQL uzklausa su kuria nebutu galima prideti duplikatu.?

User avatar
beast
AMX Mod X ekspertai
Posts: 509
Joined: 2011 Jan 08 18:44
Skype: thefurious4
Contact:

Re: string equal

Post by beast »

Pats bent bandai išsiaiškint? Ar lauki kol kiti padarys? Pora min paieškojau: http://dev.mysql.com/doc/refman/5.0/en/ ... ind-in-set Aišku spėju, kad vis tiek nemokėsi prisitaikyt pagal save...

Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests