• 13-07-2020, 15:17:33
    #1
    Arkadaşlar Merhaba;
    Delphi xe7 kullanıyorum.
    Ben bilgi güvenliği kapsamında şifre algoritması oluşturmak istiyorum.
    Örnek olarak en az 8 karakter olacak, içinde en az 1 büyük harf ve 1 küçük harf, 1 noktalama işareti olacak şeklinde.

    Karakter sayısını alıyorum ama string bir ifadenin içinde büyük harf varmı diye nasıl kontrol edeceğimi bilemiyoum.

    bunun bir fonksiyonu varmı dır. yoksa karakterleri diziye atıp büyük mü diye mi kontrol etmeliyim bulamadım.

    Yardımcı olablecek arkadaşlara şimdiden çok teşekkür ederim.
  • 13-07-2020, 15:52:22
    #2
    Merhaba,
    Çok zamanım olmadığından performanslı bir şey yazamadım ama kaba mantığı bu, geliştirip kullanılmasını öneririm.
    Uses
     System.Character;
    
    function kontrolet(str:String):Boolean;
    var
      i: integer;
      durum: array[0..2] of Boolean;
    begin
      if str.Trim ='' then
      exit(false);
      durum[0] := false; durum[1] := false; durum[2] := false;
      for i := 0 to Length(str) do
      begin
        if str[i].IsUpper = true then
        durum[0] := True;
        if str[i].IsLower = true then
        durum[1] := True;
        if str[i].IsPunctuation = true then
        durum[2] := True;
      end;
      if (durum[0]=true)and(durum[1]=true)and(durum[2]=true) then
      Result := true;
    end;
  • 13-07-2020, 17:02:14
    #3
    Çok teşekkür ederim başkan sağol.
  • 14-07-2020, 07:58:12
    #4
    Delphi'de SysUtils fonksiyonu olan charInSet ile bunu kolaylıkla yapabilirsin.

    if charInSet(myChar, ['A'..'Z']) then
    begin 
        ShowMessage('Büyük harf');
    end
    else 
    if charInSet(myChar, ['a'..'z']) then
    begin
       ShowMessage('Küçük harf');
    end
    else
    begin
       ShowMessage('Harf veya sayı değil');
    end;