10.09.2012, 16:13
(
Последний раз редактировалось rjjj; 02.01.2013 в 00:35.
)
Contador : Strings Literais.
Por rjjj ou Ken
Por rjjj ou Ken
Objetivo do programa:
Facilitar o cбlculo do tamanho ideal que variбveis arrays que armazenam strings devem ter

Informaзхes:
Quando uma string й analisada da forma que estб no cуdigo-fonte do programa, ela й literal.
Em Pawn, por exemplo, a seguinte string literal de um arquivo .pwn

pawn Код:
"String\046;"
Seria isto durante a execuзгo do cуdigo

pawn Код:
"String."
Sem levar em conta o caractere EOS (null), que finaliza as strings na memуria.
O programa que fiz indica o nъmero de cells que determinada string literal ocuparia durante o processamento, e, consequentemente, o tamanho que uma variбvel array que fosse armazenб-la deveria ter.
Isso й algo bem simples de se fazer se o caractere de escape (\) e placeholders (%s, %d, etc) nгo forem envolvidos. E й aн que entra o contador que produzi

Ele pode detectar estes sнmbolos como placeholders:
pawn Код:
%s
%d
%i
%c
%f
%x
%b
%%
E qualquer caractere especial derivado do uso do de escape.
Hб tambйm vбrias opзхes de substituiзгo de placeholders selecionadas para o desenvolvimento em SA-MP

Notas importantes:
Assim que o programa for aberto, aparecerб um espaзo em branco.
Coloque nele a string literal a ter seu tamanho calculado, junto com as aspas ou com o operador de stringizing, como por exemplo

pawn Код:
"String"
E clique em OK para saber o tamanho ideal que uma array deve ter para contк-la.
No exemplo que citei, esse valor seria 7

pawn Код:
new Array[7];
strcat(Array, "String");
Se a string tiver placeholders, como esta:
pawn Код:
"Nome: %s. Idade: %d."
Marque a opзгo "Identificar Placeholders" e clique em OK

O placeholder %s serб encontrado na string e depois o %d. Marque as opзхes que achar melhor.
Sempre que escolher "Outros", preencha o espaзo em branco que surgirб а direita com o nъmero mбximo de caracteres (sem contar com o EOS) que poderiam entrar no lugar do placeholder durante a execuзгo do arquivo .amx

Crйditos:
rjjj ou Ken pela feitura do contador.
Atualizaзхes:
Corrigido um erro relativo ao sнmbolo %%.
Solucionado um problema na detecзгo de certos caracteres.
Download:
Clique Aqui
OBS: Nгo retire os crйditos !!
OBS2: O programa foi feito para Windows, com a linguagem C/C++ atravйs do IDE Borland C++ Builder

Espero ter ajudado
