Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: murdoc_87_1 en 19 Abril 2010, 20:28 pm



Título: C#: Ayuda para validar caracteres usando Split[CODE]public string[] quitaDemas(s
Publicado por: murdoc_87_1 en 19 Abril 2010, 20:28 pm
Código:
public string[] quitaDemas(string cadena){
char[] delimiterChars= new char[11];
for(int i=33;i<10;i++){
int v=Numero((char)i);
if(v==33&&i>159||v==33&&i<128){delimiterChars[i]=(char)i;
Console.WriteLine("char="+delimiterChars[i].ToString()+" No.:"+i);
}
}
cadena = cadena.Replace("\r\n\t", "");//Quitamos llamadas de escape como \n y \r (saltos de línea)
string[] arr = cadena.Split(delimiterChars);//Ignoramos espacios, comas,punto y comas, puntos; para almacenar un arreglo con palabras y para cada salto de línea, un string vacío
return arr;
}

Hola que tal, ando muy engorrado con esta función que quiero implementar, quiero almacenar en la matriz delimeterChars los caracteres ASCII que no sean de 'a' a la 'z' y las minúsculas acentuadas, la ñ y la ü. la función "Numero" me regresa un 33 si el caracter mandado es diferente de lo anterior. La matriz me almacena los caracteres que quiero quitar, pero al poner la variable delimeterChars en split me provoca error de "Índice fuera de los límites" incluso si almaceno solo 10 caracteres... he calado la función split poniendo 5 chars ahí mismo y funciona el código pero con dichos chars. Me gustaría saber que error tengo o que limitante rebaso... Saludos


Título: Re: C#: Ayuda para validar caracteres usando Split[CODE]public string[] quitaDemas(s
Publicado por: Atrum en 21 Abril 2010, 15:59 pm
hmm bueno pues no se si resuelva tu problema pero esto:

for(int i=33;i<10;i++)

Esta incoherente ya que si inicializas i en 33 y lo incrementas de 1 en 1 hasta que i sea menor que 10, es un ciclo infinito.

Como es tu funcion Numero?


Título: Re: C#: Ayuda para validar caracteres usando Split[CODE]public string[] quitaDemas(s
Publicado por: murdoc_87_1 en 21 Abril 2010, 23:53 pm
Así es, debería iniciar en 0, quería guardar los caracteres a partir del 33. Mi error consistía en otra función que ya validé bien. Gracias por la observación