Social Icons

viernes, 14 de noviembre de 2008

Mapeo de Hex para CAML definitivo

Veo que es un tema recurrente (por las consultas que me llegan del google) el tema del mapeo de caracteres No-US para los nombres de los campos en las consultas CAML.

El mes pasado hice una burda primera aproximación al tema pero se me quedó en el tintero hacer una función que lo solucionase de forma más global. Pues bien, aprovechando que hoy estaba solo en casa como Marta Sánchez o como Macaulay Culkin tenía tiempo pues he decidido dejar zanjado el tema.

/// <summary>
///
Normalizes the string passed replacing the non standard
/// charaters by Sharepoint HEX code
/// </summary>
///
<param name="str">Works great with Field Names and CAML
/// Queries :D
</param>
static string fieldName2Caml(string str)
{
int i = 0;
while (i < color="#0000ff"> if ((str[i] >='0' && str[i] <= '9')
(str[i] >=
'a' && str[i] <= 'z')
(str[i] >=
'A' && str[i] <= 'Z'))
i++;
else
{
str = str.Substring(0, i) +
string.Format("_0x00{0}_", string.Format("{0:X}",
Convert.ToInt32(str[i]))).ToLower() +
str.Substring(i+1);
i += 8;
}
}
return str;
}

Hala y gracias a esto podremos transformar cualquier nombre de columna en castellano con sus acentos y con sus eñes y con sus espacios al formáto válido en las consultas CAML de Sharepoint.

Los comentarios del principio se los dedico al Yeyo, para que vea que pese a haber leído el manual de estilo no lo aplico porque para eso este blog esss Miiio.


No se porqué me he acordado de Batman y del Señor de los anillos.


No hay comentarios: