1 Son düzenleyen, ugurlu2001 (28.02.2011 15:39:01)

Konu: Dinamik Değişken Ataması.

Özetle yapmak istediğim aşağıdaki atamaları dinamik olarak yapmak.

Visual Fox Pro
*!*    MyString1 = 0

*!*    MyString1 = MyString1 + 1

Yazdığım kod şu şekilde :

Visual Fox Pro
LOCAL lcVariable, lnVarExtension

 
m.lcVariable = "MyString"
m.lnVarExtension = 1
 
LOCAL (m.lcVariable+Alltrim(Str(m.lnVarExtension))) && MyString1 değişkeni dinamik.
 
STORE 0 TO (m.lcVariable+Alltrim(Str(m.lnVarExtension)))  && MyString1 = 0
 
? m.lcVariable+Alltrim(Str(m.lnVarExtension)) && MyString1, değişkenin adı
? Textmerge(m.lcVariable+Alltrim(Str(m.lnVarExtension)))
 
? Evaluate((m.lcVariable+Alltrim(Str(m.lnVarExtension)))) && MyString1, değişkenin içeriği
 
* MyString1 = MyString1 + 1 && => Error, nasıl yapılır?
TextMerge(m.lcVariable+Alltrim(Str(m.lnVarExtension))) = Evaluate(m.lcVariable+Alltrim(Str(m.lnVarExtension)))  + 1

Değişkenin dinamik olarak atamasını nasıl yapabilirim?
İfadeyi TEXT / ENDTEXT bloğu içerisinde yazmayı düşündüm ama daha kısa bir alternatif arıyorum.

Yorumlar ve yardımlar için şimdiden teşekkür ediyorum.

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

2 Son düzenleyen, ugurlu2001 (28.02.2011 18:27:32)

Re: Dinamik Değişken Ataması.

Biraz uğraştırdı ama sonuç şu şekilde :

Visual Fox Pro
*!*    MyString1 = 0

*!*    MyString1 = MyString1 + 1
LOCAL lcVariable, lnVarExtension, lcResult
 
m.lcVariable = "MyString"
m.lnVarExtension = 1
 
LOCAL (m.lcVariable+Alltrim(Str(m.lnVarExtension))) && MyString1 değişkeni dinamik.
 
STORE 0 TO (m.lcVariable+Alltrim(Str(m.lnVarExtension)))  && MyString1 = 0
 
? m.lcVariable+Alltrim(Str(m.lnVarExtension)) && MyString1, değişkenin adı
? Textmerge(m.lcVariable+Alltrim(Str(m.lnVarExtension)))
 
? Evaluate((m.lcVariable+Alltrim(Str(m.lnVarExtension)))) && MyString1, değişkenin içeriği
 
lcResult = Textmerge(m.lcVariable+Alltrim(Str(m.lnVarExtension))) + ;
                    " = " + ;
                    Textmerge(m.lcVariable+Alltrim(Str(m.lnVarExtension))) + "  +  1 "
?lcResult
&lcResult
* MyString1 = MyString1 + 1 && => Expected Result ?
? Evaluate((m.lcVariable+Alltrim(Str(m.lnVarExtension)))) && MyString1, değişkenin son hali
Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

3

Re: Dinamik Değişken Ataması.

Visual Fox Pro
LOCAL lcVariable, lnVarExtension

 
m.lcVariable = "MyString"
m.lnVarExtension = 1
 
LOCAL (m.lcVariable+Alltrim(Str(m.lnVarExtension))) && MyString1 degiskeni dinamik.
 
STORE 0 TO (m.lcVariable+Alltrim(Str(m.lnVarExtension)))  && MyString1 = 0
 
? m.lcVariable+Alltrim(Str(m.lnVarExtension)) && MyString1, degiskenin adi
? Textmerge(m.lcVariable+Alltrim(Str(m.lnVarExtension)))
 
? Evaluate((m.lcVariable+Alltrim(Str(m.lnVarExtension)))) && MyString1, degiskenin içerigi
 
 
 
 
 
STORE evaluate(m.lcVariable+Alltrim(Str(m.lnVarExtension))) + 1 ;
    TO (m.lcVariable+Alltrim(Str(m.lnVarExtension)))
 
? Evaluate((m.lcVariable+Alltrim(Str(m.lnVarExtension)))) && MyString1, degiskenin içerigi

4

Re: Dinamik Değişken Ataması.

Visual Fox Pro
CREATE CURSOR deneme (ay1 n(2),ay2 n(2),ay3 n(2),ay4 n(2),ay5 n(2),ay6 n(2),ay7 n(2),ay8 n(2),ay9 n(2),ay10 n(2),ay11 n(2),ay12 n(2)) 

SCATTER MEMVAR blank
FOR k=1 TO 6
    FOR j=1 TO 12
        mystring1="m.ay"+ALLTRIM(STR(j))
        &mystring1=&mystring1+j
    ENDFOR
INSERT INTO deneme FROM memv
ENDFOR
brow norm

5

Re: Dinamik Değişken Ataması.

Üstat, Timuçin abi; Teşekkür ederim ... smile

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü