Propósito
Retornar o código fonético dos quatro primeiros caracteres de uma cadeia de caracteres.
Sintaxe
PHONETS (<exp.C>, <exp.N>)
Argumentos
<exp.C> |
representa uma cadeia de caracteres para avaliação. |
<exp.N> |
representa um FLAG para chamada da função. Pode ser igual a 1 (um) e 2 (dois). Qualquer outro valor e aceito só que, neste caso, a avaliação é feita de forma particular. |
Utilização
Retorna uma cadeia de 4 (quatro) caracteres, em hexadecimal correspondente, a representação fonética dos quatro primeiros caracteres de <exp.C>, segundo regras informadas a seguir.
Retorna uma cadeia igual "0000" quando <exp.C> não contiver apenas letras e <exp.N> for diferente de 2 (dois), ou <exp.C> não contiver apenas letras e números, e <exp.N> for igual a 2 (dois).
A função PHONETS () funciona sob as seguintes regras:
1 - Converte letras minúsculas para maiúsculas.
2 - Elimina letras iguais contíguas.
3 - Quando <exp.N> igual a 2 (dois) converte algarismos encontrados por seu valor em extenso. Exemplo: 0 troca por ZERO, 5 troca por CINCO, 7 troca por SETE
4 - Substitui grupos de letras de acordo com <exp.N> conforme tabela a seguir.
Quando <exp.N> diferente de 1 (um) utiliza a seguinte ordem:
II, IV, I, III e V. Quando <exp.N> igual a 1 (um) utiliza a ordem de apresentação:
I, II, III, IV e V.
I - Substitui
N |
M |
Se última letra. |
AM, AO, OM |
M |
Se duas últimas letras. |
OES, OIM, ONS, UÉM |
M |
Se três últimas letras. |
EIA |
IA |
Se três últimas letras. |
X |
IS |
Se última letra. |
II - Elimina B, D e T quando última letra.
III - Substitui conjunto de letras:
De |
Para |
WA, WE, WO,WU |
VA, VE, VO, VU respectivamente |
WI |
UI |
SCH, TSH, TCH |
X |
SH, CH, TSCH |
X |
LH |
LI |
NH |
N |
PH |
F |
H, W |
Elimina |
IV - Substitui GN e MN por N
V - Substitui conjunto de letras:
De |
Para |
SCE, SCI,SCY |
S |
CS, KS, PS, TS |
S |
TZ, XS |
S |
CE |
SE |
CI |
SI |
CY |
SY |
GE |
JE |
GI |
JI |
GY |
JY |
GD |
D |
CK, PC, QU |
Q |
SC, SK, XC |
SQ |
CT, GT, PT |
T |
5 - Substitui as letras por um código hexadecimal (tabela a seguir), eliminando os códigos iguais contíguos.
Letra |
Código Hexa |
A |
1 |
B, P |
2 |
C, K, Q |
3 |
D, T |
4 |
E, I, Y |
5 |
F, V |
6 |
G |
7 |
J |
8 |
L |
9 |
M |
A |
N |
B |
O, V |
C |
P |
D |
S, Z |
E |
X |
F |
6 - Completa com zeros se o código retornado tiver menos que quatro caracteres, ou abandona o excedente se o código tiver mais de quatro caracteres.
Exemplos
O exemplo a seguir mostra-nos o retorno desta função.
? PHONETS ("ANTONIO",1) && Exibirá "1B4C".
? PHONETS ("1ANTONIO",1) && Exibirá "0000".
? PHONETS ("ANTONIO",2) && Exibirá "1B4C".
? PHONETS ("ANTONIO ",2) && Exibirá "0 cadeia contem branco.
O exemplo a seguir mostra-nos o funcionamento desta função passo a passo.
PHONETS ("aAaNtONNhIOw",1)
1 - Converte letras maiúsculas para minúsculas.
"AAANTONNHIOW"
2 - Elimina letras contíguas.
"ANTONHIOW"
4.III - Substitui NH por N e W por "".
"ANTONIO"
5 - Substitui letras por código hexa.
"1B4CB5C"
6 - Abandona excedentes.
"1B4C"
Consulte
HTON(), NTOH(), PHONAME() e PHONETIC().