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.
Kod: Tümünü seç
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
Delphi XE ile hazırladığım örnek: Saygılarımla.
İsmail Kocacan