1 Son düzenleyen, smentes (13.04.2014 12:06:22)

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?

2 Son düzenleyen, aydinufuk (13.04.2014 17:51:24)

Re: İlginç Bir Durum

Visual Fox Pro
? MAX("A","a")   => "A"

? MAX("A","b")  => "b"
? MAX("a","A")   => "a"

anlamadım ?

3 Son düzenleyen, aydinufuk (13.04.2014 18:01:22)

Re: İlginç Bir Durum

Visual Fox Pro
? 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.

4

Re: İlginç Bir Durum

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.

5

Re: İlginç Bir Durum

smentes yazdı:

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.

Visual Fox Pro
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.

6 Son düzenleyen, smentes (13.04.2014 19:07:09)

Re: İlginç Bir Durum

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.

7

Re: İlginç Bir Durum

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.

8

Re: İlginç Bir Durum

Bende collate Turkish. Codepage 1254.
"zz" yazarak şimdilik problemi çözdüm. İki karakter olunca problem yok