String alanı sorgulama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

String alanı sorgulama

Mesaj gönderen haydarxxx »

Slm lar

dbedit alanım string verilerileri içeriyor.Ve bu alana harflerden oluşan değerler(tek bir harf) yada sayılardan oluşan değerler giriliyor veya Null olarak kalıyor.Sayı ve rakmadan oluşan değerler girilmiyor.
Sorum şu
Bu alana Integer bir değer girildiğini nasıl anlayabilirim.
Yapmak istediğim şu
if komutu ile bir sorgulama yaptırmak istiyorum bu alana sayısal değer girilmiş ise şu işlemi yap komutu vereceğim.Eğer string (yani harfden oluşan)bir değer ise başka bir işlem yaptırmak istiyorum.

Kod: Tümünü seç

if IBDataSet1.FieldByName('PZT').AsString='S' then
begin
IBDataSet1.Edit;
IBDataSet1.FieldByName('SEVKPZTTOP').AsInteger:=Form1.Datasetalttop.FieldByName('PZTE').AsInteger+Form1.Datasetalttop.FieldByName('PZTM').AsInteger;
IBDataSet1.FieldByName('INTPZT').AsInteger:=0;
edit1.Text:=Inttostr(strtoInt(edit1.Text)+1);
IBDataSet1.post;
end;


if IBDataSet1.FieldByName('PZT').IsNull then
Begin
IBDataSet1.Edit;
IBDataSet1.FieldByName('INTPZT').AsInteger:=0;
IBDataSet1.post;
end;
3. koşul olarak IBDataSet1.FieldByName('PZT').AsString değerine integer değeri girilmişse şu işlemi yap bölümünü yapamadım.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: String alanı sorgulama

Mesaj gönderen conari »

3. Karşılaştırma bunların dışında bir şey olduğundan

Kod: Tümünü seç

end else begin 
ile yapabilirsin.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Re: String alanı sorgulama

Mesaj gönderen haydarxxx »

hocam onuda denedim ama burada alandaki değerin 3 olasılığı var 'harf' Null ve Rakam.Bu alan Rakam olduğunda bu rakamı değerini integer olan bir alana taşımam gerekiyor.Alanı string (harf içerikli)gördüğünde taşımayı iptal ettireceğim null ise sıfır yazdıracağım.Bu mantığa göre else durumu olmuyor çünkü else 2 olasılığa bakıyor.
qamyoncu
Üye
Mesajlar: 266
Kayıt: 12 Tem 2008 04:30

Re: String alanı sorgulama

Mesaj gönderen qamyoncu »

Kod: Tümünü seç

if null ise then
begin
....
...
..
.
exit;
end;

if rakam ise then
begin
....
...
..
.
end
else
begin
....
...
..
.
end;
Batuhan TAŞDÖVEN
'Yükseldikçe küçülen bir uçurtma..'
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Re: String alanı sorgulama

Mesaj gönderen haydarxxx »

:shock: hocam o kadar kolay değil onu dendim ben zaten
if rakam ise then
rakam olduğunu nasıl anlayacak
Kullanıcı avatarı
proteknikblg
Üye
Mesajlar: 35
Kayıt: 27 Nis 2006 08:39
Konum: Sivas
İletişim:

Re: String alanı sorgulama

Mesaj gönderen proteknikblg »

Kod: Tümünü seç

var : int_deger:integer;
Begin
        try
                int_deger:=strtoint( dbedit);
                // girilen değer sayısal sayısal işlemi yap
        except
               if dbedit is null then
               begin
                       // girilen değer null 
               end
               else
               begin
                       // girilen değer string string işlemini yap
               end;
        end;
End;
try , except arasında integer a çevirirken hata oluşursa except , end arasını işleyecektir hata oluşmazsa sayısal olduğu tespit edilmiş olur except end arasında ise iki olasılık kalıyor ya null dur yada string bundan sonrası sana kalmış
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: String alanı sorgulama

Mesaj gönderen emin_as »

Aşagıdaki kod işinizi görür.

Kod: Tümünü seç

var
  i : integer;
  s1 : string;
.......
if ibdatabase1.FieldByName('alan').isnull then
begin
  //  alan null
end else
begin
   s1:=ibdatabase1.FieldByName('alan').Asstring;
   i:=strtointdef(s1,-1);
   if  i > -1 then
   begin
     //  alan rakam i degiskenini kullanabilirsin
  end else
  begin
    // alan string -s1 i kullanabilirsin
  end;
end;
Cevapla