une boite de dialogue
Répondre à la discussion
Affichage des résultats 1 à 28 sur 28

une boite de dialogue



  1. #1
    tinoch

    une boite de dialogue


    ------

    Bonjour,

    je voudrais ajouter une boite de dialogue qui va s'afficher a la fin de la réception de tout les données via le port série pour afficher un message qui diras que la réception des données est terminer.
    Code:
       private void serialPort2_DataReceived(object sender, SerialDataReceivedEventArgs e)
            {            
                try
                {
    
                    while (serialPort2.BytesToRead > 0)
                    {
    
                       char[] buffer = new char[128]; // on crée un char de 255 caractere            
    
                        int longueur_bytes_read = serialPort2.Read(buffer, 0, buffer.Length); //lecture du buffer jusqu'a sa longeur buffer.Length               
                        //tes characteres sont contenus dans buffer.
                        //on remplit notre string value byte par byte par notre tableau de charactere buffer, le += fait que l'on écrase pas les données qui sont inserées, mais on les ajoutes.
    
                        for (int i = 0; i < longueur_bytes_read; i++)
                        {
                            value += buffer[i];                                           
                        }
    
                        StatusLabel1.Text = "Transfert en cours...";
             }
                }
    
                finally
                {
                    if (serialPort2.read != 0 )
                        MessageBox.Show("terminé");
                    StatusLabel1.Text = "Transfert Fini ";
                }
                
                }
    le problème je trouve une difficulté dans finally quelle est la condition qu'il faut mettre ????

    -----

  2. #2
    Arzhur

    Re : une boite de dialogue

    Bonjour,


    Je ne sais pas si j'ai tout compris, mais normalement si tu es dans ton bloc finally c'est que t'as tout lu...tu veux mettre quoi comme condition ?

  3. #3
    tinoch

    Re : une boite de dialogue

    voila, je récupère des données via un port sérié qui sont stock dans la "value", et je voudrais mettre a la fin de la réception(quand il n' y a plus de données dans le port série ) un message box comme quoi si bon il n'y a plus de données.

    j'ai essayé
    Code:
    finally
                {
                    if (serialPort2.read != 0 )
    mais la il attend pas la fin de la transmission

  4. #4
    Arzhur

    Re : une boite de dialogue

    mais la il attend pas la fin de la transmission
    C'est à dire ? il se passe quoi ? tu recois des trucs quand même ?

  5. A voir en vidéo sur Futura
  6. #5
    tinoch

    Re : une boite de dialogue

    oui, je reçois juste un paquet des données puis il affichage la boit de dialogue. donc j'ai pas tout les données.

  7. #6
    Arzhur

    Re : une boite de dialogue

    On dirait que tu lis plus vite que tu n'écris (sur liaison série...si je ne me gourre pas)..sur le net je vois que certains mettent des sleep avant de lire les données.


    Est-ce que tu sais combien de paquet tu envois ? Dans ce cas il suffit de les compter et de continuer de récupérer les données tant que le compte n'y est pas

    Est-ce que t'as pas un moyen d'envoyer un paquet qui symbolise un début de transmission et un autre une fin (ce qui te permettrait de savoir quand toutes les données ont été envoyées) ?

    Sinon à part ça, je n'ai pas trop d'idée.

  8. #7
    tinoch

    Re : une boite de dialogue

    le transfert se faire par paquet de 100 caractère
    le nombre total de boucle est de 1278
    ce qui nous fait un transfert de 1278*100 octet environs.

  9. #8
    Bluedeep

    Re : une boite de dialogue

    Bonjour,

    Citation Envoyé par Arzhur Voir le message
    Je ne sais pas si j'ai tout compris, mais normalement si tu es dans ton bloc finally c'est que t'as tout lu...tu veux mettre quoi comme condition ?
    Non, puisque un bloc finally est exécuté même si une exception est levée.
    Je m'interroge ici sur la présence d'un bloc finally sans catch d'exception..... bizarre .....

  10. #9
    Bluedeep

    Re : une boite de dialogue

    Citation Envoyé par tinoch Voir le message
    voila, je récupère des données via un port sérié qui sont stock dans la "value", et je voudrais mettre a la fin de la réception(quand il n' y a plus de données dans le port série ) un message box comme quoi si bon il n'y a plus de données.
    Déjà ne pas utiliser de bloc finally sans handler d'exception.

  11. #10
    Bluedeep

    Re : une boite de dialogue

    Citation Envoyé par tinoch Voir le message
    le transfert se faire par paquet de 100 caractère
    le nombre total de boucle est de 1278
    ce qui nous fait un transfert de 1278*100 octet environs.
    Il n'y a pas d'ack entre paquets ?

  12. #11
    Stan_94

    Re : une boite de dialogue

    Hello,
    le block Finally sert juste à faire quelque chose que le bloc try se termine bien ou pas.
    Et vu le code, il semble que pour tout ramassé, il y ai plusieurs appels à la méthode serialPort2_DataReceived
    Donc ce n'est pas un bloc exécuté à la fin de ton traitement.
    Je pense qu'il faut attendre une instruction de fin de transmission, comme suggéré par Arzhur.
    La plupart des protocoles fonctionnent comme ça (par exemple le code 221 de SMTP, un caractère "null" ou le "EOF" dans certains protocole de transmission de fichier)

  13. #12
    Arzhur

    Re : une boite de dialogue

    Non, puisque un bloc finally est exécuté même si une exception est levée.
    Je m'interroge ici sur la présence d'un bloc finally sans catch d'exception..... bizarre .....
    C'est vrai, j'ai fait la supposition qu'aucune Exception n'était levée....sinon je me suis dit qu'il y aurait p-e un message d'erreur ou un truc comme ça, et que l'auteur l'aurait marqué.

  14. #13
    Bluedeep

    Re : une boite de dialogue

    Citation Envoyé par Arzhur Voir le message
    C'est vrai, j'ai fait la supposition qu'aucune Exception n'était levée....sinon je me suis dit qu'il y aurait p-e un message d'erreur ou un truc comme ça, et que l'auteur l'aurait marqué.
    Ben, non, comme il fait un try sans catch avec un finally, il masque la levée éventuelle d'erreur (ce que je ne comprends pas ......).

  15. #14
    tinoch

    Re : une boite de dialogue

    merci pour le retour,

    est ce que vous pouvez m'aider avec un bout de code pour bien comprendre ????

  16. #15
    Arzhur

    Re : une boite de dialogue

    Ben, non, comme il fait un try sans catch avec un finally, il masque la levée éventuelle d'erreur (ce que je ne comprends pas ......).
    Oui tu as raison au temps pour moi...(je me m'imaginais à tort, que l'exception était propagée car non catchée)

    Ben dans ce cas, faudrait déjà mettre un catch pour voir s'il y a un soucis

  17. #16
    tinoch

    Re : une boite de dialogue

    je remplace le finaly par le catch

  18. #17
    Stan_94

    Re : une boite de dialogue

    Non, tu remplaces pas !!!
    Tu as un bloc try { ... } dans lequel tu fais ton traitement
    puis un ou des bloc(s) catch (ExceptionType name) { ... } pour intercepter les erreurs prévisibles. C'est à dire que si une erreur survient dans ton bloc try avec un type d'erreur défini dans un des bloc catch, le code du bloc correpsondant sera exécuté.
    et enfin un bloc finally { ... } qui sert à faire un traitement final quelque soit le résultat du try / catch.

  19. #18
    Bluedeep

    Re : une boite de dialogue

    Citation Envoyé par Arzhur Voir le message
    Oui tu as raison au temps pour moi...(je me m'imaginais à tort, que l'exception était propagée car non catchée)

    Ben dans ce cas, faudrait déjà mettre un catch pour voir s'il y a un soucis
    C'est toi qui avait raison et moi qui avait tort (bon, il est vrai qu'un try sans catch, c'est la première fois que j'en vois un).
    En effet, le bloc finally n'est jamais exécuté; il suffit de tester le bout de code suivant :

    Code:
           char[] charArray = new char[10];
                try
                {
                    Console.WriteLine("Before Exception");
                    charArray[12] = 'x'; // lève une exception.
                }
                finally
                {
                    Console.WriteLine("Finllay");
                }
                Console.WriteLine("Exit try Block");

  20. #19
    Ludwig1

    Re : une boite de dialogue

    Salut,

    tu peux aussi écrire ceci,




    : ReadDatasComx ( Comx --- flag )

    COMX !
    AX$ ERASE$
    BEGIN

    COMX
    ReadDatas AX$ APPEND$

    AX$ NIP 255 =

    IF
    S" Données reçues" SendMsg
    Flag @ TRUE
    THEN

    TIMEOUT?
    IF
    S" Transmission Interrompue par Time Out"
    SendMsg
    Flag @ TRUE

    THEN

    UNTIL


    ;


    Cordialement

    Ludwig

  21. #20
    Bluedeep

    Re : une boite de dialogue

    Citation Envoyé par Ludwig1 Voir le message
    Salut,

    tu peux aussi écrire ceci,
    Deux réponses sans queue ni tête par rapport à la question posée.
    Merci de vous abstenir.

  22. #21
    Ludwig1

    Re : une boite de dialogue

    Salut,

    pas tout à fait, regarde ici:

    Beaucoups de dévelopeurs travaillent Avec ça


    http://www.forth.com/swiftforth/eval-special.html

    MACHINE VIRTUELLE qui travaille en mode interactif ( Dialogue, un peu comme LISP )

    il est clair que tu ne connais pas.

    Tu peux charger la Version d'évaluation gratis

    C'était juste pour t'aider, au cas ou tu voudrais déveloper un peu plus vite


    Bonne journée

    Cordialement

    Ludwig

  23. #22
    Bluedeep

    Re : une boite de dialogue

    Citation Envoyé par Ludwig1 Voir le message
    pas tout à fait,
    Si, tout à fait; dans la mesure où la question concernait un code C#, une réponse concernant Forth est totalement hors sujet.

  24. #23
    Ludwig1

    Re : une boite de dialogue

    Salut,

    c'était juste pour info

    Cordialement

    Ludwig

  25. #24
    Bluedeep

    Re : une boite de dialogue

    Citation Envoyé par Ludwig1 Voir le message
    c'était juste pour info
    Info totalement dépourvue du moindre intérêt.

  26. #25
    Jack
    Modérateur

    Re : une boite de dialogue

    C'est bizarre, j'ai comme l'impression qu'on cherche à nous vendre quelque chose ...

  27. #26
    Bluedeep

    Re : une boite de dialogue

    Citation Envoyé par Jack Voir le message
    C'est bizarre, j'ai comme l'impression qu'on cherche à nous vendre quelque chose ...
    Si il veut vendre Forth comme standard de dev, il va avoir du boulot.

    Ca a été à la mode à la fin des années 80.

    Une courte période où il y a eu une grande frénésie de développements orientés IA à toutes les sauces : les "cogniticiens" - certains sortis d'on ne sait où - pullulaient (des gens sensés savoir extraire sous forme de règles le savoir du cerveau des experts pour le mettre dans les systèmes éponymes), les "moteurs d'inférence" - certains n'en avaient que le nom - etc .... puis le soufllet est retombé jusqu'à plus grande maturité.

  28. #27
    Jack
    Modérateur

    Re : une boite de dialogue

    je ne pensais pas à forth spécialement, mais à l'outil de développement donné en lien

  29. #28
    Ludwig1

    Re : une boite de dialogue

    Citation Envoyé par Jack Voir le message
    je ne pensais pas à forth spécialement, mais à l'outil de développement donné en lien

    Non je ne cherche pas à vendre quoi que ce soit, c'était juste pour montrer qu'il y a d'autres méthodes de travail que celle utilisée par tout le monde, parce que tout le monde fait comme tout le monde.

    Un des premier compilateur mécanique à probablement été mis au Point par Jacquard quand il a dévelopé sa machine à poiçonner les rubans de cuir pour faire marcher ses métiers à tisser selon un Programme établis justement sur les bandes de cuir Avec des trous et pas des trous. C'est d'une extrême rigidité.

    Comme on sait, Un compilateur actuel fabrique une liste
    avec des uns et des zéros, une liste presque aussi rigide que les rubans de cuir de Jacquard. La question qui se pose alors est de savoir comment on peut obtenir la souplesse? La réponse est en fait simple ça s'appelle Wordprocessing. C.a.d que je dois pouvoir introduire des mots nouveaux autrement dit, la machine doit pouvoir apprendre ces mots.
    Il se trouve que la compilation classique ne permet pas d'ateindre cet objectif.
    Pour pouvoir atteindre cet objectif, il nous faut réunir la Trilogie

    Compilation,
    Interprête,
    exécuteur des tâches

    en un seul paquet.
    C.a.d.

    Une machine Informatique Virtuelle

    Il se trouve que la presque seule Machine disponible est une machine de 4 èmme génération, FOURTH on enlève le U
    et ça donne FORTH.


    Cordialement


    Ludwig
    Dernière modification par Ludwig1 ; 07/08/2015 à 15h58.

Discussions similaires

  1. [Java] textArea dans une boîte de dialogue
    Par Lechero dans le forum Programmation et langages, Algorithmique
    Réponses: 9
    Dernier message: 24/02/2014, 13h41
  2. Excel - Boîte de dialogue
    Par ALB dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 20/11/2013, 07h04
  3. Détection de boite de dialogue
    Par invite562f1dc3 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 0
    Dernier message: 20/08/2009, 14h31
  4. Boite de dialogue script
    Par Laboum dans le forum Internet - Réseau - Sécurité générale
    Réponses: 5
    Dernier message: 02/01/2008, 13h36