using System;
namespace Gilgal.Controles
{
///
/// Summary description for Fonetica.
///
public class Fonetica
{
private Fonetica()
{
}
private static string AX ="CKQ CChSXZ DT BVW GJY FL MNñÑ P R 123456789";
private static char [] AY ="111 222222 33 444 555 66 7777 8 9 123456789".ToCharArray();
private static string consonantes = "BCDFGJKLMNÑñPQRSTVWXYZ0123456789 ";
private static string vocales="AEIOU";
///
/// Regresa hilera con el codigo fonetico
/// v.g. 'Carlos Loria Beeche' --- '1962 69 42'
///
///
///
public static string codigoFonetico (string nombre)
{
return string.Concat(fonemas(nombre) ).Trim();
}
///
/// Regresa arreglo de fonemas que componen un nombre
///
/// Nombre a fonetizar
/// El arreglo de fonemas
public static string [] fonemas (string nombre)
{
string [] palabras = nombre.Split(" ".ToCharArray());
string [] f = new string[palabras.Length];
for (int i=0;i
/// Un token no tiene espacios. es una palabra (presumo un nombre o un apellido)
///
///
///
private static string tokenAfonema(string token)
{
// string x = token.ToUpper(); // original (en mayusculas)
// char []y = x.ToCharArray(); // arreglo
char []y = token.ToUpper().ToCharArray();
for (int i=0;i=0)
{ // es una consonante
y[i] = consonanteAFonema(y[i]);
y[i+1]=' ';
}
}
}
//
// Paso 2 termino de pasar consonantes a fonemas elimiando espacios en blanco
//
for (int k=0,i=0;i
/// Convierte una consonante en su equivalente fonetico
/// v.g. K --- 1
/// S --- 2
/// T --- 3
///
///
///
private static char consonanteAFonema (char x)
{
int p = AX.IndexOf(x);
if (p<0) return ' ';//si no es consonante, devuelve un blanco. (elimina vocales y caracteres especiales)
return AY[p];
}
}
}