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

 C Discussion :

Porter une fonction sous unix


Sujet :

C

  1. #1
    Membre très actif
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut Porter une fonction sous unix
    Bonjour,
    J'ai besoin d'une fonction pour travailler et je désire la porter sur un autre système comme unix/mac mais je ne trouve pas comment remplacer certaines appèles

    la fonction est:
    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
    void MYclrwin(int left, int top, int right, int bottom)
    // efface une zone de l'écran
    {
      int i ;
      COORD dwCoord = {0, 0} ;
      COORD dwSize = {(right-left+1),(bottom-top+1)} ;
      HANDLE hScreen=GetStdHandle(STD_OUTPUT_HANDLE) ;
      CHAR_INFO Buffer[dwSize.X*dwSize.Y] ;
      SMALL_RECT Region[2] ;
      CONSOLE_SCREEN_BUFFER_INFO Info;
     
      if(GetConsoleScreenBufferInfo(hScreen, &Info))
      {
          for(i=0 ; i < dwSize.X*dwSize.Y ; i++)
          {
                Buffer[i].Char.AsciiChar=' ' ;
                Buffer[i].Attributes = Info.wAttributes ;
          }
          Region[0].Left = left-1 ;
          Region[0].Right = right-1 ;
          Region[0].Top = top-1 ;
          Region[0].Bottom = bottom-1 ;
          WriteConsoleOutput(hScreen, (CHAR_INFO*) Buffer, dwSize, dwCoord, Region) ;
          gotoxy (left, top);
      }
     
    }
    Si quelqu'un connaîtrait une solution pour se rapprocher de cette fonction mes recherches n'ont rien donnée merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Par défaut
    Citation Envoyé par Johnny P. Voir le message
    Bonjour,
    J'ai besoin d'une fonction pour travailler et je désire la porter sur un autre système comme unix/mac mais je ne trouve pas comment remplacer certaines appèles

    la fonction est:
    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
    void MYclrwin(int left, int top, int right, int bottom)
    // efface une zone de l'écran
    {
      int i ;
      COORD dwCoord = {0, 0} ;
      COORD dwSize = {(right-left+1),(bottom-top+1)} ;
      HANDLE hScreen=GetStdHandle(STD_OUTPUT_HANDLE) ;
      CHAR_INFO Buffer[dwSize.X*dwSize.Y] ;
      SMALL_RECT Region[2] ;
      CONSOLE_SCREEN_BUFFER_INFO Info;
     
      if(GetConsoleScreenBufferInfo(hScreen, &Info))
      {
          for(i=0 ; i < dwSize.X*dwSize.Y ; i++)
          {
                Buffer[i].Char.AsciiChar=' ' ;
                Buffer[i].Attributes = Info.wAttributes ;
          }
          Region[0].Left = left-1 ;
          Region[0].Right = right-1 ;
          Region[0].Top = top-1 ;
          Region[0].Bottom = bottom-1 ;
          WriteConsoleOutput(hScreen, (CHAR_INFO*) Buffer, dwSize, dwCoord, Region) ;
          gotoxy (left, top);
      }
     
    }
    Si quelqu'un connaîtrait une solution pour se rapprocher de cette fonction mes recherches n'ont rien donnée merci
    Salut, j'ai déjà fait cela il y a deux ou trois ans, il faut que tu regarde tu côté de ioctl, tputs, tgoto et a la rigueur pour les couleur et autre xtgetstr.

    Dans l'idée d'après mes souvenirs, tu peux modifie la structure termios de ton terminal afin que tu puisse écrire ou tu le souhaite, tu te "place" au pixel que tu souhaite effacer grâce à tgoto, et tu écris ce que tu souhaite avec tputs.

    Voila pour infos, j'avais fait cela sous FreeBSD, pas Linux.

    NeoKript

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 962

  4. #4
    Membre très actif
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    Pour curses j'en ai déjà entendu parlé mais je n'ai pas trouvé une fonction qui fait la même chose que celle que j'ai posté , faudrait la coder mais mes compétences de curses sont limitées
    Je vais voir du côté de ce que NeoKript me dit

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2007
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2007
    Messages : 634
    Par défaut
    Citation Envoyé par Johnny P. Voir le message
    Pour curses j'en ai déjà entendu parlé mais je n'ai pas trouvé une fonction qui fait la même chose que celle que j'ai posté , faudrait la coder mais mes compétences de curses sont limitées
    Je vais voir du côté de ce que NeoKript me dit
    Il faut dans un premier temps que tu ai la lib (pour l'installer sudo apt-get install libncurses5-dev) comme ca tu aura les man des fonctions dont je t'ai parlé. Hésite pas si tu a un soucis.

    NeoKript

Discussions similaires

  1. [DEV] Porter une appli sous MacOS sans Mac :aie:
    Par Uther dans le forum Apple
    Réponses: 6
    Dernier message: 22/12/2007, 14h07
  2. Compréhension d'une fonction sous Oracle
    Par sat83 dans le forum SQL
    Réponses: 2
    Dernier message: 15/11/2007, 14h43
  3. erreur de compilation d'une servlet sous unix
    Par schrodinger dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 07/11/2007, 19h57
  4. Une fonction sous Excel 2007 ne fonctionne pas sous Excel 2003
    Par Dryss51 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 27/07/2007, 08h09
  5. [SQL] porter une fonction MySql sur PostgreSQL
    Par spilliaert dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 02/06/2006, 20h30

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