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

Ada Discussion :

Line feed and carriage return inversés mais même comportement sauf sur terminaux X


Sujet :

Ada

  1. #1
    Invité
    Invité(e)
    Par défaut Line feed and carriage return inversés mais même comportement sauf sur terminaux X
    Bonjour,
    Bon, je ne sais pas si le problème s'exprime ainsi. Mais c'est à peu près ça.

    J'ai écrit une un bibliothèque avec Ada que j'ai exporté pour le langage C.

    Dans mon code de programme Ada actuellement on peut lire ce ceci :
    Code ada : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if Line /= null then
       Text_Io.Put(Line.all);
       if Line_Max-(Line'Length) > 1 then
          Text_Io.Put(Fixed."*"((Line_Max-Line'Length)-1, ' '));
          Text_Io.Put(Character'Val(10));
       else
          Text_Io.Put(Character'Val(13));
       end if;                                       
       Free(Line);                     
    end if;

    pour que ça fonctionne avec le langage C grâce à un export je doit inverser les caractères de contrôle.

    Avec les terminaux c'est encore différent.

    C'est pas simple à géré sur de gros projet.

    Impossible de faire un New_Line aussi en version Export C.

    Je suis sur un système compatible IBM PC avec Gnu/Linux et gnat 4.6

  2. #2
    Invité
    Invité(e)
    Par défaut
    A, ben j'ai trouvé !!



    Je met Ascii.CR et Ascii.LF (je suis pas certain qu'il soit utile) respectivement pour les caractères 10 et 13, je sais plus ou j'en suis.

    Apparemment c'est résolu.

    Merci quand même.

  3. #3
    Invité
    Invité(e)
    Par défaut le problème n'est pas là
    Finalement ma semi-solution, je dis semi parce qu'encore ça fonctionne qu'à moitié c'est ça :

    Code ada : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    --
                            if Line /= null then
                               Text_Io.Put(Line.all);
                               if (Line_Max-(Line'Length)) > 1 then
                                  Text_Io.Put(Fixed."*"((Line_Max-Line'Length), ' '));
                                  Text_Io.Put(ASCII.LF);
                               else
                                  Text_Io.Put(ASCII.LF);
                               end if;                         
     
                               Free(Line);                     
                            end if;

    Mais j'ai un décalage de 24 caractères à la base de Line_max sensé être le nombre de colonnes du terminal.
    Je vais trouver pourquoi mais normalement la procédure ci-dessus est plus naturelle.

    En fait ça marche même à moitié parce que parfois j'ai quand même des truc comme : fin.fin.n.
    Dernière modification par Invité ; 27/01/2015 à 02h09. Motif: il est que c'est pas simple.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplacer Line Feed par Carriage return dans XML généré
    Par Patrick57 dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 16/10/2013, 15h10
  2. Line Feed et Carriage Return dans un champs MEMO de Access..
    Par Mustard007 dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/01/2006, 06h52
  3. [MSSQL 2K] PBM suppression backslah+carriage return !?
    Par fredfred dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 27/05/2004, 13h21

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