İlginç Bir Hata (Toplama Yapmıyor)

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Commandx
Üye
Mesajlar: 181
Kayıt: 01 Oca 2008 05:34

İlginç Bir Hata (Toplama Yapmıyor)

Mesaj gönderen Commandx »

Arkadaşlar otuz adet Edite Girdiğim 30 adet virgüllü sayıları topluyorum (4,3 - 7,5 - 6,5 gibi) ama bu rakamların bulunduğu editlerde harflerde bulunuyor, rakamları harflerden sıyırmak için alttaki isstranumber fonksiyonundan yararlanıyorum
Bu Toplanan sayıları Kendi bilgisayarımda topluyor ve veritabanına yazıyorum bende çalışıyor buraya kadar sıkıntı yok.
Ancak Başka bilgisayarlara götürüp kurduğumda sayılar toplanmıyor veritabanına yazmıyor.

strtofloat, floattostr dönüşümlerini de yapıyorum.
Bu durum Bazı bilgisayarlarda toplama yapıyor veritabanına yazıyor ama bazı bilgisayarlarda bu işlem hiç gerçekleşmiyor.
Daha önce virgülsüz integer tam sayılarda sıkıntı yoktu virgüllü sayıları toplayınca oluşmaya başladı.
bunun nedenini bilen varmı?
acaba Bölgesel ayarlarda dil seçenekleri kısmında bir ayarlama yapılması mı gerekiyor?
XP kurulu makinalarda çalışıyor
Windows 7 -8 10 Yüklü bilgisayarların Bazılarında çalışıyor bazılarında çalışmıyor hata da vermiyor ne ilginç bir şey. 1 aydır bulmaya çalışıyorum bunu

Aklıma gelen şey , bu alttaki fonksiyonda çalışmayan pc lerde uyumsuz bir durum mu oluşuyor anlayamadım

Kod: Tümünü seç

function IsStrANumber(const S: string): Boolean;
var
  P: PChar;
begin
  P      := PChar(S);
  Result := False;
  while P^ <> #0 do
  begin
    if not (P^ in ['0'..'9']) then Exit;
    Inc(P);
  end;
  Result := True;
end;
http://www.delphibasics.co.uk/RTL.asp?Name=DaysBetween
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: İlginç Bir Hata (Toplama Yapmıyor)

Mesaj gönderen freeman35 »

decimal ve thousands separator counstand larını değiştir.
hangi sürümde başlamıştı hatırlamıyorum ama delphi unicode kullanan sürümlerinde string i array olarak kullanabilirsin. pchar a gerek yok
ord( S[x] ) gibi kullanabilirsin
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
aligel54
Üye
Mesajlar: 41
Kayıt: 20 Nis 2009 11:34

Re: İlginç Bir Hata (Toplama Yapmıyor)

Mesaj gönderen aligel54 »

Aşağıdaki şekilde bir fonksiyon oluşturabilirsin.

Kod: Tümünü seç

function SayiyaCevir(GelenSTR:String):double;
var
  i:integer;
  Yazi:String;
  BolgeFormat:TformatSettings;  
begin
  BolgeFormat.DecimalSeparator := ','; 
  Yazi := '';
  for i := 1 to Length(GelenSTR) do
    if GelenSTR[i] in ['0'..'9', ','] then Yazi := Yazi + GelenSTR[i];

  Result := StrToFloatDef(Yazi, 0, BolgeFormat);
end;
Cevapla