Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/12/2008, 11:00
Avatar de BlueSkull
BlueSkull
 
Fecha de Ingreso: noviembre-2008
Ubicación: Chile
Mensajes: 504
Antigüedad: 15 años, 5 meses
Puntos: 4
RUN-RUT-Digito verificador???? en C#

Amigos tengo un problema necesito validar el RUN y tengo esta funcion que me tinca que tiene algo raro, ya que ingreso mi run y me lo valida sin problemas, pero ingreso el run 22.222.222-2 ( obiamente sin puntos ni coma )( el rut con el digito en dos textbox distintos ) y me dice que es valido, lo que dudo.

Tengo este codigo, para que me ayuden a ver que es lo que tiene malo o si esta bien:

--------------------------------------------------
En diseño
--------------------------------------------------

Textbox1 para strrut
Textbox2 para strdig
Button1 para llamar a la funcion que valide el run

--------------------------------------------------
Este codigo en el Codebehinde
--------------------------------------------------

private string strrut;
private string strdig;
private int intrut;

protected void Button1_Click(object sender, EventArgs e)
{
Funciones fun = new Funciones();

this.strrut = this.txt_rut.Text;
this.strdig = this.txt_dig.Text;

this.intrut = Convert.ToInt32(this.strrut);

if (this.strdig == fun.digitoVerificador(this.intrut))
{
string rut = this.strrut+this.strdig;
string mensaje = "Rut correcto"+" "+this.intrut+"-"+this.strdig+", "+rut;
this.Label1.Text = mensaje;
}
else
{
string mensaje = "Rut incorrecto";
this.Label1.Text = mensaje;
}
}

--------------------------------------------------
Este codigo en la clase
--------------------------------------------------

public string digitoVerificador(int intrut)
{
Contador = 2;
Acumulador = 0;

while (intrut != 0)
{
Multiplo = (intrut % 10) * Contador;
Acumulador = Acumulador + Multiplo;
intrut = intrut / 10;
Contador = Contador + 1;

if (Contador == 8)
{
Contador = 2;
}
}

Digito = 11 - (Acumulador % 11);
RutDigito = Digito.ToString().Trim();

if (Digito == 10)
{
RutDigito = "k";
}
if (Digito == 11)
{
RutDigito = "0";
}
return (RutDigito);
}


Bueno espero que me ayuden y si le sirve a alguien impekable.