Port com sur delphi 6

Résolu
totalhackerz
Messages postés
33
Date d'inscription
dimanche 23 mai 2004
Statut
Membre
Dernière intervention
30 octobre 2007
- 30 août 2006 à 23:28
totalhackerz
Messages postés
33
Date d'inscription
dimanche 23 mai 2004
Statut
Membre
Dernière intervention
30 octobre 2007
- 1 sept. 2006 à 15:56
bonjour,
j'ai un code en QuickBasic et je voudrais le faire marcher en delphi6, si quelqu'un connait le code se raprochant le plus se serai cool
surtout sur la commande OPEN Merci davance
CLS
DIM inbuf(800)
DIM outbuf(3)

OPEN "com1,19200,n,8,1,bin,cs,ds" FOR RANDOM AS #1


outbuf(0) = 3

outbuf(1) = 1

outbuf(2) = 9

outbuf(3) = outbuf(0) XOR outbuf(1) XOR outbuf(2)

PRINT #1, CHR$(outbuf(0)) + CHR$(
outbuf(1)) + CHR$(
outbuf(2)) + CHR$(
outbuf(3))

END

7 réponses

jlen100
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
30 août 2006 à 23:42
salut le plus simple est d'utiliser un composant comme TComport ou une dll comme RSCOM.dll


pour la dll tu déclares:
function OPENCOM(OpenString:PChar):Integer; stdcall; external 'RSCOM.DLL';


ensuite tu n'as plus qu'à l'utiliser:
OpenCom('COM1: baud=19200 parity=N data=8 stop=1');


@+

jlen
3
totalhackerz
Messages postés
33
Date d'inscription
dimanche 23 mai 2004
Statut
Membre
Dernière intervention
30 octobre 2007

31 août 2006 à 11:49
Merci pour ta réponse!
mais je sais pas comment faire pour la commande : CHR$

PRINT #1, CHR$(outbuf(0)) + CHR$( outbuf(1)) + CHR$( outbuf(2)) + CHR$( outbuf(3))

quelqu'un à une idée?
merci davance
0
jlen100
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
31 août 2006 à 12:02
en VB chr$ renvoie une chaine?

dim outbuf(3)---> outbuf:array[0..3]of integer;

 alors chaine:=inttostr(outbuf[0])+inttostr(outbuf[1])+inttostr(outbuf[2])+inttostr(outbuf[3]);


@+

jlen
0
totalhackerz
Messages postés
33
Date d'inscription
dimanche 23 mai 2004
Statut
Membre
Dernière intervention
30 octobre 2007

31 août 2006 à 13:47
merci ! jai essai mais le sousi ses quant je mes la variable 'chaine' dans TXD(chaine) il me dit word et string son incompatible,
quelqu'un aurai une idée?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jlen100
Messages postés
1606
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
12
31 août 2006 à 14:48
tu as 2 solutions soit faire TXD(outbuf[x]) et répéter l'opération ou utiliser :
procedure SENDSTRING (Buffer: PChar);
stdcall; external 'RSCOM.DLL';


vas voir ICI


@+

jlen
0
totalhackerz
Messages postés
33
Date d'inscription
dimanche 23 mai 2004
Statut
Membre
Dernière intervention
30 octobre 2007

1 sept. 2006 à 11:50
merci encors a toi jlen,
maleresement sa marche tjr pas! malgré tes conseil, je narrive pas a transmettre le bon code a mon avie a la platine
jai bien comprie comment le faire mais je narrive pas encors a trouvé comme le faire marche!!
jai la platine relait de chez Conrad LeC http://www.conrad.fr/Composants/Automatisme/Automates-programmables/Carte-de-relais-pour-commutation.html
dapre le livre il me disse que je doit transmettre une serie de 4byte

Byte 0            Byte 1                        byte2       Byte3 
Commande -  adresse de la paqute - Donner - total de controle (XOR)
3                    1                                 1            3

le code QuickBasic :

CLS
DIM inbuf(800)
DIM outbuf(3)

OPEN "com1,19200,n,8,1,bin,cs,ds" FOR RANDOM AS #1

outbuf(0) = 3
outbuf(1) = 1
outbuf(2) = 1
outbuf(3) = outbuf(0) XOR outbuf(1) XOR outbuf(2)

PRINT #1, CHR$(outbuf(0)) + CHR$( outbuf(1)) + CHR$( outbuf(2)) + CHR$( outbuf(3))

END

donc voila! si tu veut plus dinfo ésite pas! jespere que tu y vera plus claire que moi
merci davance
0
totalhackerz
Messages postés
33
Date d'inscription
dimanche 23 mai 2004
Statut
Membre
Dernière intervention
30 octobre 2007

1 sept. 2006 à 15:56
re jai trouvé se que signifié CHR ( http://www.vbfrance.com/infomsg.aspx?ID=806849 ) il stranforme le carraterre en ASCII donc je voudrai juste savoir comment je pourai faire sa en delphi pour stransmettre au com1 le total en ascii??
0