Numerik ve alfanumerik karekterleri ayrıştırma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
AfterPost
Üye
Mesajlar: 127
Kayıt: 12 Tem 2014 10:22

Numerik ve alfanumerik karekterleri ayrıştırma

Mesaj gönderen AfterPost »

Merhabalar
Edit1.text:=WXN0A99R38222332424601002
edit 1 okuduğu bu değerleri numerik ve alfanumerik olarak nasıl ayrıştırabiliriz
islenilen çıktı
Edit2.Text:=WXNAR
Edit3.Text:=09938222332424601002

Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Numerik ve alfanumerik karekterleri ayrıştırma

Mesaj gönderen fesiharslan »

Merhaba;
Uses bölümüne Character referansını ekleyin.

Kod: Tümünü seç

 Uses
   System.Character; 
Daha sonra aşağıdaki kod yapısı ile metinsel bir yaptı metin ve sayı olarak ayırabilirsiniz.

Kod: Tümünü seç

var
  Metin,karakterSayi,karaktetMetin: String;
  i: integer;
begin
  Metin := Edit1.Text;
  karakterSayi:='';
  karaktetMetin:='';
  for i := 1 to Length(Metin) do
  begin
    if IsDigit(Metin[i]) then
      karakterSayi:=karakterSayi+Metin[i]
       else
        karaktetMetin:=karaktetMetin+Metin[i];
  end;
  Edit2.Text := karaktetMetin; //Metin kısmı
  Edit3.Text := karakterSayi; //Sayısal kısmı
end;
İyi çalışmalar....

AfterPost
Üye
Mesajlar: 127
Kayıt: 12 Tem 2014 10:22

Re: Numerik ve alfanumerik karekterleri ayrıştırma

Mesaj gönderen AfterPost »

merhabalar referans kodu hata veriyor;
Build
[Fatal Error] Unit_DB_.pas(7): File not found: 'System.Character.dcu'

Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Numerik ve alfanumerik karekterleri ayrıştırma

Mesaj gönderen fesiharslan »

Merhaba;
System.Character, Delphi XE2 ve daha üst sürümlerinde yer almaktadır. Bu üst sürümlerden birini kullanıyorsanız, System path'ini tanımlamamış veya yalnışlıkla silmişsiniz demektir.
Bunun için Delphi menüsünden Library Path kısmına $(BSD)\Lib ekleyin.

İyi çalışmalar...

Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4731
Kayıt: 09 Ara 2003 08:13
Konum: Ankara
İletişim:

Re: Numerik ve alfanumerik karekterleri ayrıştırma

Mesaj gönderen mrmarman »

Merhaba,
Kandiliniz mübarek olsun diyerek minik bir fonksiyon ile destek sunalım.
Delphi sürümlerine bağımlı değildir.
IF sorgusunu bir normal bir de NOT hali ile kurarak mantığı sergilenmek istenmiştir.
Mantık göreceğiniz üzere parametre olarak verilen string ifadeyi baştan başlayarak karakter karakter elimine ederken 0-9 arasında mıdır şeklinde karşılaştırmasını yapıyor.

Kod: Tümünü seç

function Numeric( strIcerik:String; boolNumeric:boolean ): string;
begin
  while strIcerik <> '' do begin
    if     ( strIcerik[1] in ['0'..'9'] ) and     boolNumeric
      then result := result + strIcerik[1]
    else
    if NOT ( strIcerik[1] in ['0'..'9'] ) and NOT boolNumeric
      then result := result + strIcerik[1];
    system.Delete(strIcerik, 1, 1);
  end;
end;
Kullanımı :

Kod: Tümünü seç

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  Edit1.text := 'WXN0A99R38222332424601002';
  Edit2.Text := Numeric( Edit1.Text, False );
  Edit3.Text := Numeric( Edit1.Text, True  );
end;

başarılar.
Resim Resim

AfterPost
Üye
Mesajlar: 127
Kayıt: 12 Tem 2014 10:22

Re: Numerik ve alfanumerik karekterleri ayrıştırma

Mesaj gönderen AfterPost »

Ellerinize sağlık fesihaslan ve mrmarman

Cevapla