Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
İntegerden karaktar temizleme
#1
Merhaba.

Integer olan sonuc  alanım var bu alanda sayıların durumuna göre (-) karakteri çıkıyor, StringReplace bu karakteri nasıl temizlerim?  veya başka yöntem ile 

Örnek:
-22;

Sonuc := IntToStr(StringReplace(StrToInt(Sonuc, '-', '',[rfReplaceAll])));
Hayat bazen güzel olabiliyor.
Cevapla
#2
Eğer sonuçlar net integer ise ;

if sonuc<0 then sonuc:=sonuc*-1;

yazmanız yeterli olacaktır.
WWW
Cevapla
#3
(24-07-2018, Saat: 18:16)Dostk Adlı Kullanıcıdan Alıntı: Merhaba.

Integer olan sonuc  alanım var bu alanda sayıların durumuna göre (-) karakteri çıkıyor, StringReplace bu karakteri nasıl temizlerim?  veya başka yöntem ile 

Örnek:
-22;

Sonuc := IntToStr(StringReplace(StrToInt(Sonuc, '-', '',[rfReplaceAll])));

Değer 0 < ise * -1 yapsanız olmuyor mu? Yanlış anlamış olabilirim.

(24-07-2018, Saat: 18:19)esistem Adlı Kullanıcıdan Alıntı: Eğer sonuçlar net integer ise ;

if sonuc<0 then sonuc:=sonuc*-1;

yazmanız yeterli olacaktır.

aynı anda  Wink
Cevapla
#4
(24-07-2018, Saat: 18:16)Dostk Adlı Kullanıcıdan Alıntı: Merhaba.

Integer olan sonuc  alanım var bu alanda sayıların durumuna göre (-) karakteri çıkıyor, StringReplace bu karakteri nasıl temizlerim?  veya başka yöntem ile 

Örnek:
-22;

Sonuc := IntToStr(StringReplace(StrToInt(Sonuc, '-', '',[rfReplaceAll])));

Madem bu değişken - değer almayacak yani unsigned olacak neden Integer tanımlıyorsun UInt64  UInt32 veya Cardinal olarak tanımla ?
WWW
Cevapla
#5
UInt64  UInt32 veya Cardinal denedim bu sefer kodda başka yerde kullandığım sonuç:-1; alanında sorun yaşıyorum.

(24-07-2018, Saat: 18:33)yhackup Adlı Kullanıcıdan Alıntı:
(24-07-2018, Saat: 18:16)Dostk Adlı Kullanıcıdan Alıntı: Merhaba.

Integer olan sonuc  alanım var bu alanda sayıların durumuna göre (-) karakteri çıkıyor, StringReplace bu karakteri nasıl temizlerim?  veya başka yöntem ile 

Örnek:
-22;

Sonuc := IntToStr(StringReplace(StrToInt(Sonuc, '-', '',[rfReplaceAll])));

Madem bu değişken - değer almayacak yani unsigned olacak neden Integer tanımlıyorsun UInt64  UInt32 veya Cardinal olarak tanımla ?

Ben mi yanlış anladım, siz mi? yanlış anladınız bilemiyorum. Big Grin

Örnek:
12-13= -01 çıkıyor burada - temizleyip 01 olarak almam lazım
Hayat bazen güzel olabiliyor.
Cevapla
#6
(24-07-2018, Saat: 18:16)Dostk Adlı Kullanıcıdan Alıntı: Merhaba.

Integer olan sonuc  alanım var bu alanda sayıların durumuna göre (-) karakteri çıkıyor, StringReplace bu karakteri nasıl temizlerim?  veya başka yöntem ile 

Örnek:
-22;

Sonuc := IntToStr(StringReplace(StrToInt(Sonuc, '-', '',[rfReplaceAll])));


String içindeki rakamlar hariç herşeyi silmek için aşağıdaki fonksiyonu yazıp kullanmıştım. İşlem sonucu String Değer döndürüyor. Eğer içerikte rakam yoksa 0 Döndürüyor. işinize yarar sanırım.


function StringClear(Data:String):string;
var
  sira : integer;
  temp : String;
begin
temp := '';
  for sira:=0 to Length(Data) do
  begin
    if (Data[sira] in ['0'..'9']) then
      temp := temp + Data[sira];
  end;
 if temp='' then  result := '0'
  else
  result := temp;
end; 
 


Kullanımı :

Caption := StringClear(Edit1.text);


Edit1.text := '-21lkıj87';

Caption := StringClear(Edit1.text); 

Sonuç : 2187


Eğer işlem sonuçları Eksi çıkıyor ve siz Artı olmasını istiyorsanız "ABS()" fonksiyonunu kullanın.
Cevapla
#7
(24-07-2018, Saat: 18:41)Dostk Adlı Kullanıcıdan Alıntı: UInt64  UInt32 veya Cardinal denedim bu sefer kodda başka yerde kullandığım sonuç:-1; alanında sorun yaşıyorum.

(24-07-2018, Saat: 18:33)yhackup Adlı Kullanıcıdan Alıntı: Madem bu değişken - değer almayacak yani unsigned olacak neden Integer tanımlıyorsun UInt64  UInt32 veya Cardinal olarak tanımla ?

Ben mi yanlış anladım, siz mi? yanlış anladınız bilemiyorum. Big Grin

Örnek:
12-13= -01 çıkıyor burada - temizleyip 01 olarak almam lazım

O halde hesabınız yanlış olacak , 12 -13= -01 işlemi doğrudur , siz -'yi kaldırarak işlemi hatalı yapıyorsunuz Smile
WWW
Cevapla
#8
Abs fonksiyonu değeri pozitif olarak verecektir.
Sonuc=Abs(StrToIntDef(Edit1.Text));
Cevapla
#9
Teşekkür ederim.
Hayat bazen güzel olabiliyor.
Cevapla
#10
(24-07-2018, Saat: 18:33)yhackup Adlı Kullanıcıdan Alıntı:
(24-07-2018, Saat: 18:16)Dostk Adlı Kullanıcıdan Alıntı: Merhaba.

Integer olan sonuc  alanım var bu alanda sayıların durumuna göre (-) karakteri çıkıyor, StringReplace bu karakteri nasıl temizlerim?  veya başka yöntem ile

Örnek:
-22;

Sonuc := IntToStr(StringReplace(StrToInt(Sonuc, '-', '',[rfReplaceAll])));

Madem bu değişken - değer almayacak yani unsigned olacak neden Integer tanımlıyorsun UInt64  UInt32 veya Cardinal olarak tanımla ?

Bekledim ama kimsenin gözüne çaprmaması ilginç oldu,
Aşağıdaki kodda card değişekenin değerini  ide'de denemeden söyleyecek var mı Smile

Sizce kaç olur ?

var
card:Cardinal;
begin
 card := Cardinal(-1);
end;
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Çerez temizleme Mete 1 835 22-11-2022, Saat: 23:24
Son Yorum: mkysoft
  Uygulama Önbelleğini Temizleme narkotik 1 2.412 01-10-2018, Saat: 22:49
Son Yorum: quiet1day



Konuyu Okuyanlar: