[FORM] tc no kontrolu
#1
Bilginiz uzere tc nolari 11 hanelidir ben bunun kontrolunu saglamak icin metin kutusunun degistigi olayina nasil bir kod yazarsam tc no 11 hane olmadiginda kullaniciya mesaj verdirebilirim ?



  Alıntı
Bu mesajı beğenenler:
#2
sayın moskovic
tcno nun bir algoritması vardır online bilgi almasakta tc no nun geçerli tc no olup olmadığını tespit edebiliriz.İşte size bu fonksiyonu yazıyorum kullanımı basit
Visual Basic
  1. Public Function tcnum(tcno As String) As String
  2. If Len(tcno) <> 11 Then
  3. tcnum = "TC Kimlik No 11 karekter olmalıdır"
  4. Exit Function
  5. End If
  6.  
  7. If Not IsNumeric(tcno) Then
  8. tcnum = "TC Kimlik No rakkamlardan oluşmalı"
  9. Exit Function
  10. End If
  11. Dim a() As Variant
  12. Dim i As Integer
  13. ReDim a(11)
  14. For i = 0 To 10
  15. a(i) = CInt(Mid(tcno, i + 1, 1))
  16. Next
  17. tespit = a(0) + a(1) + a(2) + a(3) + a(4) + a(5) + a(6) + a(7) + a(8) + a(9) + a(10)
  18.  
  19. tekrakkamtoplam = (a(0) + a(2) + a(4) + a(6) + a(8)) * 7
  20. çiftrakkamtoplam = a(1) + a(3) + a(5) + a(7)
  21. onuncurakkam = (tekrakkamtoplam - çiftrakkamtoplam) Mod 10
  22. onbirincirakkam = (a(0) + a(1) + a(2) + a(3) + a(4) + a(5) + a(6) + a(7) + a(8) + onuncurakkam) Mod 10
  23. If a(9) = onuncurakkam And a(10) = onbirincirakkam Then
  24. tcnum = "Doğru"
  25. Else
  26. tcnum = "TC Kimlik Numarasını Hatalı girdiniz"
  27. End If
  28. End Function


kullanımı değiştiğinde olayına
tcnum alanadıneise onu yazın
Teşekküre gerek yok, Taş atın yeter!!!



  Alıntı
Bu mesajı beğenenler:
#3
selam
ben metin kutusunun çıkıldığında olay yordamında bunu kullanıyorum ve gayet başarılı
Visual Basic
  1. On Error Resume Next ' alan boş olduğundan runtime 94 hatası vermekte
  2. Dim a As String, b, c As Integer, rakm As String
  3. If TCNo = "" Then: Exit Sub
  4. a = Len(TCNo)
  5. b = 11 - a
  6. c = a - 11
  7. rakm = Len(TCNo)
  8. If rakm > 11 Then
  9. rakm = "Fazla"
  10. ElseIf rakm < 11 Then
  11. rakm = "Eksik"
  12. End If
  13. If Len(TCNo) <> 11 Then
  14. MsgBox "TC NO " & TCNo & vbCr & vbCr & "( " & Abs(b) & " )" & " Rakam " & rakm & " Girdiniz", vbInformation, "A-Yapı"
  15. TCNo.SetFocus
  16. Exit Sub
  17. Cancel = -1
  18. Else
  19. Cancel = False
  20. End If



sayın adnan hocam sizi görmedim
kusura bakmayın



  Alıntı
Bu mesajı beğenenler:
#4
aydın3838;
Hiç kusur olurmu. Bilakis memnun oluruz
Teşekküre gerek yok, Taş atın yeter!!!



  Alıntı
Bu mesajı beğenenler:
#5
Burda da aynı sonucu veren farklı bir algoritma var:

https://tckimlik.nvi.gov.tr/TCKimlikNo/Dogrulama.aspx

