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 10:31
Konum: izmir

String alanı sorgulama

Mesaj gönderen haydarxxx » 14 May 2009 11:48

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 02:10
Konum: İstanbul & Gebze Karışık

Re: String alanı sorgulama

Mesaj gönderen conari » 15 May 2009 07:17

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 10:31
Konum: izmir

Re: String alanı sorgulama

Mesaj gönderen haydarxxx » 15 May 2009 03:59

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 03:30

Re: String alanı sorgulama

Mesaj gönderen qamyoncu » 15 May 2009 08:59

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 10:31
Konum: izmir

Re: String alanı sorgulama

Mesaj gönderen haydarxxx » 15 May 2009 09:47

: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: 34
Kayıt: 27 Nis 2006 07:39
Konum: Sivas
İletişim:

Re: String alanı sorgulama

Mesaj gönderen proteknikblg » 15 May 2009 10:45

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 09:05
Konum: izmir
İletişim:

Re: String alanı sorgulama

Mesaj gönderen emin_as » 16 May 2009 08:37

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