Delphi Can

Orjinalini görmek için tıklayınız: İntegerden karaktar temizleme
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Sayfalar: 1 2
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])));
Eğer sonuçlar net integer ise ;

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

yazmanız yeterli olacaktır.
(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
(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 ?
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
(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.
(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
Abs fonksiyonu değeri pozitif olarak verecektir.
Sonuc=Abs(StrToIntDef(Edit1.Text));
Teşekkür ederim.
(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;
Sayfalar: 1 2