IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

données port com vers fichier txt


Sujet :

WinDev

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Points : 46
    Points
    46
    Par défaut données port com vers fichier txt
    Bonjour,

    Je débute dans l'univer de windev et je me suis fixé l'objectif de créer une petite application qui communiquerais avec le port com via un denso BHT.

    pour le moment tout ce passe pour le mieux grâce aux différentes ressources que je trouve sur le web et via la soucoupe j'ai bien une fenêtre qui m'indique que des données sont envoyés, mais je n'arrive pas à enregistrer en format txt ces données sur un répertoire de l'ordinateur, quelqu'un pourrais t'il m'éclairer ?

    bonne journée

  2. #2
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 801
    Points
    3 801
    Par défaut
    Bonjour,

    Si ton problème est d'écrire dans un fichier texte, tu devrais renommer ton post.

    Et puis il y a plusieurs exemples dans le forum et dans l'aide de windev.

    En voici un pour exemple

    http://www.dev...indev/wd12-fichier-texte/

    Puis regarde dans l'aide du coté de fOuvre(), fEcrit(), fEcritLigne(), fCrée()

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Points : 46
    Points
    46
    Par défaut
    Merci d'avoir répondu si rapidement , je vais regarder du coté de fOuvre(), fEcrit(), fEcritLigne(), fCrée() , mais au cas ou je vous post le code de la procédure de réception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    wtaille est un entier
    buffer est une chaîne
    FlagOK est un booléen
    wtaille2 est un entier
    wtaille2=0
    flagun est un booléen
    FinTimer(1)
    wtaille=sDansFileEntrée(Port)
    FlagOK=Faux
    flagun=Faux
     
    // Lecture des informations sur le port série en fonction de la condition d'arrêt
    SI wtaille<>0 ALORS 
          TANTQUE PAS FlagOK
                wtaille=sDansFileEntrée(Port)
                SI wtaille>wtaille2 ALORS
                      wtaille2=wtaille
                      flagun=Faux
                SINON
                      SI flagun ALORS
                            FlagOK=Vrai
                      SINON
                            flagun=Vrai
                            Multitâche(50)
                      FIN
                FIN
          FIN
          buffer=sLit(Port,wtaille)
    FIN
     
    // Traitement des informations lues sur le port série
    SI FlagOK ALORS
          Info(buffer)
    FIN
     
    Timer("sReception",50,1)
    Après plusieurs tests je reviens vers vous, car je galère pour intégrer au code actuelle stocké dans le buffer vers un fichier text.

    quelqu'un pourrais t'il m'éclarer

  4. #4
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 801
    Points
    3 801
    Par défaut
    Indique nous le code que tu test pour qu'on t'aide.

    Dis nous si tu veux créer un fichier à chaque scan ou si ajoute le buffer en fin de ton fichier.

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Points : 46
    Points
    46
    Par défaut
    Ok merci mail.spam

    tout d'abord je détecte le lecteur denso soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    GLOBAL
    	Port est un entier
     
    LOCAL
    	Taux est un entier
    	Parite est un entier
    	BitDonnee est un entier
    	BitStop est un entier
    	Port=1
    	Taux=19200
    	Parite=1
    	BitDonnee=8
    	BitStop=1
     
    SI sOuvre(Port,5000,5000)=Faux ALORS
    	Erreur("Erreur lors de l'ouverture du port "+Port)
    	Ferme()
    FIN
    sFixeParamètre(Port,Taux,Parite,BitDonnee,BitStop)
    Timer("sReception",50,1)
    sFerme(Port)
    Ensuite j'essaie de récupérer les informations stocké sur le denso, et oui j'aimerais faire un fichier pour chaques scan avec une fenêtre indiquant traitement en cour (par exemple)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    FONCTION SRECEPTION()
     
    wtaille est un entier
    buffer est une chaîne
    FlagOK est un booléen
    wtaille2 est un entier
    wtaille2=0
    flagun est un booléen
    FinTimer(1)
    wtaille=sDansFileEntrée(Port)
    FlagOK=Faux
    flagun=Faux
     
    // Lecture des informations sur le port série en fonction de la condition d'arrêt
    SI wtaille<>0 ALORS 
          TANTQUE PAS FlagOK
                wtaille=sDansFileEntrée(Port)
                SI wtaille>wtaille2 ALORS
                      wtaille2=wtaille
                      flagun=Faux
                SINON
                      SI flagun ALORS
                            FlagOK=Vrai
                      SINON
                            flagun=Vrai
                            Multitâche(50)
                      FIN
                FIN
          FIN
          buffer=sLit(Port,wtaille)
    FIN
     
     
    // Traitement des informations lues sur le port série
    SI FlagOK ALORS
          Info(buffer)
          buffer = fCrée("C:\Documents and Settings\User\Bureau\test\Fichier.txt")
    FIN
     
    Timer("sReception",50,1)
    comme j'y connais trop rien (pour le moment) étant donnée que le buffer ne peut être une valeur de type entier je ne sais pas vraiment comment faire.

  6. #6
    Membre du Club Avatar de patou38
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2009
    Messages : 40
    Points : 46
    Points
    46
    Par défaut
    bonjour,
    je n ai jamais utilise une variable buffer,
    mais dans le forum - contribuer - il y a un exemple de recuperation dans un buffer et de manipulation de fichiers
    a voir si cela peut t aider
    bon dev
    a+

  7. #7
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 801
    Points
    3 801
    Par défaut
    Bonjour,


    Tu as du regarder beaucoup l'aide pour écrire un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    buffer = fCrée("C:\Documents and Settings\User\Bureau\test\Fichier.txt")
    Donc quand tu scan tu efface la valeur de "buffer" avec le résultat de la création de ton fichier texte.

    Il faut que tu ouvre ton fichier texte avec la fonction fOuvre et les options suivante "foCréationSiInexistant+foAjout"
    Ce qui permet d'ouvrir ton fichier en ajout ou de le créer s'il n'existe pas.

    Ensuite tu utilise fEcritLigne pour écrire ton Buffer dans ton fichier texte

    Ensuite tu ferme le fichier avec fFerme.

    Je veux bien t'aider mais pas faire à ta place.

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Points : 46
    Points
    46
    Par défaut
    Y a du mieux, je commence à capter comment ça fonctionne, par contre je n'arrive toujours pas à avoir le résultat du buffer dans le fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    FONCTION SRECEPTION()
     
    wtaille est un entier
    buffer est une chaîne
    FlagOK est un booléen
    wtaille2 est un entier
    wtaille2=0
    flagun est un booléen
    FinTimer(1)
    wtaille=sDansFileEntrée(Port)
    FlagOK=Faux
    flagun=Faux
    nIdFic est un entier
     
    // Lecture des informations sur le port série en fonction de la condition d'arrêt
    SI wtaille<>0 ALORS 
          TANTQUE PAS FlagOK
                wtaille=sDansFileEntrée(Port)
                SI wtaille>wtaille2 ALORS
                      wtaille2=wtaille
                      flagun=Faux
                SINON
                      SI flagun ALORS
                            FlagOK=Vrai
                      SINON
                            flagun=Vrai
                            Multitâche(50)
                      FIN
                FIN
          FIN
          buffer=sLit(Port,wtaille)
    FIN
     
     
    // Traitement des informations lues sur le port série
    SI FlagOK ALORS
          Info(buffer)
     
     
    // Ouverture du fichier
    nIdFic = fOuvre("C:\Documents and Settings\User\Bureau\test\Fichier.txt", foCréationSiInexistant+foAjout)
    SI nIdFic=-1 ALORS
    	Erreur("L'ouverture du fichier a échoué", ErreurInfo())
    SINON
    	// Ecriture du bloc
    	fEcrit(nIdFic, buffer)
     
    	// Fermeture du fichier
    	fFerme(nIdFic)
    FIN
     
     
    FIN
     
    Timer("sReception",50,1)

  9. #9
    Membre du Club Avatar de patou38
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2009
    Messages : 40
    Points : 46
    Points
    46
    Par défaut
    re bonjour
    une chose m inquiete dans ton code
    tu defini buffer en tant que chaine
    alors qu il faudrai le definir en tant que buffer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    buffer est un buffer
    voir dans l aide " buffer"
    a+

  10. #10
    Membre du Club Avatar de patou38
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2009
    Messages : 40
    Points : 46
    Points
    46
    Par défaut
    Bonsoir,
    oups !!!
    j'ai dis une betise, dans le cas d un port serie s'est effectivement
    je n'avais pas windev et son aide lors de ma precedente reponse.

    as-tu essaye en mode debug pas a pas ?

    ton fichier est il bien creer?

    as tu essaye avec l option lecture/ecriture?
    A+

  11. #11
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 801
    Points
    3 801
    Par défaut
    Bonjour,

    Quand tu dis
    par contre je n'arrive toujours pas à avoir le résultat du buffer dans le fichier
    Tu as quoi dans ton fichier?

    As tu essayé de contrôler le résultat de fEcrit
    Test aussi en mettant un texte dans fEcrit afin de savoir si l'erreur vient de ta variable "buffer". ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Resultat = fEcrit(nIdFic, "Texte à écrire dans le fichier")
    Et j'utiliserai plus fEcritLigne qui permet de mettre RC à la fin de l'écriture dans le fichier mais bon ça c'est entièrement personnel.

  12. #12
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Points : 46
    Points
    46
    Par défaut
    Bonjour

    patou38
    as-tu essaye en mode debug pas a pas ?
    Non désolé non seulement je ne sais pas ou cela ce trouve,d'ailleur quand je désire effectuer une recherche sur déboguer (f1) cela me signale que la page n'est pas disponible.

    ton fichier est il bien creer?
    oui il est bien créer

    mail.spam
    Tu as quoi dans ton fichier?
    Bonne question, "Texte à écrire dans le fichierTexte à écrire dans le fichierùùùùùùùùùùùùùùùùùù"

    As tu essayé de contrôler le résultat de fEcrit
    Test aussi en mettant un texte dans fEcrit afin de savoir si l'erreur vient de ta variable "buffer"
    Oui cela me renvoi : Texte à écrire dans le fichier

    Par contre maintenant que j'y pense je ne vous ai pas expliqué le fonctionement de départ du denso, en fait j'ai une application en msdos qui me permet de réceptionner les informations sur le lecteur et qui les envois en format .txt directement vers le pc dans un répertoire de l'application exemple :
    001.txt
    002.txt
    003.txt
    etc...
    ils contiennent un libéllé et un gen code. Ce qui pourrais bien vouloir expliquer mon problème, en fait je me demande si le lecteur n' essaie pas de m'envoyer ces donnée déjà en txt, qu'est-ce-que vous en pensé ?

    Merci

  13. #13
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 801
    Points
    3 801
    Par défaut
    Le mode Débug Pas à Pas est le mode de windev qui permet d'exécuter le programme Windev, ligne de code par ligne de code.

    Qu'obtient tu dans ta fenêtre "Info(buffer)" ?

  14. #14
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Points : 46
    Points
    46
    Par défaut
    dans la fenêtre j'obtient un: ù

  15. #15
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 801
    Points
    3 801
    Par défaut
    Donc dans ton fichier texte il y a bien ce que tu as dans ta variable buffer.

    Ton problème n'est pas l'écriture dans le fichier texte mais bien la réception du code lu par le code barre

  16. #16
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Points : 46
    Points
    46
    Par défaut
    Et d'après toi y a t'il une solution ?

  17. #17
    Membre du Club Avatar de patou38
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mai 2009
    Messages : 40
    Points : 46
    Points
    46
    Par défaut
    Bonjour,
    tu peux regarder sur le site de ton fournisseur, il se peut que tu y trouve quelques informations qui pourait te servir
    http://www.denso-wave.co.jp/en/adcd/...4_0/index.html
    A+

  18. #18
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Points : 46
    Points
    46
    Par défaut
    Bonjour,
    Etant donnée que le buffer essaie de m'envoyer des données en format txt, y à t'il un moyen de simplement copier celle-ci dasn un répertoire grace à windev ?
    du genre buffer=fcopie c:\.....

    sinon j'ai envoyé un mail au constructeur et j'attend leurs retour concernant un logiciel qui me permettrais d'éditer directement l'interface du denso

    bonne soirée

  19. #19
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Points : 46
    Points
    46
    Par défaut Récupérer les données d'un port RS232
    Bonjour,

    J'ai donc bien avancé sur mon problème (le fait de pouvoir me connecter à un port com et de communiquer avec), j'ai pris contact avec le revendeur et récupérer les sources du logiciel qui envoi les données du denso vers le pc.

    mais (car forcément il y en à un), j'aimerais faire une interface en windev qui récupérais ces infos pour les enregistrer dans un répértoire).

    sauf que voilà la j'y connais rien en basic, et le code source du denso et dev avec
    ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    open "COM:19200,N,8,1" AS #3
     
    trans       gosub cadre
    	    locate 3,2: print "TRANSMISSION"
    	    locate 5,3: print "EN COURS"
    	    plante$="N"
    	    for ej=1 to 500 : next ej
    	    locate 5,3: print "      Lg";
    	    locate 5,3
    	    xfile "inv"+identite$,"mps"
    	    if plante$="O" then
    	       gosub cadre
    	       locate 2,2: screen ,1:print " TRANSMISSION "
    	       locate 2,3: print " ABANDONNEE ! ";:screen ,0
    	       beep:beep
    	       close
    	       while(inkey$="")
    	       wend
    	       return
    	    endif
    Je pense que je dois me concentrer sur le xfile "inv"+identites$,"mps" non ?
    et surtout comment windev peut récupérer ces infos.

    Merci

Discussions similaires

  1. Extrait la base données SQL server 2000 vers fichier.txt
    Par Tonylee dans le forum Administration
    Réponses: 3
    Dernier message: 20/05/2015, 09h08
  2. Réponses: 0
    Dernier message: 18/05/2015, 15h43
  3. erreur à l'export de données oracle vers fichier .txt
    Par marieo dans le forum Import/Export
    Réponses: 0
    Dernier message: 19/11/2010, 12h08
  4. Transfert de données d'un port com vers une base de données
    Par turbo_chess dans le forum Développement
    Réponses: 3
    Dernier message: 15/05/2007, 21h05
  5. Réponses: 41
    Dernier message: 02/05/2006, 15h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo