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]; } } }