Tengo la necesidad de usar una funcion que esta hecha en C .
Se puede usar directamente? cómo ? o hay que pasarla a xBase?
En caso de que haya que pasarla, puede alguien darme una mano? no tengo idea de C.
Este es el codigo:
- Code: Select all Expand view
- public bool validarRif(string sRif)
{
bool bResultado = false;
int iFactor = 0;
sRif = sRif.Replace("-", "");
if (sRif.Length < 10)
sRif = sRif.ToUpper().Substring(0, 1) + sRif.Substring(1, sRif.Length - 1).PadLeft(9, '0');
string sPrimerCaracter = sRif.Substring(0, 1).ToUpper();
switch (sPrimerCaracter)
{
case "V": iFactor = 1; break;
case "E": iFactor = 2; break;
case "J": iFactor = 3; break;
case "P": iFactor = 4; break;
case "G": iFactor = 5; break;
}
if (iFactor > 0)
{
int suma = ((int.Parse(sRif.Substring(8, 1))) * 2)
+ ((int.Parse(sRif.Substring(7, 1))) * 3)
+ ((int.Parse(sRif.Substring(6, 1))) * 4)
+ ((int.Parse(sRif.Substring(5, 1))) * 5)
+ ((int.Parse(sRif.Substring(4, 1))) * 6)
+ ((int.Parse(sRif.Substring(3, 1))) * 7)
+ ((int.Parse(sRif.Substring(2, 1))) * 2)
+ ((int.Parse(sRif.Substring(1, 1))) * 3)
+ (iFactor * 4);
float dividendo = suma / 11;
int DividendoEntero = (int)dividendo;
int resto = 11 - (suma - DividendoEntero * 11);
if (resto >= 10 || resto < 1)
resto = 0;
if (sRif.Substring(9, 1).Equals(resto.ToString()))
{
bResultado = true;
}
}
return bResultado;
}
Se ve muy sencilla y hasta se entiende, pero ya sabemos que en programación una coma o punto hace la diferencia entre bien y mal.
Como siempre, agradezco de antemano la ayuda que puedan prestarme.
Gracias !!