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 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
|
procedure TGes0000_Ecran.Lecture_carte(Sender: TObject);
type
TMyArray6 = array[0..6] of AnsiChar;
TMyArray8 = array[0..8] of AnsiChar;
TMyArray11 = array[0..11] of AnsiChar;
TMyArray255 = array[0..255] of AnsiChar;
TMyArray4095 = array[0..4095] of AnsiChar;
TGetLastTransactionDetail = procedure (var p1:byte;var p2:integer;var p3:integer;var p4:byte;var p5:longint;var p6:TMyArray255;var p7:TMyArray11;
var p8:TMyArray255;var p9:TMyArray255;var p10:TMyArray255;var p11:integer;var p12:TMyArray6;var p13:TMyArray6;var p14:integer;
var p15:integer;var p16:integer;var p17:TMyArray6;var p18:TMyArray8;var p19:TMyArray11;var p20:TMyArray4095;var p21:integer;var p22:longint;
var p23:integer;var p24:TMyArray255
); cdecl;
TSetJILParameters = procedure (Tcp:pansichar;p1:pansichar;p2:integer;ip:pansichar;port:integer;filepath:pansichar); cdecl;
TStartTransaction = procedure (P1:integer;Montant:integer;P2:integer;P3:pansichar;P4:pansichar;P5:pansichar;P6:pansichar;P7:integer;P8:pansichar;P9:integer;P10:pansichar;FilePath:pansichar);cdecl;
TGetDLLVersion = procedure (var Pansi1:array of ansichar); stdcall;
var
SetJILParameters: TSetJILParameters;
VpxVarFinal:TStartTransaction;
VpxDLL:TGetDLLVersion;
VpxGetLastTransactionDetail:TGetLastTransactionDetail;
str1,str2,str3,str4,str5,str6,str7 : pansichar;
VpfFile:TextFile;
LineRead : string;
VpxPath:string;
m_DllDataSize: integer;
mp_DllData: Pointer;
m_DllHandle,d_DllHandle: THandle;
Pansi1:array[0..23] of ansichar;
p1:byte;
p2:integer;
p3:integer;
p4:byte;
p5:longint;
p6:TMyArray255;
p7:TMyArray11;
p8:TMyArray255;
p9:TMyArray255;
p10:TMyArray255;
p11:integer;
p12:TMyArray6;
p13:TMyArray6;
p14:integer;
p15:integer;
p16:integer;
p17:TMyArray6;
p18:TMyArray8;
p19:TMyArray11;
p20:TMyArray4095;
p21:integer;
p22:longint;
p23:integer;
p24:TMyArray255;
begin
VpxPath:='C:\temp\';
VpxFileName:=VpxPath+'Transaction.txt';
ForceDirectories(VpxPath);
if FileExists(VpxFileName) then DeleteFile(VpxFileName);
m_DllHandle := LoadLibrary('ccvJIL.dll');
try
if m_DllHandle = 0 then Abort;
@SetJILParameters := GetProcAddress(m_DllHandle, 'SetJILParameters');
if @SetJILParameters <> nil then
begin
str1:=PAnsiChar(AnsiString('TCP'));
str2:=PAnsiChar(AnsiString('-1'));
str3:=PAnsiChar(AnsiString('192.168.0.170'));
str4 := PAnsiChar(AnsiString(VpxFileName));
SetJILParameters(str1,str2,-1,str3,40100,str4);
@VpxVarFinal := GetProcAddress(m_DllHandle, 'StartTransaction');
if @VpxVarFinal <> nil then
begin
str1:=PAnsiChar(AnsiString('-1'));
str2:=PAnsiChar(AnsiString('-1'));
str3:=PAnsiChar(AnsiString('-1'));
str4:=PAnsiChar(AnsiString('-1'));
str5:=PAnsiChar(AnsiString('-1'));
str6:=PAnsiChar(AnsiString('-1'));
str7:=PAnsiChar(AnsiString('c:\temp\Tickets.txt'));
//On envoie la transaction sur le terminal
VpxVarFinal(0,2310, -1, Str1, Str2, Str3, Str4, -1, Str5, 1, Str6, Str7);
///////////////////////////////////////////////////////////////////////
@VpxGetLastTransactionDetail := GetProcAddress(m_DllHandle, 'GetLastTransactionDetail');
if @VpxGetLastTransactionDetail <> nil then
begin
//Récupération des informations de la dernière transaction
VpxGetLastTransactionDetail(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24);
end;
/////////////////////////////////////////////////////////////////////////
if m_DllHandle <> 0 then
FreeLibrary(m_DllHandle);
end else
begin
showmessage('Erreur dans StartTransaction');
end;
end else
begin
showmessage('Erreur dans fonction SetJILParameters');
Abort;
end;
except
ShowMessage('An error occoured while loading the dll');
end;
showmessage('Traitement OK');
showmessage(Chr(p1));
showmessage(inttostr(p2));
showmessage(inttostr(p3));
showmessage(Chr(p4));
showmessage(inttostr(p5));
showmessage(p6);
showmessage(p7);
showmessage(p8);
showmessage(p9);
showmessage(p10);
showmessage(inttostr(p11));
showmessage(p12);
showmessage(p13);
showmessage(inttostr(p14));
showmessage(inttostr(p15));
showmessage(inttostr(p16));
showmessage(p17);
showmessage(p18);
showmessage(p19);
showmessage(p20);
showmessage(inttostr(p21));
showmessage(inttostr(p22));
showmessage(inttostr(p23));
showmessage(p24);
end;
procedure TGes0000_Ecran.bouton_lecteurClick(Sender: TObject);
begin
Lecture_carte(sender);
end; |