Delph etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Delph etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

28 Ağustos 2012 Salı

Regular Expression(Delphi)

Bilindiği üzere artık delphi de de Regular Expressions kullanabiliyoruz.Bana da ömrü hayatım boyunca bugün kullanmak nasib oldu
Edite bilgi girerken ;
İlk iki karakteri ÜP ile başlayıp, devamındaki 7 karakterin sayısal olması, tire(-), T1,T2,T3 gibi şeklinde bir giriş olacaktı.
Yani ;
ÜP1234567-T1 (Doğru)
ÜP1234567-T2 (Doğru)
ÜP1234567-T3 (Doğru)

ÜP1234567-T5 (Yanlış) T1,T2,T3 olabilir
KS1234567-T1 (Yanlış) KS ile başlayamaz.
KS1H34567-T1 (Yanlış) 1 den sonra H karakteri var.0 ile 9 arasında bir değer olması lazım.

Bunun için kullandığım RegEx pattren [ÜP]{2})([0-9]{7})[-]([T][1-3]{1} budur.

uses'e RegularExpressions unitini ekleyin.

procedure TForm1.Button1Click(Sender: TObject);
begin
  try
    if TRegEx.IsMatch(editValue.Text, editPattern.Text) then
      ShowMessage('tamam')
    else
      ShowMessage('olmadı');
  except

    on E: Exception do
      ShowMessage(E.Message);
  end;
end;

Regular Expression kullanarak veri girişlerini kontrol etmek daha kullanışlı gibi geldi bana. Neden derseniz.
ÜP1234567-T1 şeklindeki bir verinin formatını kontrol etmek için.Bir ton takla atmamız gerecekti.Delphi tarafında.
Bir ton ifler,string parçalaması vs.
Kaldıki statik bir yöntem olacaktı.

Ama şimdi [ÜP]{2})([0-9]{7})[-]([T][1-3]{1} şeklindeki bir desen ile kontrol etmek daha kolay.Neden ?
Yarın derselerki ÜP ile başlamasın efendim.Benim bir dediğim,diğer dediğimi tutmaz.Bu Başlarken A ile C arasında değer girilsin derseler.
Sadece [A-C]{2})([0-9]{7})[-]([T][1-3]{1} diye deseni değiştirmesi daha teknik olacaktır.Diye düşünüyorum.
Hem deseni istersek harici bir dosyadan da okuma çok pis teknik olacaktır.

Ve bu iş hazırlanmış bir web uygulaması : http://gskinner.com/RegExr/
Desen hazırlarken ki karakterlerin anlamları adreste mevcut