Anterior Sumário Próximo OpenBASE! o Banco de Dados inteligente. Fale conosco!

PHONETS()

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().

Anterior Sumário Próximo OpenBASE! o Banco de Dados inteligente. Fale conosco!