// Contribuido por Nuno Anes --------------------------------- VC++ .NET ------------------------------------------------------------- bool IsValidContrib (String *contrib) { String *s; char c; int checkDigit; s = contrib; if (s->Length == 9) { c = s->get_Chars (0); if (c == '1' || c == '2' || c == '5' || c == '6' || c == '8' || c == '9') //digitos iniciais vĂ¡lidos { checkDigit = (c - '0') * 9; for (int i = 2 ; i <= 8 ; i++) checkDigit += (s->get_Chars (i - 1) - '0') * (10 - i); checkDigit = 11 - (checkDigit % 11); if (checkDigit >= 10) checkDigit = 0; if (checkDigit == (s->get_Chars (8) - '0')) return true; } } return false; } --------------------------------------- VB .NET ------------------------------------------------------------- Public Function IsValidContrib(ByVal contrib As String) As Boolean Dim s As String = contrib Dim c As Char Dim i, checkDigit As Integer If (s.Length = 9) Then c = s.Chars(0) If (c.Equals("1"c) Or c.Equals("2"c) Or c.Equals("5"c) Or c.Equals("6"c) Or c.Equals("8"c) Or c.Equals("9"c)) Then checkDigit = Val(c) * 9 For i = 2 To 8 checkDigit += Val(s.Chars(i - 1)) * (10 - i) Next checkDigit = 11 - (checkDigit Mod 11) If (checkDigit >= 10) Then checkDigit = 0 If (checkDigit = Val(s.Chars(8))) Then Return True End If End If Return False End Function