C
  1. function CheckTCKimlikNo(sender,args)
  2. {
  3. var textBoxValue = args.Value;
  4.  
  5. if (textBoxValue == undefined || textBoxValue.length == 0)
  6.  {args.IsValid=true;return;
  7.  }
  8.  
  9. if (textBoxValue.length != 11)
  10.  {args.IsValid=false;return;
  11.  }
  12.  
  13. var tCKimlikNo = new Number(textBoxValue);
  14. var tmp = Math.floor(tCKimlikNo / 100);
  15. var tmp1 = Math.floor(tCKimlikNo / 100);
  16. var odd_sum, even_sum, total, chkDigit2, chkDigit1;
  17. var NumArray = new Array();
  18.  
  19. for (i = 8; i >= 0; i--)
  20.  {
  21.   NumArray.push(tmp1 % 10);
  22.   tmp1 = Math.floor(tmp1 / 10);
  23.  }
  24.  
  25.  odd_sum = NumArray[8] + NumArray[6] + NumArray[4] + NumArray[2] + NumArray[0];
  26.  even_sum = NumArray[7] + NumArray[5] + NumArray[3] + NumArray[1];
  27.  total = odd_sum * 3 + even_sum;
  28.  chkDigit1 = (10 - (total % 10)) % 10;
  29.  
  30.  odd_sum = chkDigit1 + NumArray[7] + NumArray[5] + NumArray[3] + NumArray[1];
  31.  even_sum = NumArray[8] + NumArray[6] + NumArray[4] + NumArray[2] + NumArray[0];
  32.  total = odd_sum * 3 + even_sum;
  33.  chkDigit2 = (10 - (total % 10)) % 10;
  34.  tmp = tmp * 100 + chkDigit1 * 10 + chkDigit2;
  35.  
  36.  if (tmp == tCKimlikNo)
  37.   {args.IsValid=true;
  38.   }
  39.  else
  40.   {args.IsValid=false;
  41.   }
  42. }



Buna göre bu da çeşit olsun. Wink

Visual Basic
  1. Function Tc_Dogrulama(TcNo As Double) As Boolean
  2.    Dim Arr(1 To 9)    As Byte
  3.    Dim Byt            As Byte
  4.    Dim Tekler_Toplam  As Integer
  5.    Dim Ciftler_Toplam As Integer
  6.    Dim Hane10_Toplam  As Integer
  7.    Dim Hane10_Kalan   As Integer
  8.    Dim Hane11_Toplam  As Integer
  9.    Dim Hane11_Kalan   As Integer    
  10.    
  11.    With CreateObject("VBScript.Regexp")
  12.        .Pattern = "\b[1-8]\d{9}[02468]\b"
  13.        If .test(TcNo) = False Then
  14.            Tc_Dogrulama = False
  15.            MsgBox "Biçim uygun değil!!!", vbExclamation
  16.            Exit Function
  17.        End If
  18.    End With
  19.    
  20.    For Byt = 1 To 9
  21.        Arr(Byt) = Mid(TcNo, Byt, 1)
  22.    Next
  23.    
  24.    Tekler_Toplam = Arr(1) + Arr(3) + Arr(5) + Arr(7) + Arr(9)
  25.    Ciftler_Toplam = Arr(2) + Arr(4) + Arr(6) + Arr(8)
  26.    
  27.    Hane10_Toplam = (Tekler_Toplam * 3) + Ciftler_Toplam
  28.    Hane10_Kalan = (10 - (Hane10_Toplam Mod 10)) Mod 10
  29.    
  30.    Hane11_Toplam = ((Ciftler_Toplam + Hane10_Kalan) * 3) + Tekler_Toplam
  31.    Hane11_Kalan = (10 - (Hane11_Toplam Mod 10)) Mod 10
  32.    
  33.    If TcNo = CDbl(Left(TcNo, 9) & Hane10_Kalan & Hane11_Kalan) Then
  34.        Tc_Dogrulama = True
  35.    Else
  36.        Tc_Dogrulama = False
  37.    End If
  38. End Function





  Alıntı
Bu mesajı beğenenler:
#6
Önceleri Paylaşmış Olduğum Bir Uygulama ...



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  [FORM] form klasör içinde dosya kontrolü obaysal42 4 2.495 29-12-2023, 10:24
Son Mesaj: burhanb
  Boş Alan Kontrolü (taruz) : Rapor Butonu prtkl 5 675 31-05-2023, 22:48
Son Mesaj: hnakis
  Boşluk Kontrolü Ve Tam Kayıt benuva 83 4.603 11-12-2022, 18:43
Son Mesaj: halily
  [FORM] Dosya Kontrolü oguzduman81 4 808 03-11-2020, 09:24
Son Mesaj: oguzduman81
  [FONKSiYON] Kaydet Butonu Kontrolü Ahmet51 10 2.180 09-07-2020, 18:41
Son Mesaj: Ahmet51
  Kaydetme Kontrolü Ve Kaydedildiyse Bilgi Mesajı Görüntülenmesi mgunes 4 1.070 10-03-2020, 09:53
Son Mesaj: mgunes
  [FONKSiYON] Tüm Alan Kontrolü Ve Güncelle Uyarısı Ahmet51 10 1.443 04-12-2019, 18:50
Son Mesaj: Ahmet51
  [FONKSiYON] Ceza Tarihi Alan Kontrolü Ahmet51 10 1.483 30-09-2019, 15:29
Son Mesaj: Ahmet51

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi