1

Konu: SCARD LARA VFP DE OKUMA YAZMA

Arkadaşlar selam yeni bir projeye başlıyorum ve VFP den SCARD lara aşağıdaki verileri yazıp okumak istiyorum kart okuyucumun markası omnikey yazmak istediğim veriler ise;

1) Karta ait bir kimlik bilgisi (örn:00001, 00002)
2) kazanılan puan (Örn: 100 puan)
3) puanın kazanıldığı tarih (örn:01/02/2009)
4) puan kodu (örn:01)
5) puanın harcama tarihi (örn:01/02/2009)
6) puanın harcama miktarı (Örn: 100 puan)
7) puanın hracama kodu (örn:01)

şeklinde olacak bu verileri karta VFP den nasıl yazıp okuyabilirim
yardımlarınıziçin peşinen teşekkürler.

2

Re: SCARD LARA VFP DE OKUMA YAZMA

Kaynak :
http://www.news2news.com/vfp/?example=539

Visual Fox Pro
1

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
DEFINE CLASS SmartCards As Session

#DEFINE SCARD_SCOPE_USER 0
#DEFINE SCARD_SCOPE_SYSTEM 2
#DEFINE SCARD_S_SUCCESS 0
#DEFINE SCARD_E_NO_SERVICE 0x8010001D
 
    hContext=0
    ReaderGroups=NULL
    Readers=NULL
 
PROCEDURE Init
    THIS.declare
    IF NOT THIS.EstablishContext()
        = MESSAGEBOX("SCardEstablishContext " +;
            "call failed.", 48, "Class Initialization Error")
        RETURN .F.
    ENDIF
 
    THIS.ReaderGroups = CREATEOBJECT("Collection")
    THIS.Readers = CREATEOBJECT("Collection")
 
    THIS.GetReaderGroups
    THIS.GetReaders
 
PROCEDURE Destroy
    THIS.ReleaseContext
 
PROTECTED PROCEDURE EstablishContext
    THIS.ReleaseContext
 
    LOCAL nResult, hContext
    STORE 0 TO nResult, hContext
    nResult = SCardEstablishContext(SCARD_SCOPE_USER,;
        0, 0, @hContext)
 
    THIS.hContext = m.hContext
RETURN (nResult=0)
 
PROTECTED PROCEDURE ReleaseContext
    IF THIS.hContext <> 0
        = SCardReleaseContext(THIS.hContext)
        THIS.hContext=0
    ENDIF
 
PROCEDURE GetReaderGroups
    DO WHILE THIS.ReaderGroups.Count > 0
        THIS.ReaderGroups.Remove(1)
    ENDDO
 
    LOCAL cBuffer, nBufsize, nResult
    nBufsize=1024
    cBuffer=REPLICATE(CHR(0), nBufsize)
 
    nResult = SCardListReaderGroups(THIS.hContext,;
        @cBuffer, @nBufsize)
 
    IF nResult <> SCARD_S_SUCCESS
        RETURN .F.
    ENDIF
 
    LOCAL nItemCount, nItemIndex, cItem
    nItemCount = ALINES(arrSCardItems, cBuffer, CHR(0))
 
    FOR nItemIndex=1 TO nItemCount
        cItem = STRTRAN(arrSCardItems[nItemIndex], CHR(0), "")
        IF LEN(m.cItem) > 0
            THIS.ReaderGroups.Add(m.cItem)
        ENDIF
    NEXT
 
PROCEDURE GetReaders()
    DO WHILE THIS.Readers.Count > 0
        THIS.Readers.Remove(1)
    ENDDO
 
    LOCAL cBuffer, nBufsize, nResult
    nBufsize=1024
    cBuffer=REPLICATE(CHR(0), nBufsize)
 
    nResult = SCardListReaders(THIS.hContext,;
        NULL, @cBuffer, @nBufsize)
 
    IF nResult <> SCARD_S_SUCCESS
        RETURN .F.
    ENDIF
 
    LOCAL nItemCount, nItemIndex, cItem
    nItemCount = ALINES(arrSCardItems, cBuffer, CHR(0))
 
    FOR nItemIndex=1 TO nItemCount
        cItem = STRTRAN(arrSCardItems[nItemIndex], CHR(0), "")
        IF LEN(m.cItem) > 0
            THIS.Readers.Add(m.cItem)
        ENDIF
    NEXT
 
PROTECTED PROCEDURE declare
    DECLARE LONG SCardEstablishContext IN Winscard;
        INTEGER dwScope, INTEGER pvReserved1,;
        INTEGER pvReserved2, INTEGER @phContext
 
    DECLARE LONG SCardReleaseContext IN Winscard;
        INTEGER hContext
 
    DECLARE LONG SCardListReaderGroups IN Winscard;
        LONG hContext, STRING @mszGroups,;
        LONG @pcchGroups
 
    DECLARE LONG SCardListReaders IN Winscard;
        INTEGER hContext, STRING mszGroups,;
        STRING @mszReaders, LONG @pcchReaders
 
    DECLARE LONG SCardListCards IN Winscard;
        INTEGER hContext, INTEGER pbAtr,;
        INTEGER rgguidInterfaces, LONG cguidInterfaceCount,;
        STRING @mszCards, LONG @pcchCards
 
    DECLARE LONG SCardListInterfaces IN Winscard;
        INTEGER hContext, STRING szCard,;
        STRING @pguidInterfaces, LONG @pcguidInterfaces
 
    DECLARE LONG SCardGetProviderId IN Winscard;
        INTEGER hContext, STRING szCard,;
        STRING @pguidProviderId
 
    DECLARE INTEGER StringFromGUID2 IN ole32;
        STRING rguid, STRING @lpsz, INTEGER cchMax
 
ENDDEFINE
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ü