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
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!
Me sirvió, gracias.
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
¿Puedo ocuparlo en mi trabajo verdad?
Estimado desconozco que quieras hacer, sin embargo todo el código de nuestra página esta a su disposición, puede utilizarlo para lo que lo necesite saludos.