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

Fortran Discussion :

Ecriture superposée sur l'écran


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 4
    Par défaut Ecriture superposée sur l'écran
    bonjour,

    en fortran, j'ai compteur qui s'affiche à l'écran.
    J'aimerai que ce compteur soit reécrit à la même place sur l'écran afin d'éviter le défilement et garder ainsi les informations écrites précédemment.

    Comment faire ?

    actuellement j'ai seulement la commande :

    merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 45
    Par défaut
    A mon avis ce que tu veux faire n'est pas possible...
    La seule facon de contourner cela, est de re-ecrire a chaque fois tt ce que tu veux voir afficher + ton compteur qui s'incremente, et faire un 'clear' de l'ecran entre chaque affichage.
    Tu auras ainsi l'impression de voir quelque chose de statique, avec seulement ton compteur qui s'incremente.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 79
    Par défaut ecriture sur une même ligne
    Bonjour,

    l'idée est de savoir où en est l'avancement du programme mais de ne pas remplir ton écran de lignes inutiles, c'est bien ça ?
    1) Si entre deux appel à ta commande write(*,*)step, tu n'affiches rien de nouveau à l'écran, pour ne pas sauter de ligne, il te faut utiliser par exemple l'instruction advance dans ton write(*,*)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    write(6,'(i0)',advance="NO") step
    une version plus pratique serait de n'écrire step qu'une fois sur 10 par exemple (avec un modulo)
    Encore plus classe, faire une barre de progression ! Tu n'écris plus step mais "-", tous les modulo 100 ou modulo stepmaximum/100 !

    2) Si par contre, entre chaque écriture de step tu as des sorties sur ton écran...il ne vaut mieux pas faire d'écriture de step !

    en espérant que ceci répond à ta question

  4. #4
    Membre émérite
    Avatar de Ladgalen
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2007
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 466
    Par défaut
    Une petite indication en ce qui concerne advance="no" !

    Sur mon système ça ne marche pas quand je compile avec ifort. Ce n'est pas un problème car je trouve que c'est un peu de l'estétique et fortran n'est pas fait pour ça.

    La solution la plus efficace est d'utiliser un modulo et de n'écrire step que de temps en temps. Tu peux aussi créer un fichier de sortie pour enregistrer les données de sortie dans un fichier ce qui te permet de pas les perdre à l'écran.

  5. #5
    Membre émérite Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Par défaut
    en gros la méthode: tu écris avec l'option advance='no' puis tu éfface la ligne et tu réécris:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    do i=1,80  !effacement de la ligne
              write( *,'(a1)',advance='no')char(8)
            enddo
            write( *,'(a,i7)',advance='no')"N° pas :",nt_i
    char(8) est le caractère d'éffacement

    bon ce truc ne marche pas avec ifort car la vitesse d'éxécution fait que l'éffacement intervien de suite... du coup rien ne s'affiche... mais bon...

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 4
    Par défaut
    bonjour et merci à tous d'avoir essayer de répondre à cette question.

    à partir de vos différentes réponses, j'ai remplacé ma ligne par la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    write(6,'(a1,i0)',advance="NO") char(13),step
    et ça marche impeccable avec le compilateur g95

    encore merci pour votre aide

Discussions similaires

  1. DIV qui suit le scroll de l'écran sans se superposer sur les autres !
    Par Dsphinx dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/07/2011, 11h43
  2. Superposer graticule sur un écran
    Par PH_DEMS dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 10/11/2008, 18h29
  3. Video à cheval sur 2 écrans ???
    Par Invité1 dans le forum Vidéo
    Réponses: 4
    Dernier message: 08/08/2005, 13h44
  4. Ecriture verticale sur un canvas
    Par blaiseac dans le forum Langage
    Réponses: 3
    Dernier message: 01/08/2005, 21h59
  5. [Delphi] Affichages de caractères sur l'écran
    Par julie20 dans le forum Débuter
    Réponses: 12
    Dernier message: 17/09/2003, 23h21

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