1

Konu: array to obj..

merhaba arkadaşlar,

bir sürü property si olan bir objem var . bu propertyleri bir table da memo alanina kaydetmet istiyorum. sonra tekrar okutup objeye cevirmek. bunun pratik yontemi var mi?

benim aklima gelen objeyi amembers() kullanarak bir iki boyutlu array e atmak. sonra bunu memo alanina kaydetmek. bu durumda bir obj property lerini arraya atmanın pratik bir yolu var mı?

şimdiden teşekkürler..

2

Re: array to obj..

.vcx   class  işine yaramıyor mu?

3

Re: array to obj..

VCX CLASS nasıl işime yarayacak anlamadım?

4

Re: array to obj..

amacın
1-o nesneyi istediğin zaman formlarda o şekliyle kullanmak mı
2-yoksa property değerlerini bir yere kaydedip  sadece bu değerleri mi okutmak.?
  1 ise vcx clas la olur. (property değerlerini sonradan elle değiştirmek suretiyle).
  2 ise memo alana , text dosyasına ya da tabloya da kaydedebilir ,  ordan okutabilirsin.

5

Re: array to obj..

sorduğum ikinci şık..bir memo alanına kaydetmek.
bunun için pratik bir yöntem var mı diye sormuştum..
diğer bir değişle runtime da . oluşturduğum bir objenini property lerini bir memo alanına gerektiğinde kaydetmek ve geriye tekrar memodan okutup objeye çevirmek..gibi

6

Re: array to obj..

property değerlerini değişkenlere aktarıp bir  .mem  dosyasına yazıp ,gerektiğinde tekrar okutarak formdaki property lere aktarabilirsin. umarım yardımcı oldum.

7

Re: array to obj..

evet o sekilde yapmak mumkun.
benim sorum bunun bir pratik yolu var mı sorusuydu. ama cevap gelmedigine göre yok.

8 Son düzenleyen, foxman (27.10.2008 21:45:39)

Re: array to obj..

Sanırım bu işine yarar. Currency data tipini koymadım umarım gerekmez.


Visual Fox Pro
CLEAR 

CLEAR ALL
odeneme   = Createobject("deneme")
opropstore=Createobject("propstore")
 
Create Cursor propcur (objname c(10),propval m)
=opropstore.prop2memo("odeneme")
=opropstore.memo2prop("odeneme")
 
*** test *****************************
SELECT propcur
Locate For Alltrim(objname)="odeneme"
?propcur.propval
?"----------------------"
?odeneme.chr1
?odeneme.num1
?odeneme.dat1
?odeneme.lgc1
?odeneme.dtt1
*** test *****************************
 
Define Class propstore As Custom
 
    Procedure prop2memo
        Lparameters cobjname
 
        cr_lf=Chr(13)+Chr(10)
        cprops=""
        propcount=Amembers(arrprop,odeneme,1,"U")
        For iprop=1 To propcount
            If arrprop(iprop,2)="Property"
                cptype=Vartype(odeneme.&arrprop(iprop,1))
                cpname=arrprop(iprop,1)
                cpvalu=&cobjname..&cpname
 
                cprops=cprops+cptype+cr_lf
                cprops=cprops+arrprop(iprop,1)+cr_lf
                Do Case
                    Case cptype="D"
                        cprops=cprops+Dtos(cpvalu)+cr_lf
                    Case cptype="N"
                        cprops=cprops+Transform(cpvalu)+cr_lf
                    Case cptype="C"
                        cprops=cprops+cpvalu+cr_lf
                    Case cptype="L"
                        cprops=cprops+Iif(cpvalu=.T.,".T.",".F.")+cr_lf
                    Case cptype="T"
                        cprops=cprops+Ttoc(cpvalu,1)+cr_lf
                Endcase
            Endif
        Endfor
        Insert Into propcur (objname,propval) Values (cobjname,cprops)
    Endproc
 
    Procedure memo2prop
        Lparameters cobjname
 
        Select propcur
        Locate For Alltrim(objname)=cobjname
        If Found()
            For iprop=1 To Memlines(propcur.propval) Step 3
                cptype=Mline(propcur.propval,iprop)
                cpname=Mline(propcur.propval,iprop+1)
                cpvalu=Mline(propcur.propval,iprop+2)
                Do Case
                    Case cptype="D"
                        &cobjname..&cpname=Evaluate("date("+Transform(cpvalu,"@R ####,##,##")+")")
                    Case cptype="N"
                        &cobjname..&cpname=Val(cpvalu)
                    Case cptype="C"
                        &cobjname..&cpname=cpvalu
                    Case cptype="L"
                        &cobjname..&cpname=Iif(cpvalu=".T.",.T.,.F.)
                    Case cptype="T"
                        &cobjname..&cpname=Evaluate("datetime("+Transform(cpvalu,"@R ####,##,##,##,##,##")+")")
                Endcase
            Endfor
        Endif
    Endproc
 
Enddefine
 
 
Define Class deneme As Custom
    chr1="Alfreds Futterkiste."
    num1=12345.78
    dat1=Date()
    lgc1=.F.
    dtt1=Datetime()
 
    Procedure proc1
    Endproc
Enddefine

9 Son düzenleyen, aydinufuk (28.10.2008 09:05:36)

Re: array to obj..

bu da array li çözümü foxman. senin çözümden yola çıkarak bunu yaptım..teşekkür ederim.

Visual Fox Pro
Clear

Clear All
odeneme   = Createobject("deneme")
opropstore=Createobject("propstore")
 
Create Cursor propcur (objname c(10),propval m)
=opropstore.prop2memo("odeneme")
=opropstore.memo2prop("odeneme")
 
*** test *****************************
Select propcur
Locate For Alltrim(objname)="odeneme"
?propcur.propval
?"----------------------"
?odeneme.chr1
?odeneme.num1
?odeneme.dat1
?odeneme.lgc1
?odeneme.dtt1
*** test *****************************
 
Define Class propstore As Custom
 
    Procedure prop2memo
        Lparameters cobjname
        Local Array xar(1,2)
        cr_lf=Chr(13)+Chr(10)
        propcount=Amembers(arrprop,odeneme,1,"U")
        For iprop=1 To propcount
            If arrprop(iprop,2)="Property"
                cpname=arrprop(iprop,1)
                Dimension xar(iprop,2)
                xar(iprop,2)=&cobjname..&cpname
                xar(iprop,1)=cpname
            Endif
        Endfor
 
        Save To Memo propval All Like xar*
    Endproc
 
    Procedure memo2prop
        Lparameters cobjname
        Local x
        LOCAL ARRAY xar(1,2)
        Select propcur
        RESTORE From memo propval Additive
        For x=1 To Alen(xar,1)
            AddProperty(&cobjname,xar(x,1),xar(x,2))
        Next
 
    Endproc
 
Enddefine
 
 
Define Class deneme As Custom
    chr1="Alfreds Futterkiste."
    num1=12345.78
    dat1=Date()
    lgc1=.F.
    dtt1=Datetime()
 
    Procedure proc1
    Endproc
Enddefine