Je tente de lire mon port série pour y récuperer des information en
flots (tickets de taxation d'un PABX ...)
La lecture et la visualisation des ces donnees se passe sans problemes
(Text1.SelText = Tampon) et tous les tickets s'affichent correctement.
Par contre, dés que je tente d'écrire dans un fichier
Open NomFichierJour$ For Append As #Numfich
Print #Numfich, Tampon$
Close #1 'Ferme le fichier
Ca se complique : les données se trouvent enregistrées avec des CRLF
arbitraires qui me pourissent mes données.
J'ai essayé plein de variantes, en écriture direct sans fonction, en
ouvrant le fichier une fois pour toute et en le fermant uniquement à
l'arret de l'application, ou meme en ecrivant le contenu de
Text1.SelText dans mon fichier, mais sans succés.
Le probleme n'est pas dans le lecture du port COM, puisque mes données
s'affichent correctement dans mon champ texte, mais bien dans
l'ecriture à la volée dans ce fichier...
Si vous avez des idées, je suis preneur !
Merci d'avance.
Pierre
=============================================
Ca vient de la ...
http://grafikm.developpez.com/portcomm/
=============================================
Private Sub MSComm1_OnComm()
'Detection d'element sur le port com
Dim InBuff As String
Select Case MSComm1.CommEvent
Case comEvReceive
Tampon = MSComm1.Input
Call Traitement(Tampon) 'traitement données
Case comEvSend ' il y a des caractères à ENVOYER
Case comEvEOF 'on a reçu le caractère EOF
End Select
End Sub
Sub Traitement(Tampon As String)
Numfich = FreeFile
'cette procédure sert à traiter l'information reçue dans le tampon
Text1.SelStart = Len(Text1.Text)
Text1.SelText = Tampon 'ici, on affiche le résultat dans un champ
de texte
Open NomFichierJour$ For Append As #Numfich 'Ecriture des valeurs
dans le fichier
Print #Numfich, Tampon$
Close #1 'Ferme le fichier
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrice Henrio
Pour être sûr de ce que l'on reçoit par un port, il peut être utile de lire les données octet par octet, cela permet de bien savoir ce qui arrive et de construire une fonction d'écriture des données dans un fichier texte en éliminant les "parasites".
"Pierre" a écrit dans le message de news:
Bonjour,
Je tente de lire mon port série pour y récuperer des information en flots (tickets de taxation d'un PABX ...)
La lecture et la visualisation des ces donnees se passe sans problemes (Text1.SelText = Tampon) et tous les tickets s'affichent correctement. Par contre, dés que je tente d'écrire dans un fichier Open NomFichierJour$ For Append As #Numfich Print #Numfich, Tampon$ Close #1 'Ferme le fichier
Ca se complique : les données se trouvent enregistrées avec des CRLF arbitraires qui me pourissent mes données.
J'ai essayé plein de variantes, en écriture direct sans fonction, en ouvrant le fichier une fois pour toute et en le fermant uniquement à l'arret de l'application, ou meme en ecrivant le contenu de Text1.SelText dans mon fichier, mais sans succés.
Le probleme n'est pas dans le lecture du port COM, puisque mes données s'affichent correctement dans mon champ texte, mais bien dans l'ecriture à la volée dans ce fichier...
Si vous avez des idées, je suis preneur !
Merci d'avance.
Pierre
============================================ > Ca vient de la ... http://grafikm.developpez.com/portcomm/ ============================================ > Private Sub MSComm1_OnComm()
'Detection d'element sur le port com Dim InBuff As String Select Case MSComm1.CommEvent Case comEvReceive Tampon = MSComm1.Input Call Traitement(Tampon) 'traitement données Case comEvSend ' il y a des caractères à ENVOYER Case comEvEOF 'on a reçu le caractère EOF End Select End Sub
Sub Traitement(Tampon As String) Numfich = FreeFile 'cette procédure sert à traiter l'information reçue dans le tampon Text1.SelStart = Len(Text1.Text) Text1.SelText = Tampon 'ici, on affiche le résultat dans un champ de texte Open NomFichierJour$ For Append As #Numfich 'Ecriture des valeurs dans le fichier Print #Numfich, Tampon$ Close #1 'Ferme le fichier End Sub
Pour être sûr de ce que l'on reçoit par un port, il peut être utile de lire
les données octet par octet, cela permet de bien savoir ce qui arrive et de
construire une fonction d'écriture des données dans un fichier texte en
éliminant les "parasites".
"Pierre" <pierremag@yahoo.fr> a écrit dans le message de
news:ae9ba120.0407100909.c2cc041@posting.google.com...
Bonjour,
Je tente de lire mon port série pour y récuperer des information en
flots (tickets de taxation d'un PABX ...)
La lecture et la visualisation des ces donnees se passe sans problemes
(Text1.SelText = Tampon) et tous les tickets s'affichent correctement.
Par contre, dés que je tente d'écrire dans un fichier
Open NomFichierJour$ For Append As #Numfich
Print #Numfich, Tampon$
Close #1 'Ferme le fichier
Ca se complique : les données se trouvent enregistrées avec des CRLF
arbitraires qui me pourissent mes données.
J'ai essayé plein de variantes, en écriture direct sans fonction, en
ouvrant le fichier une fois pour toute et en le fermant uniquement à
l'arret de l'application, ou meme en ecrivant le contenu de
Text1.SelText dans mon fichier, mais sans succés.
Le probleme n'est pas dans le lecture du port COM, puisque mes données
s'affichent correctement dans mon champ texte, mais bien dans
l'ecriture à la volée dans ce fichier...
Si vous avez des idées, je suis preneur !
Merci d'avance.
Pierre
============================================ > Ca vient de la ...
http://grafikm.developpez.com/portcomm/
============================================ >
Private Sub MSComm1_OnComm()
'Detection d'element sur le port com
Dim InBuff As String
Select Case MSComm1.CommEvent
Case comEvReceive
Tampon = MSComm1.Input
Call Traitement(Tampon) 'traitement données
Case comEvSend ' il y a des caractères à ENVOYER
Case comEvEOF 'on a reçu le caractère EOF
End Select
End Sub
Sub Traitement(Tampon As String)
Numfich = FreeFile
'cette procédure sert à traiter l'information reçue dans le tampon
Text1.SelStart = Len(Text1.Text)
Text1.SelText = Tampon 'ici, on affiche le résultat dans un champ
de texte
Open NomFichierJour$ For Append As #Numfich 'Ecriture des valeurs
dans le fichier
Print #Numfich, Tampon$
Close #1 'Ferme le fichier
End Sub
Pour être sûr de ce que l'on reçoit par un port, il peut être utile de lire les données octet par octet, cela permet de bien savoir ce qui arrive et de construire une fonction d'écriture des données dans un fichier texte en éliminant les "parasites".
"Pierre" a écrit dans le message de news:
Bonjour,
Je tente de lire mon port série pour y récuperer des information en flots (tickets de taxation d'un PABX ...)
La lecture et la visualisation des ces donnees se passe sans problemes (Text1.SelText = Tampon) et tous les tickets s'affichent correctement. Par contre, dés que je tente d'écrire dans un fichier Open NomFichierJour$ For Append As #Numfich Print #Numfich, Tampon$ Close #1 'Ferme le fichier
Ca se complique : les données se trouvent enregistrées avec des CRLF arbitraires qui me pourissent mes données.
J'ai essayé plein de variantes, en écriture direct sans fonction, en ouvrant le fichier une fois pour toute et en le fermant uniquement à l'arret de l'application, ou meme en ecrivant le contenu de Text1.SelText dans mon fichier, mais sans succés.
Le probleme n'est pas dans le lecture du port COM, puisque mes données s'affichent correctement dans mon champ texte, mais bien dans l'ecriture à la volée dans ce fichier...
Si vous avez des idées, je suis preneur !
Merci d'avance.
Pierre
============================================ > Ca vient de la ... http://grafikm.developpez.com/portcomm/ ============================================ > Private Sub MSComm1_OnComm()
'Detection d'element sur le port com Dim InBuff As String Select Case MSComm1.CommEvent Case comEvReceive Tampon = MSComm1.Input Call Traitement(Tampon) 'traitement données Case comEvSend ' il y a des caractères à ENVOYER Case comEvEOF 'on a reçu le caractère EOF End Select End Sub
Sub Traitement(Tampon As String) Numfich = FreeFile 'cette procédure sert à traiter l'information reçue dans le tampon Text1.SelStart = Len(Text1.Text) Text1.SelText = Tampon 'ici, on affiche le résultat dans un champ de texte Open NomFichierJour$ For Append As #Numfich 'Ecriture des valeurs dans le fichier Print #Numfich, Tampon$ Close #1 'Ferme le fichier End Sub
ng
Salut,
Essaye d'utiliser Print; et non Print :
Open NomFichierJour$ For Append As #Numfich Print #Numfich, Tampon$; Close #Numfich
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/ http://apisvb.europe.webmatrixhosting.net/
Pierre a écrit :
Bonjour,
Je tente de lire mon port série pour y récuperer des information en flots (tickets de taxation d'un PABX ...)
La lecture et la visualisation des ces donnees se passe sans problemes (Text1.SelText = Tampon) et tous les tickets s'affichent correctement. Par contre, dés que je tente d'écrire dans un fichier Open NomFichierJour$ For Append As #Numfich Print #Numfich, Tampon$ Close #1 'Ferme le fichier
Ca se complique : les données se trouvent enregistrées avec des CRLF arbitraires qui me pourissent mes données.
J'ai essayé plein de variantes, en écriture direct sans fonction, en ouvrant le fichier une fois pour toute et en le fermant uniquement à l'arret de l'application, ou meme en ecrivant le contenu de Text1.SelText dans mon fichier, mais sans succés.
Le probleme n'est pas dans le lecture du port COM, puisque mes données s'affichent correctement dans mon champ texte, mais bien dans l'ecriture à la volée dans ce fichier...
Si vous avez des idées, je suis preneur !
Merci d'avance.
Pierre
============================================ > Ca vient de la ... http://grafikm.developpez.com/portcomm/ ============================================ > Private Sub MSComm1_OnComm()
'Detection d'element sur le port com Dim InBuff As String Select Case MSComm1.CommEvent Case comEvReceive Tampon = MSComm1.Input Call Traitement(Tampon) 'traitement données Case comEvSend ' il y a des caractères à ENVOYER Case comEvEOF 'on a reçu le caractère EOF End Select End Sub
Sub Traitement(Tampon As String) Numfich = FreeFile 'cette procédure sert à traiter l'information reçue dans le tampon Text1.SelStart = Len(Text1.Text) Text1.SelText = Tampon 'ici, on affiche le résultat dans un champ de texte Open NomFichierJour$ For Append As #Numfich 'Ecriture des valeurs dans le fichier Print #Numfich, Tampon$ Close #1 'Ferme le fichier End Sub
Salut,
Essaye d'utiliser Print; et non Print :
Open NomFichierJour$ For Append As #Numfich
Print #Numfich, Tampon$;
Close #Numfich
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/
Pierre <pierremag@yahoo.fr> a écrit :
Bonjour,
Je tente de lire mon port série pour y récuperer des information en
flots (tickets de taxation d'un PABX ...)
La lecture et la visualisation des ces donnees se passe sans problemes
(Text1.SelText = Tampon) et tous les tickets s'affichent correctement.
Par contre, dés que je tente d'écrire dans un fichier
Open NomFichierJour$ For Append As #Numfich
Print #Numfich, Tampon$
Close #1 'Ferme le fichier
Ca se complique : les données se trouvent enregistrées avec des CRLF
arbitraires qui me pourissent mes données.
J'ai essayé plein de variantes, en écriture direct sans fonction, en
ouvrant le fichier une fois pour toute et en le fermant uniquement à
l'arret de l'application, ou meme en ecrivant le contenu de
Text1.SelText dans mon fichier, mais sans succés.
Le probleme n'est pas dans le lecture du port COM, puisque mes données
s'affichent correctement dans mon champ texte, mais bien dans
l'ecriture à la volée dans ce fichier...
Si vous avez des idées, je suis preneur !
Merci d'avance.
Pierre
============================================ > Ca vient de la ...
http://grafikm.developpez.com/portcomm/
============================================ >
Private Sub MSComm1_OnComm()
'Detection d'element sur le port com
Dim InBuff As String
Select Case MSComm1.CommEvent
Case comEvReceive
Tampon = MSComm1.Input
Call Traitement(Tampon) 'traitement données
Case comEvSend ' il y a des caractères à ENVOYER
Case comEvEOF 'on a reçu le caractère EOF
End Select
End Sub
Sub Traitement(Tampon As String)
Numfich = FreeFile
'cette procédure sert à traiter l'information reçue dans le tampon
Text1.SelStart = Len(Text1.Text)
Text1.SelText = Tampon 'ici, on affiche le résultat dans un champ
de texte
Open NomFichierJour$ For Append As #Numfich 'Ecriture des valeurs
dans le fichier
Print #Numfich, Tampon$
Close #1 'Ferme le fichier
End Sub
Open NomFichierJour$ For Append As #Numfich Print #Numfich, Tampon$; Close #Numfich
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/ http://apisvb.europe.webmatrixhosting.net/
Pierre a écrit :
Bonjour,
Je tente de lire mon port série pour y récuperer des information en flots (tickets de taxation d'un PABX ...)
La lecture et la visualisation des ces donnees se passe sans problemes (Text1.SelText = Tampon) et tous les tickets s'affichent correctement. Par contre, dés que je tente d'écrire dans un fichier Open NomFichierJour$ For Append As #Numfich Print #Numfich, Tampon$ Close #1 'Ferme le fichier
Ca se complique : les données se trouvent enregistrées avec des CRLF arbitraires qui me pourissent mes données.
J'ai essayé plein de variantes, en écriture direct sans fonction, en ouvrant le fichier une fois pour toute et en le fermant uniquement à l'arret de l'application, ou meme en ecrivant le contenu de Text1.SelText dans mon fichier, mais sans succés.
Le probleme n'est pas dans le lecture du port COM, puisque mes données s'affichent correctement dans mon champ texte, mais bien dans l'ecriture à la volée dans ce fichier...
Si vous avez des idées, je suis preneur !
Merci d'avance.
Pierre
============================================ > Ca vient de la ... http://grafikm.developpez.com/portcomm/ ============================================ > Private Sub MSComm1_OnComm()
'Detection d'element sur le port com Dim InBuff As String Select Case MSComm1.CommEvent Case comEvReceive Tampon = MSComm1.Input Call Traitement(Tampon) 'traitement données Case comEvSend ' il y a des caractères à ENVOYER Case comEvEOF 'on a reçu le caractère EOF End Select End Sub
Sub Traitement(Tampon As String) Numfich = FreeFile 'cette procédure sert à traiter l'information reçue dans le tampon Text1.SelStart = Len(Text1.Text) Text1.SelText = Tampon 'ici, on affiche le résultat dans un champ de texte Open NomFichierJour$ For Append As #Numfich 'Ecriture des valeurs dans le fichier Print #Numfich, Tampon$ Close #1 'Ferme le fichier End Sub
Jean-Marc
"Pierre" a écrit dans le message de news:
Bonjour,
Je tente de lire mon port série pour y récuperer des information en flots (tickets de taxation d'un PABX ...)
La lecture et la visualisation des ces donnees se passe sans problemes (Text1.SelText = Tampon) et tous les tickets s'affichent correctement. Par contre, dés que je tente d'écrire dans un fichier Open NomFichierJour$ For Append As #Numfich Print #Numfich, Tampon$ Close #1 'Ferme le fichier
Ca se complique : les données se trouvent enregistrées avec des CRLF arbitraires qui me pourissent mes données.
Hello, tu peux aussi virer les CRLF sans autre forme de procès: Open NomFichierJour$ For Append As #Numfich Print #Numfich, Replace(Tampon$, vbCrLF, "") Close #1 'Ferme le fichier
Jean-Marc
"Pierre" <pierremag@yahoo.fr> a écrit dans le message de
news:ae9ba120.0407100909.c2cc041@posting.google.com...
Bonjour,
Je tente de lire mon port série pour y récuperer des information en
flots (tickets de taxation d'un PABX ...)
La lecture et la visualisation des ces donnees se passe sans problemes
(Text1.SelText = Tampon) et tous les tickets s'affichent correctement.
Par contre, dés que je tente d'écrire dans un fichier
Open NomFichierJour$ For Append As #Numfich
Print #Numfich, Tampon$
Close #1 'Ferme le fichier
Ca se complique : les données se trouvent enregistrées avec des CRLF
arbitraires qui me pourissent mes données.
Hello,
tu peux aussi virer les CRLF sans autre forme de procès:
Open NomFichierJour$ For Append As #Numfich
Print #Numfich, Replace(Tampon$, vbCrLF, "")
Close #1 'Ferme le fichier
Je tente de lire mon port série pour y récuperer des information en flots (tickets de taxation d'un PABX ...)
La lecture et la visualisation des ces donnees se passe sans problemes (Text1.SelText = Tampon) et tous les tickets s'affichent correctement. Par contre, dés que je tente d'écrire dans un fichier Open NomFichierJour$ For Append As #Numfich Print #Numfich, Tampon$ Close #1 'Ferme le fichier
Ca se complique : les données se trouvent enregistrées avec des CRLF arbitraires qui me pourissent mes données.
Hello, tu peux aussi virer les CRLF sans autre forme de procès: Open NomFichierJour$ For Append As #Numfich Print #Numfich, Replace(Tampon$, vbCrLF, "") Close #1 'Ferme le fichier
Jean-Marc
ng
Salut,
Je pense que le problème vien tplutot des CRLF ajoutés par Print. L'utilsation de Print; (avec un ; à la fin donc) permet d'éviter cela.
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/ http://apisvb.europe.webmatrixhosting.net/
Jean-Marc a écrit :
"Pierre" a écrit dans le message de news:
Bonjour,
Je tente de lire mon port série pour y récuperer des information en flots (tickets de taxation d'un PABX ...)
La lecture et la visualisation des ces donnees se passe sans problemes (Text1.SelText = Tampon) et tous les tickets s'affichent correctement. Par contre, dés que je tente d'écrire dans un fichier Open NomFichierJour$ For Append As #Numfich Print #Numfich, Tampon$ Close #1 'Ferme le fichier
Ca se complique : les données se trouvent enregistrées avec des CRLF arbitraires qui me pourissent mes données.
Hello, tu peux aussi virer les CRLF sans autre forme de procès: Open NomFichierJour$ For Append As #Numfich Print #Numfich, Replace(Tampon$, vbCrLF, "") Close #1 'Ferme le fichier
Jean-Marc
Salut,
Je pense que le problème vien tplutot des CRLF ajoutés par Print.
L'utilsation de Print; (avec un ; à la fin donc) permet d'éviter cela.
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/
Jean-Marc <nospamjean_marc_n2@yahoo.fr> a écrit :
"Pierre" <pierremag@yahoo.fr> a écrit dans le message de
news:ae9ba120.0407100909.c2cc041@posting.google.com...
Bonjour,
Je tente de lire mon port série pour y récuperer des information en
flots (tickets de taxation d'un PABX ...)
La lecture et la visualisation des ces donnees se passe sans
problemes (Text1.SelText = Tampon) et tous les tickets s'affichent
correctement. Par contre, dés que je tente d'écrire dans un fichier
Open NomFichierJour$ For Append As #Numfich
Print #Numfich, Tampon$
Close #1 'Ferme le fichier
Ca se complique : les données se trouvent enregistrées avec des CRLF
arbitraires qui me pourissent mes données.
Hello,
tu peux aussi virer les CRLF sans autre forme de procès:
Open NomFichierJour$ For Append As #Numfich
Print #Numfich, Replace(Tampon$, vbCrLF, "")
Close #1 'Ferme le fichier
Je pense que le problème vien tplutot des CRLF ajoutés par Print. L'utilsation de Print; (avec un ; à la fin donc) permet d'éviter cela.
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/ http://apisvb.europe.webmatrixhosting.net/
Jean-Marc a écrit :
"Pierre" a écrit dans le message de news:
Bonjour,
Je tente de lire mon port série pour y récuperer des information en flots (tickets de taxation d'un PABX ...)
La lecture et la visualisation des ces donnees se passe sans problemes (Text1.SelText = Tampon) et tous les tickets s'affichent correctement. Par contre, dés que je tente d'écrire dans un fichier Open NomFichierJour$ For Append As #Numfich Print #Numfich, Tampon$ Close #1 'Ferme le fichier
Ca se complique : les données se trouvent enregistrées avec des CRLF arbitraires qui me pourissent mes données.
Hello, tu peux aussi virer les CRLF sans autre forme de procès: Open NomFichierJour$ For Append As #Numfich Print #Numfich, Replace(Tampon$, vbCrLF, "") Close #1 'Ferme le fichier
Jean-Marc
Christophe
Salut,
Je commencerais par définir Tampon en octet comme l'a dit qqun ici puis j'ouvrirais le fichier en AS binary de manière à: Controler les entrées de manières univoque et fabriquer une sortie de la même manière. Normalement (je sais pas ce qu'est un PABX) un appareil communique une trame ou des trames fixes par le biais d'un 232 Quelque soit le matériel qui est au bout de la 232 la manière la plus efficace et la plus réutilisable est de gérer les octets que l'on reçoit et de les convertir en fonctione du format attendu.
le CR/LF suivant le protocole de comm doit déjà être présent comme fin de trame. Ta trame suivant le protocole se compose de plus de chose que les données il y a des choses en plus comme CR/LF mais il y en a encore d'autre qui peuvent variées selon les constructeurs.
Salutations
Ch Vergon
"Pierre" a écrit dans le message de news:
Bonjour,
Je tente de lire mon port série pour y récuperer des information en flots (tickets de taxation d'un PABX ...)
La lecture et la visualisation des ces donnees se passe sans problemes (Text1.SelText = Tampon) et tous les tickets s'affichent correctement. Par contre, dés que je tente d'écrire dans un fichier Open NomFichierJour$ For Append As #Numfich Print #Numfich, Tampon$ Close #1 'Ferme le fichier
Ca se complique : les données se trouvent enregistrées avec des CRLF arbitraires qui me pourissent mes données.
J'ai essayé plein de variantes, en écriture direct sans fonction, en ouvrant le fichier une fois pour toute et en le fermant uniquement à l'arret de l'application, ou meme en ecrivant le contenu de Text1.SelText dans mon fichier, mais sans succés.
Le probleme n'est pas dans le lecture du port COM, puisque mes données s'affichent correctement dans mon champ texte, mais bien dans l'ecriture à la volée dans ce fichier...
Si vous avez des idées, je suis preneur !
Merci d'avance.
Pierre
============================================ > Ca vient de la ... http://grafikm.developpez.com/portcomm/ ============================================ > Private Sub MSComm1_OnComm()
'Detection d'element sur le port com Dim InBuff As String Select Case MSComm1.CommEvent Case comEvReceive Tampon = MSComm1.Input Call Traitement(Tampon) 'traitement données Case comEvSend ' il y a des caractères à ENVOYER Case comEvEOF 'on a reçu le caractère EOF End Select End Sub
Sub Traitement(Tampon As String) Numfich = FreeFile 'cette procédure sert à traiter l'information reçue dans le tampon Text1.SelStart = Len(Text1.Text) Text1.SelText = Tampon 'ici, on affiche le résultat dans un champ de texte Open NomFichierJour$ For Append As #Numfich 'Ecriture des valeurs dans le fichier Print #Numfich, Tampon$ Close #1 'Ferme le fichier End Sub
Salut,
Je commencerais par définir Tampon en octet comme l'a dit qqun ici puis
j'ouvrirais le fichier en AS binary de manière à:
Controler les entrées de manières univoque et fabriquer une sortie de la
même manière.
Normalement (je sais pas ce qu'est un PABX) un appareil communique une trame
ou des trames fixes par le biais d'un 232
Quelque soit le matériel qui est au bout de la 232 la manière la plus
efficace et la plus réutilisable est de gérer les octets que l'on reçoit et
de les convertir en fonctione du format attendu.
le CR/LF suivant le protocole de comm doit déjà être présent comme fin de
trame. Ta trame suivant le protocole se compose de plus de chose que les
données il y a des choses en plus comme CR/LF mais il y en a encore d'autre
qui peuvent variées selon les constructeurs.
Salutations
Ch Vergon
"Pierre" <pierremag@yahoo.fr> a écrit dans le message de news:
ae9ba120.0407100909.c2cc041@posting.google.com...
Bonjour,
Je tente de lire mon port série pour y récuperer des information en
flots (tickets de taxation d'un PABX ...)
La lecture et la visualisation des ces donnees se passe sans problemes
(Text1.SelText = Tampon) et tous les tickets s'affichent correctement.
Par contre, dés que je tente d'écrire dans un fichier
Open NomFichierJour$ For Append As #Numfich
Print #Numfich, Tampon$
Close #1 'Ferme le fichier
Ca se complique : les données se trouvent enregistrées avec des CRLF
arbitraires qui me pourissent mes données.
J'ai essayé plein de variantes, en écriture direct sans fonction, en
ouvrant le fichier une fois pour toute et en le fermant uniquement à
l'arret de l'application, ou meme en ecrivant le contenu de
Text1.SelText dans mon fichier, mais sans succés.
Le probleme n'est pas dans le lecture du port COM, puisque mes données
s'affichent correctement dans mon champ texte, mais bien dans
l'ecriture à la volée dans ce fichier...
Si vous avez des idées, je suis preneur !
Merci d'avance.
Pierre
============================================ > Ca vient de la ...
http://grafikm.developpez.com/portcomm/
============================================ >
Private Sub MSComm1_OnComm()
'Detection d'element sur le port com
Dim InBuff As String
Select Case MSComm1.CommEvent
Case comEvReceive
Tampon = MSComm1.Input
Call Traitement(Tampon) 'traitement données
Case comEvSend ' il y a des caractères à ENVOYER
Case comEvEOF 'on a reçu le caractère EOF
End Select
End Sub
Sub Traitement(Tampon As String)
Numfich = FreeFile
'cette procédure sert à traiter l'information reçue dans le tampon
Text1.SelStart = Len(Text1.Text)
Text1.SelText = Tampon 'ici, on affiche le résultat dans un champ
de texte
Open NomFichierJour$ For Append As #Numfich 'Ecriture des valeurs
dans le fichier
Print #Numfich, Tampon$
Close #1 'Ferme le fichier
End Sub
Je commencerais par définir Tampon en octet comme l'a dit qqun ici puis j'ouvrirais le fichier en AS binary de manière à: Controler les entrées de manières univoque et fabriquer une sortie de la même manière. Normalement (je sais pas ce qu'est un PABX) un appareil communique une trame ou des trames fixes par le biais d'un 232 Quelque soit le matériel qui est au bout de la 232 la manière la plus efficace et la plus réutilisable est de gérer les octets que l'on reçoit et de les convertir en fonctione du format attendu.
le CR/LF suivant le protocole de comm doit déjà être présent comme fin de trame. Ta trame suivant le protocole se compose de plus de chose que les données il y a des choses en plus comme CR/LF mais il y en a encore d'autre qui peuvent variées selon les constructeurs.
Salutations
Ch Vergon
"Pierre" a écrit dans le message de news:
Bonjour,
Je tente de lire mon port série pour y récuperer des information en flots (tickets de taxation d'un PABX ...)
La lecture et la visualisation des ces donnees se passe sans problemes (Text1.SelText = Tampon) et tous les tickets s'affichent correctement. Par contre, dés que je tente d'écrire dans un fichier Open NomFichierJour$ For Append As #Numfich Print #Numfich, Tampon$ Close #1 'Ferme le fichier
Ca se complique : les données se trouvent enregistrées avec des CRLF arbitraires qui me pourissent mes données.
J'ai essayé plein de variantes, en écriture direct sans fonction, en ouvrant le fichier une fois pour toute et en le fermant uniquement à l'arret de l'application, ou meme en ecrivant le contenu de Text1.SelText dans mon fichier, mais sans succés.
Le probleme n'est pas dans le lecture du port COM, puisque mes données s'affichent correctement dans mon champ texte, mais bien dans l'ecriture à la volée dans ce fichier...
Si vous avez des idées, je suis preneur !
Merci d'avance.
Pierre
============================================ > Ca vient de la ... http://grafikm.developpez.com/portcomm/ ============================================ > Private Sub MSComm1_OnComm()
'Detection d'element sur le port com Dim InBuff As String Select Case MSComm1.CommEvent Case comEvReceive Tampon = MSComm1.Input Call Traitement(Tampon) 'traitement données Case comEvSend ' il y a des caractères à ENVOYER Case comEvEOF 'on a reçu le caractère EOF End Select End Sub
Sub Traitement(Tampon As String) Numfich = FreeFile 'cette procédure sert à traiter l'information reçue dans le tampon Text1.SelStart = Len(Text1.Text) Text1.SelText = Tampon 'ici, on affiche le résultat dans un champ de texte Open NomFichierJour$ For Append As #Numfich 'Ecriture des valeurs dans le fichier Print #Numfich, Tampon$ Close #1 'Ferme le fichier End Sub
pierremag
Merci à tous de votre aide, et tout particulierement à Nicolas G. => un Print ; à résolu mon probleme ...
Pierre
Merci à tous de votre aide, et tout particulierement à Nicolas G. =>
un Print ; à résolu mon probleme ...