Konu: İlginç Bir Durum
Vdbase ile;
a="Z"
b="z"
c=max(a,b)
Sonuç : b yani Küçük z
foxpro 9.0 ile;
a="Z"
b="z"
c=max(a,b)
Sonuç : a yani Büyük Z
Sizce Foxpro neden yanlış değer veriyor?
Giriş yapmadınız. Lütfen giriş yapın yada kayıt olun.
fox4um » Kodlama ve Komutlar » İlginç Bir Durum
Vdbase ile;
a="Z"
b="z"
c=max(a,b)
Sonuç : b yani Küçük z
foxpro 9.0 ile;
a="Z"
b="z"
c=max(a,b)
Sonuç : a yani Büyük Z
Sizce Foxpro neden yanlış değer veriyor?
? MAX("A","a") => "A"
? MAX("A","b") => "b"
? MAX("a","A") => "a"
anlamadım ?
? MAX("b","A") => "b"
Şimdi anladım..
Karakter kıyaslamasında "a" ile "A" değerini aynı kabul ediyor. Hangisini önce görürse onu veriyor.
"b" ile "A" kıyaslamasında upper/ lower durumuna bakmadan kıyaslama yapıp "b" değerini veriyor. Bu kıyaslamayı yaparken ascii tabloyu kullanıyor.
Küçük z ascii kodu bakımandan daha büyük. Ancak foxpro büyük olarak Z yi görüyor. Halbuki Vdbase programı ile kodu çalıştırınca doğru veriyor. Foxpro nun niçin yanlış verdiğini anlayamadım.
Küçük z ascii kodu bakımandan daha büyük. Ancak foxpro büyük olarak Z yi görüyor. Halbuki Vdbase programı ile kodu çalıştırınca doğru veriyor. Foxpro nun niçin yanlış verdiğini anlayamadım.
max("z", "Z") => "z"
max("Z","z") =>"Z"
bende böyle çıkıyor. z ile Z yi eşit kabul ediyor. İlk terimi geri döndürüyor..
Harfler aynı değilse ascii tabloya bakıyor.
a="Zafer"
b="z"
c=max(a,b)
Sonuç : a yani Büyük Z. Doğrusu küçüz z olmalıydı
Bunu şu şekilde kullanıyorum.
if personel.adi_soyadi > b
exit
endif
Burada Zafer ismini büyük görüyor. Acaba karakter sayısıyla mı ilgili?
Eğer b="zz" olursa doğru sonucu veriyor.
Vdbase de yazılan bir programı foxproya geçiriyorum.
Orada düzgün çalışıyor. Yani döngü içine girmiyor.
Sanirim sorun collate ya da codepage. Bende collate machine:
?max("z", "Z") - "z"
?max("Z", "z") - "z"
? "z" > "Z" - .T.
? "Z" > "z" - .F.
?ASC("z") > ASC("Z")
?ASC("zafer") > ASC("Zafer")
ile ascii olarak karsilastirabilirsiniz.
Bende collate Turkish. Codepage 1254.
"zz" yazarak şimdilik problemi çözdüm. İki karakter olunca problem yok
fox4um » Kodlama ve Komutlar » İlginç Bir Durum