Jump to content

validad RUN en c# ayuda!


Recommended Posts

En todos los lenguajes

http://www.dcc.uchil...gos/validarrut/

 

SAlu2.

si pero como lo impremento a un button

 

eso es lo q no entiendo

Si te fijas esa funcion devuelve el caracter del digito verificador, entonces lo que debes hacer es que en el evento de presionar el boton se llame a esa funcion. que tome los datos del textBox, y comparas el valor que la funcion devolvio con el digito verificador que puso el usuario.

 

Si coinciden estonces esta bien

Link to comment
Share on other sites

Ya... pero algo a prueba de :tonto: si pones el codigo en c# te lo agradeceria

La funcion en C# esta en la pagina, y el manejo del evento onClick o como se llame en C# no tengo idea pues no se C# y supuse que si estabas preguntado, te manejabas de manera basica en el tema, solo que no entendias esto especifico, asi que si quieres codigo para manejar el evento.... no soy la persona indicada :tonto:

Link to comment
Share on other sites

Ya... pero algo a prueba de :tonto: si pones el codigo en c# te lo agradeceria

La funcion en C# esta en la pagina, y el manejo del evento onClick o como se llame en C# no tengo idea pues no se C# y supuse que si estabas preguntado, te manejabas de manera basica en el tema, solo que no entendias esto especifico, asi que si quieres codigo para manejar el evento.... no soy la persona indicada :tonto:

 

Ok, gracias de todas formas! :kicking:

Link to comment
Share on other sites

a ver primero que todo existen 2 tipos de rut

 

x.xxx.xxx-x

xx.xxx.xxx-x

 

 

que a su vez es:

 

xxxxxxxx

xxxxxxxxx

 

por lo tanto:

 

bool validarRut(String rut){
bool ret = true;
int largo = rut.Length;
 if(largo >= 8 && largo <= 9){
   for(int i=0; i<largo; i++){
     if(rut[i] != "0" || rut[i] != "1" || rut[i] != "2" || rut[i] != "3" || rut[i] != "4" || rut[i] != "5" || rut[i] != "6" || rut[i] != "7" || rut[i] != "8" || rut[i] != "9" || rut[i] != "k"){
     ret = false; break;
     }
   }
 }
return ret;
}

Link to comment
Share on other sites

a ver primero que todo existen 2 tipos de rut

 

x.xxx.xxx-x

xx.xxx.xxx-x

 

 

que a su vez es:

 

xxxxxxxx

xxxxxxxxx

 

por lo tanto:

 

bool validarRut(String rut){
bool ret = true;
int largo = rut.Length;
 if(largo >= 8 && largo <= 9){
for(int i=0; i<largo; i++){
  if(rut[i] != "0" || rut[i] != "1" || rut[i] != "2" || rut[i] != "3" || rut[i] != "4" || rut[i] != "5" || rut[i] != "6" || rut[i] != "7" || rut[i] != "8" || rut[i] != "9" || rut[i] != "k"){
  ret = false; break;
  }
}
 }
return ret;
}

Ojo... que todavía quedan algunos viejitos vivos con rut XXX.XXX-X

 

Mira... si no es así... debería estar muy cerca... no lo probé, pero debería funcionar... quizás los substring estén mal indexados, pero es un detalle que puedes resolver...

 


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
   public partial class Form1 : Form
   {
       public Form1()
       {
           InitializeComponent();
       }

       private string digitoVerificador(int rut)
       {
           int Digito;
           int Contador;
           int Multiplo;
           int Acumulador;
           string RutDigito;

           Contador = 2;
           Acumulador = 0;

           while (rut != 0)
           {
               Multiplo = (rut % 10) * Contador;
               Acumulador = Acumulador + Multiplo;
               rut = rut/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);
       }

       private void button1_Click(object sender, EventArgs e)
       {
           if(digitoVerificador(Convert.ToInt32(textBox1.Text.Substring(0, textBox1.Text.Length - 3))) == textBox1.Text.Substring(textBox1.Text.LastIndexOf("-"), 1))
           {
               //EL RUT ES VALIDO
           }
           else
           {
               //EL RUT ES INVALIDO
           }
       }
   }
}

 

Salu2.

Edited by Ra
Link to comment
Share on other sites

a ver primero que todo existen 2 tipos de rut

 

x.xxx.xxx-x

xx.xxx.xxx-x

 

 

que a su vez es:

 

xxxxxxxx

xxxxxxxxx

 

por lo tanto:

 

bool validarRut(String rut){
bool ret = true;
int largo = rut.Length;
 if(largo >= 8 && largo <= 9){
for(int i=0; i<largo; i++){
  if(rut[i] != "0" || rut[i] != "1" || rut[i] != "2" || rut[i] != "3" || rut[i] != "4" || rut[i] != "5" || rut[i] != "6" || rut[i] != "7" || rut[i] != "8" || rut[i] != "9" || rut[i] != "k"){
  ret = false; break;
  }
}
 }
return ret;
}

Ojo... que todavía quedan algunos viejitos vivos con rut XXX.XXX-X

 

Mira... si no es así... debería estar muy cerca... no lo probé, pero debería funcionar... quizás los substring estén mal indexados, pero es un detalle que puedes resolver...

 


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
	public Form1()
	{
		InitializeComponent();
	}

	private string digitoVerificador(int rut)
	{
		int Digito;
		int Contador;
		int Multiplo;
		int Acumulador;
		string RutDigito;

		Contador = 2;
		Acumulador = 0;

		while (rut != 0)
		{
			Multiplo = (rut % 10) * Contador;
			Acumulador = Acumulador + Multiplo;
			rut = rut/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);
	}

	private void button1_Click(object sender, EventArgs e)
	{
		if(digitoVerificador(Convert.ToInt32(textBox1.Text.Substring(0, textBox1.Text.Length - 3))) == textBox1.Text.Substring(textBox1.Text.LastIndexOf("-"), 1))
		{
			//EL RUT ES VALIDO
		}
		else
		{
			//EL RUT ES INVALIDO
		}
	}
}
}

 

Salu2.

 

gracias... tiene un error pero lo estoy viendo que error tiene, si lo tengo bien onda formato xx.xxx.xxx-x lo subo

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...