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
Hiç yorum yok:
Yorum Gönder