strcmp Rбpido -
ipsBruno - 24.06.2012
Usando aquela minha include de varGet, stringSet podemos usar a nossa boa e bela criatividade e formar infinitas coisas. Pensando nisto hoje pela manhг, consegui desenvolver um strcmp super rбpido. Que pode vencer qualquer strcmp em longas cadeias de caracteres
Cуdigo:
pawn Code:
#define new_strcmp(%0,%1) \
(varSet(%0, 1), varGet(%1) == varSet(%0, 0))
Exemplo de Uso:
pawn Code:
if(new_strcmp("o jovem gosta de pao", "o nгo gosta de pao")) {
printf("sгo iguais");
}
else {
printf("nгo sгo iguais");
}
close_strcmp("o jovem gosta de pao");
O
close_strcmp deve ser dado para fechar a comparaзгo. Usando a primeira string usada. No caso ("o
jovem gosta de pao")
Velocidade:
A velocidade desse projeto й bastante rбpida, isto apenas quando usado cadeia enorme de strings, tais maiores que 5 ou 6 caracteres. Pois a velocidade permanece a mesma pois ele nгo faz um loop como strcmp lento da sa:mp fazia
Cadeia de caracteres menores que 5 ou 4 caracteres vгo apresentar uma velocidade inferior ao strcmp
pawn Code:
new tick;
tick = GetTickCount();
for(new i; i != 100000; i++) {
if(new_strcmp("O CACHORRO COME CARNE, O GATO COME CARNE, EU COMO CARNE", "O CACHORRO COME CARNE, O GATO COME CARNE, EU COMO CARNE")) {
}
close_strcmp("O CACHORRO COME CARNE, O GATO COME CARNE, EU COMO CARNE");
}
printf("New Strcmp %d", GetTickCount() - tick);
tick = GetTickCount();
for(new i; i != 100000; i++) {
strcmp("O CACHORRO COME CARNE, O GATO COME CARNE, EU COMO CARNE", "O CACHORRO COME CARNE, O GATO COME CARNE, EU COMO CARNE", true);
}
printf("SAMP Strcmp %d", GetTickCount() - tick);
Resultados:
Quote:
[07:31:58] New Strcmp 530
[07:32:00] SAMP Strcmp 1960
|
# Ainda nгo adicionei
case_sensitive para FALSE (true no caso de strcmp) Logo quando strcmp й usado em false serб mais rбpido que este projeto, porйm sу se nгo for com muitos caracteres, pois strcmp trabalha com loop in string
pawn Code:
#define strcmp(%0,%1,%2) !new_strcmp(%0, %1)
_
Ao contrбrio do strcmp. Este:
RETORNA TRUE -> STRINGS IGUAIS
RETORNA FALSE -> STRINGS DIFERENTES
Re: strcmp Rбpido -
sanalex - 24.06.2012
Wow! Parabйns Drakins, me parece muito bom, mas e ZCMD, jб й bastante otimizado nй?
Re: strcmp Rбpido -
humildadeforever - 24.06.2012
Уtimo trabalho, parabйns!
[Essa minha pobreza de REP ahuahuah]
Re: strcmp Rбpido -
ipsBruno - 24.06.2012
ZCMD й outra coisa. Aqui estamos trabalhando com comparaзгo de string nгo processamento de comandos.
ZCMD й um tanto otimizado, daria para melhorar ainda. Enfim, ele usa CallFunction para reconhecer os comandos. Nгo й bem uma comparaзгo de strings, como aqui.
Se for fazer um comparador de strings similar ao zcmd precisarнamos declarar uma string а callback a cada comparaзгo .. Nгo serve.
Estou pensando em mudar. Afinal, usando este mйtodo ficou realmente um tanto lento. Pretendo fazer um esquema estilo aquele
prev_strcmp. Mas nгo agora, este projeto й mais para estudos da varSet, varGet mesmo.
Testes quando usa strcmp em false:
pawn Code:
[08:07:06] New Strcmp 453
[08:07:07] SAMP Strcmp 132
Mas isto nгo й problema, essa strcmp que fiz foi especialmente para comparar strings com tamanhos muito grandes de milhares de caracteres. Ele ainda funciona
Isto й para verem como aquela minha include de varGet, varSet й ъtil ...
- Й como cu, cada um usa como lhe convйm, й sу ter criatividade que aparecem vбrias utilidades.
Re: strcmp Rбpido -
StrondA_ - 24.06.2012
Drakins, antigamente no fуrum, vocк postou algum cуdigo que permitiria utilizar zcmd + strcmp, poderia reposta-lo ?
parabйns pelo sistema, fico fast.
Re: strcmp Rбpido -
sanalex - 24.06.2012
Quote:
- Й como cu, cada um usa como lhe convйm, й sу ter criatividade que aparecem vбrias utilidades.
|
Hahahaha entendir perfeitamente!
Re: strcmp Rбpido -
dPlaYer_ - 24.06.2012
Eu tabem como carne -q
-
Muito boa a include xD
Re: strcmp Rбpido -
Edu33 - 24.06.2012
Muito bom Bruno, super fuck
E dessa vez eu entendiii =D
@OFF
Gostei da parte do
Quote:
- Й como cu, cada um usa como lhe convйm, й sу ter criatividade que aparecem vбrias utilidades.
|
LOL
Vai pra tu laercio.
Re: strcmp Rбpido -
ipsBruno - 24.06.2012
Quote:
Originally Posted by StrondA_
Drakins, antigamente no fуrum, vocк postou algum cуdigo que permitiria utilizar zcmd + strcmp, poderia reposta-lo ?
parabйns pelo sistema, fico fast.
|
Claro!
http://forum.sa-mp.com/showthread.ph...77#post1943377
Re: strcmp Rбpido -
paulor - 24.06.2012
Ual, muito bom!
@Edit
E bruno sempre esquecendo de algo neh! 'close_strcmp'