C sharp - Ayuda con Funcion

 
Vista:
sin imagen de perfil
Val: 1
Ha disminuido su posición en 7 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Ayuda con Funcion

Publicado por Victor Damian (1 intervención) el 20/01/2018 12:51:14
Buen dia

Estoy teniendo un problema cuando uso la funcion siguiente:

Les cuento esta funcion fue traducida de php (andando) a c# . Lo que hace es decencriptar una contraseña .

Estoy teniendo un problema en la linea caracter = Convert.ToInt32(clave.Substring(n, 1)) - counter; mas presisamente en la funcion Convert.ToInt32 por ejemplo le paso el simbolo "+" como parametro y recibo el siguiente error:

System.FormatException: "La cadena de entrada no tiene el formato correcto"

Me podrian decir que estoy haciendo mal?


1
2
3
4
5
6
7
8
9
10
11
12
13
public string Decrypt(string clave)
{
    string CRYPTCHARS = "?qwertyuiopasdfghjklñzxcvbnm 1234567890ºª\\!|@·#$%&/()='¿¡*+]`^[´¨{çÇ},;.:-_QWERTYUIOPASDFGHJKLÑZXCVBNM~";
    string decrypt = "";
    int caracter;
    int counter = 0;
    for (int n=0; n < clave.Length; n++) {
        counter++;
        caracter = Convert.ToInt32(clave.Substring(n, 1)) - counter;
        decrypt += CRYPTCHARS.Substring(caracter - 1, 1);
    }
    return decrypt;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 22
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

Ayuda con Funcion

Publicado por Thanatos (14 intervenciones) el 20/01/2018 21:26:12
El método Convert.ToInt32(string), convierte un dato de tipo string, que representa a un número entero, en un dato equivalente de tipo int de 32 bit.

La cadena "+" no representa a un número entero, por eso el método no pude convertirla en un Int32. Lo mismo sucederá con las cadenas que contengan letras, signos de puntuación y caracteres especiales ("%", "$", "@", etc.)

Las cadenas válidas pueden comenzar con los signos + o -, por ejemplo: "+123", "-567". Pero aún si usas una cadena con este formato, tu programa continuará generando la misma excepción, porque convierte cada carácter de la cadena individualmente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar