Formatear Rut Chileno en C#

A continuación les dejo un método  para formatear ruts.

public string formatearRut(string rut)
{
   int cont = 0;
   string format;
   if (rut.Length == 0)
   {
      return "";
   }
   else
   {
      rut = rut.Replace(".", "");
      rut = rut.Replace("-", "");
      format = "-" + rut.Substring(rut.Length - 1);
      for (int i = rut.Length - 2; i >= 0; i--)
      {
          format = rut.Substring(i, 1) + format;
          cont++;
          if (cont == 3 && i != 0)
          {
             format = "." + format;
             cont = 0;
          }
      }
      return format;
    }
}

la forma de utilizarlo mas común sería en el evento validate de una caja de texto como se muestra a continuación:


private void txtRut_Validated(object sender, EventArgs e)
{
   txtRut.Text = formatearRut(txtRut.Text);

}

Saludos

También te podría gustar...

5 Respuestas

  1. ¿Puedo ocuparlo en mi trabajo verdad?

  2. Modifique mis funciones en VB.Net tomando algo de la tuya… Yo uso estas dos tanto como darle formato al RUT como para sacarle los puntos y el guion. Esperando que les sirva.

    Friend Function SacaPuntoR(ByRef Rute As String) As String
    Dim RutSin As String = «»
    If Rute «» Then
    Rute = Rute.ToUpper()
    Rute = Rute.Replace(«.», «»)
    Rute = Rute.Replace(«-«, «»)
    End If
    RutSin = Rute
    Return RutSin
    End Function
    *********************************************************************************
    Friend Function PonePuntoR(ByRef Rute As String) As String
    Dim res As String = SacaPuntoR(Rute)
    If Rute «» Then
    Dim Lar As Integer = 9 – Rute.Length
    Dim Ceros As String = StrDup(Lar, «0»)
    Rute = Ceros & Rute
    res = Mid(Rute, 1, 2) & «.» & Mid(Rute, 3, 3) & «.» & Mid(Rute, 6, 3) & «-» & Mid(Rute, 9, 1)
    PonePuntoR = res
    End If
    PonePuntoR = res
    End Function

  3. Andres dice:

    Me sirvió, gracias.

  4. Ignacio dice:

    Consulta, tengo un problema si el rut es 5.555.555-5, quiero decir si tiene largo 8 en vez de 9, en que parte del codigo tendria que hacer el cambio para que acepte de las 2 formas? gracias!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *