Veri integer mı? string mi?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
kara_kule06
Üye
Mesajlar: 150
Kayıt: 18 Nis 2006 02:15
Konum: ankara/polatlı
İletişim:

Veri integer mı? string mi?

Mesaj gönderen kara_kule06 »

merhaba arkadaşlar,

excelden bir sütundaki hücreleri satır satır okuyup sayı olanları bir adet memoya sayı olmuyanları ise başka bir memoya atmak istiyorum. C# ta isnumeric diye bir fonk. var. Delphide bunu nasıl yapabilirim.
İlim öğrenmek akıntıya karşı yüzmek gibidir. Ara verildiği zaman gerilenir...
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

Merhaba

kod aşağıda ama lütfen aramayı kullanın. "delphi isnumeric dediğinizde google da bir ton örnek var. forum sürekli aynı soruların tekrar ettiği bir plağa benziyor yoksa. aşağıda gördüğünüz gibi kodun öyle extra zor bir tarafıda yok

Kod: Tümünü seç

function TForm1.IsNumeric(s: string): boolean;
var i : integer;
var test:string;
begin
 for i:= 0 to 47 do
   begin
     if (pos(chr(i),s) > 0) then
       begin
         result := false;
       end;
   end;
// 48-57 arası atlanıyor onlar rakam 0-9
 for i := 58 to 255 do
   begin
     if (pos(chr(i),s)>0) then
       begin
          result := false;
       end

 end;

end;
En son ikutluay tarafından 14 Şub 2008 05:04 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
kara_kule06
Üye
Mesajlar: 150
Kayıt: 18 Nis 2006 02:15
Konum: ankara/polatlı
İletişim:

Mesaj gönderen kara_kule06 »

Teşekkürler hocam hemen deniyorum....
İlim öğrenmek akıntıya karşı yüzmek gibidir. Ara verildiği zaman gerilenir...
Kullanıcı avatarı
MehmetZahit
Üye
Mesajlar: 70
Kayıt: 04 Tem 2007 08:39

Mesaj gönderen MehmetZahit »

Kod: Tümünü seç

implementation

{$R *.dfm}

function IsNUmeric(const s: string): boolean;

var
 i: integer;

begin
    Result := True;
 
    for i:=1 to length(s) do
        if not (s[i] in ['0'..'9']) then
            begin
            Result := False;
            Break; 
            end;
end;


procedure TForm1.button1Click(Sender: TObject);
var 
    test: string;

begin

    test := inputbox('Isnumeric','Birşeyler girin','');
    if (isnumeric(test)) 
        then ShowMessage('Sadece numara girdiniz');
        else Showmessage('Alfanumerik karakterler girdiniz');
end;

end.
daha güzel bir kod istersen bunu dene
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Mesaj gönderen Battosai »

function TForm1.IsNumeric(s: string): boolean;
begin
if strtointdef(s,0)<>0 then
result:=True
else
result:=False;
end;
Kullanıcı avatarı
MehmetZahit
Üye
Mesajlar: 70
Kayıt: 04 Tem 2007 08:39

Mesaj gönderen MehmetZahit »

Battosai yazdı:function TForm1.IsNumeric(s: string): boolean;
begin
if strtointdef(s,0)<>0 then
result:=True
else
result:=False;
end;
bu kod daha güzelmiş fakat değer 0 ise result = false oluyor yani 0 rakamını alfanümerik olarak görecek.
Kullanıcı avatarı
kara_kule06
Üye
Mesajlar: 150
Kayıt: 18 Nis 2006 02:15
Konum: ankara/polatlı
İletişim:

Mesaj gönderen kara_kule06 »

cevaplarınız için teşekkürler arkadaşlar. ikutluay ın kodu işimi gördü ama ilk fırsatta diğerlerinide deniyeceğim.
En son kara_kule06 tarafından 15 Şub 2008 01:25 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
İlim öğrenmek akıntıya karşı yüzmek gibidir. Ara verildiği zaman gerilenir...
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Şu daha garanti bir çözüm gibi:

Kod: Tümünü seç

function IsNumeric(const aText: string): Boolean;
begin
  Result := FALSE;
  try
    StrToFloat(aText);
    Result := TRUE;
  except
  end;
end;
[/b]
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Eskiden kalma bir teknik de benden (StrToIntDef'te de bu kullanılmış):

Kod: Tümünü seç

function isNumeric(const S:String):Boolean;
var Sayi:Real; hata:Integer;
begin
  Val(S,Sayi,hata);
  Result:=hata=0;
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

sabanakman yazdı:Eskiden kalma bir teknik de benden (StrToIntDef'te de bu kullanılmış):

Kod: Tümünü seç

function isNumeric(const S:String):Boolean;
var Sayi:Real; hata:Integer;
begin
  Val(S,Sayi,hata);
  Result:=hata=0;
end;
Kendi verdiğim kodda dahil en mmantıklı ve sağlam kod bu sanırım...

Hep derim her programcının bir yoğurt yiyişi vardır.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Cevapla