1

Konu: operator/operand tyep mistmatch hatası veriyor

herkese kolay gelsin.ben şöyle bir deniyorum ama hata veriyor neden acaba
bir yardımcı olursanız sevinirim..
FOR i=0 TO 15
saymaislem=i+". sayi adeti"
WAIT WINDOW saymaislem NOWAIT
NEXT

operator/operand tyep mistmatch hatası veriyor neden acaba

2

Re: operator/operand tyep mistmatch hatası veriyor

FOR i=0 TO 15
saymaislem=i+VAL(". sayi adeti")
WAIT WINDOW saymaislem NOWAIT
NEXT
--------
yada
FOR i=0 TO 15
saymaislem=STR(i)+(". sayi adeti")
WAIT WINDOW saymaislem NOWAIT
NEXT

3

Re: operator/operand tyep mistmatch hatası veriyor

FOR i=0 TO 15
saymaislem=i+VAL(". sayi adeti")
WAIT WINDOW saymaislem NOWAIT
NEXT

bu olmaz smile

4 Son düzenleyen, avrasya34 (31.07.2008 01:18:38)

Re: operator/operand tyep mistmatch hatası veriyor

ercan yazdı:

FOR i=0 TO 15
saymaislem=i+VAL(". sayi adeti")
WAIT WINDOW saymaislem NOWAIT
NEXT

bu olmaz smile


evet ama hatada vermiyor smile arkadaş hatadan kurtulmak isiyordu zaten

ikincisi istediği işi yapar sanırım.

eskiden dos altında ne güzel döngüler yapardım. hey gidi gençlik

5

Re: operator/operand tyep mistmatch hatası veriyor

cevap veren herkese teşekkürler.

6 Son düzenleyen, cetinbasoz (31.07.2008 11:57:22)

Re: operator/operand tyep mistmatch hatası veriyor

buraksavasyavuz yazdı:

herkese kolay gelsin.ben şöyle bir deniyorum ama hata veriyor neden acaba
bir yardımcı olursanız sevinirim..
FOR i=0 TO 15
saymaislem=i+". sayi adeti"
WAIT WINDOW saymaislem NOWAIT
NEXT

operator/operand tyep mistmatch hatası veriyor neden acaba


i bir sayi. ".sayi adeti" ise karakter. Sayi ile Karakter farkli tipler. Farkli tipleri toplayamazsin.

Elma + Armut olmaz yani.

Farkli tipleri toplamanin yolu onlari oratk tipe cevirmek. Sonucu karakter  olarak istedigine gore i'yi karaktere cevir ve topla (iki karakter dizisini ekle). Asagida birkac yolu var:

Visual Fox Pro
FOR i=0 TO 15

  saymaislem=ltrim(str(m.i))+". sayi adeti"
  WAIT WINDOW m.saymaislem NOWAIT
NEXT

Visual Fox Pro
FOR i=0 TO 15

  saymaislem=transform(m.i)+". sayi adeti"
  WAIT WINDOW m.saymaislem NOWAIT
NEXT

Visual Fox Pro
FOR i=0 TO 15

  saymaislem=textmerge( "<< m.i >>. sayi adeti")
  WAIT WINDOW m.saymaislem NOWAIT
NEXT

wait window nowait kullandigin icin bu islemin sadece sonuncusunu gormeye vaktin olur. Onun yerine:

? m.saymaislem

kullansan daha iyi.


Bu arada onemli bir tavsiye: Tek harflik degiskenler kullanma. Kullanirsan da a-j araligini kullanma. m'i hic kullanma. Hafiza degiskenlerinin onune m. koy.


Zeki,

i + val(". sayi adeti")

hata vermez cunku stringler her zaman sayisal degerlere val() ile hata vermeden cevrilir. VFPnin hata ya da faydali ozellik kabul edilebilecek davranisi (ben fayda olarak zaman zaman kullaniyorum):

Visual Fox Pro
val("zeki") = 0

val("123") = 123
val("123 - A") = 123
val("123.2 Bolum") = 123.2
val("123 - 23") = 123
 
eval("123 - 23") = 100
eval("123 ") = 123
eval("123 - A") && hata