Para los maestros en C (Yo soy 帽o帽o
using System.Text.RegularExpressions;
using System;
using System.Globalization;
public class RFC
聽 聽 {
聽 聽 聽 聽 public static bool EsRFCValido(string RFC)
聽 聽 聽 聽 {
聽 聽 聽 聽 聽 聽 if (PersonaFisica_RFC(RFC) && ValidarUltimaLetraRFC(RFC) && ValidarFechaRFC(RFC))
聽 聽 聽 聽 聽 聽 聽 聽 return true;
聽 聽 聽 聽 聽 聽 if (General_RFC(RFC) && ValidarUltimaLetraRFC(RFC) && ValidarFechaRFC(RFC))
聽 聽 聽 聽 聽 聽 聽 聽 return true;
聽 聽 聽 聽 聽 聽 return false;
聽 聽 聽 聽 }
聽 聽 聽 聽 private static bool PersonaFisica_RFC(string RFC)
聽 聽 聽 聽 {
聽 聽 聽 聽 聽 聽 try
聽 聽 聽 聽 聽 聽 {
聽 聽 聽 聽 聽 聽 聽 聽 if (RFC.Trim().Length == 13 || RFC.Trim().Length == 12)
聽 聽 聽 聽 聽 聽 聽 聽 {
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 string pattern = "^[A-Z&]{3,4}(\\d{6})(([A-Z0-9]){3})?$";
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 Match RFCMatch = Regex.Match(RFC, pattern);
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 if (RFC != string.Empty)
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 {
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 if (!RFCMatch.Success)
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 return false;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 }
聽 聽 聽 聽 聽 聽 聽 聽 }
聽 聽 聽 聽 聽 聽 聽 聽 else
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 return false;
聽 聽 聽 聽 聽 聽 聽 聽 return true;
聽 聽 聽 聽 聽 聽 }
聽 聽 聽 聽 聽 聽 catch (Exception ex)
聽 聽 聽 聽 聽 聽 {
聽 聽 聽 聽 聽 聽 聽 聽 Console.WriteLine(string.Format("ExpRegulares.PersonaFisica_RFC: {0}", ex.Message));
聽 聽 聽 聽 聽 聽 聽 聽 return false;
聽 聽 聽 聽 聽 聽 }
聽 聽 聽 聽 }
聽 聽 聽 聽 private static bool General_RFC(string RFC)
聽 聽 聽 聽 {
聽 聽 聽 聽 聽 聽 try
聽 聽 聽 聽 聽 聽 {
聽 聽 聽 聽 聽 聽 聽 聽 string pattern = "^([A-Z\\s]{3,4})\\d{6}(([A-Z\\w]|[0-9]){3})$";
聽 聽 聽 聽 聽 聽 聽 聽 Match RFCMatch = Regex.Match(RFC.Trim(), pattern);
聽 聽 聽 聽 聽 聽 聽 聽 if (RFC.Trim() != string.Empty)
聽 聽 聽 聽 聽 聽 聽 聽 {
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 if (!RFCMatch.Success)
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 return false;
聽 聽 聽 聽 聽 聽 聽 聽 }
聽 聽 聽 聽 聽 聽 聽 聽 return true;
聽 聽 聽 聽 聽 聽 }
聽 聽 聽 聽 聽 聽 catch (Exception ex)
聽 聽 聽 聽 聽 聽 {
聽 聽 聽 聽 聽 聽 聽 聽 Console.WriteLine(string.Format("ExpRegulares.General_RFC: {0}", ex.Message));
聽 聽 聽 聽 聽 聽 聽 聽 return false;
聽 聽 聽 聽 聽 聽 }
聽 聽 聽 聽 }
聽 聽 聽 聽 private static bool ValidarUltimaLetraRFC(string RFC)
聽 聽 聽 聽 {
聽 聽 聽 聽 聽 聽 try
聽 聽 聽 聽 聽 聽 {
聽 聽 聽 聽 聽 聽 聽 聽 if (RFC.EndsWith("A") || RFC.EndsWith("0") || RFC.EndsWith("1") || RFC.EndsWith("2") || RFC.EndsWith("3") || RFC.EndsWith("4") || RFC.EndsWith("5")
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 || RFC.EndsWith("6") || RFC.EndsWith("7") || RFC.EndsWith("8") || RFC.EndsWith("9"))
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 return true;
聽 聽 聽 聽 聽 聽 聽 聽 else
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 return false;
聽 聽 聽 聽 聽 聽 }
聽 聽 聽 聽 聽 聽 catch (Exception ex)
聽 聽 聽 聽 聽 聽 {
聽 聽 聽 聽 聽 聽 聽 聽 Console.WriteLine(string.Format("ExpRegulares.ValidarUltimaLetraRFC: {0}", ex.Message));
聽 聽 聽 聽 聽 聽 聽 聽 return false;
聽 聽 聽 聽 聽 聽 }
聽 聽 聽 聽 }
聽 聽 聽 聽 private static bool ValidarFechaRFC(string RFC)
聽 聽 聽 聽 {
聽 聽 聽 聽 聽 聽 string fecha = string.Empty;
聽 聽 聽 聽 聽 聽 bool esFecha = false;
聽 聽 聽 聽 聽 聽 DateTime resultado;
聽 聽 聽 聽 聽 聽 fecha = RFC.Substring(RFC.Length - 9, 6);
聽 聽 聽 聽 聽 聽 esFecha = DateTime.TryParseExact(fecha, "yyMMdd", null, DateTimeStyles.None, out resultado);
聽 聽 聽 聽 聽 聽 return esFecha;
聽 聽 聽 聽 }
聽 聽 }Como puedo compilarlo dentro de mi aplicaci贸n hecha con FWH y xHarbour?
Necesita cambios ?
Saludos
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero