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

Free Pascal Discussion :

Affichage caractères spéciaux (tableaux) dans la fenêtre CMD sous Windows 10


Sujet :

Free Pascal

  1. #1
    Membre du Club

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 42
    Points : 47
    Points
    47
    Par défaut Affichage caractères spéciaux (tableaux) dans la fenêtre CMD sous Windows 10
    Bonjour,

    Je suis sous Windows 10 et je convertis plusieurs programmes Turbo-Pascal 7.00 MSDOS en Free Pascal.

    L'interface de mes programmes ne nécessite pas que je bascule en Lazarus, mais j'avais fait quelques efforts esthétiques en affichant des caractères spéciaux alt 191, alt 192 etc. permettant de tracer des tableaux.

    Lorsque je lance le programme avec CMD.EXE, je n'arrive pas à afficher les caractères spéciaux. J'ai essayé tous les codes page que je connaissais, mais manifestement pas le bon.

    Je ne vais tout de même pas faire mes tableaux façon "années 80" avec des +, des -, des ! ou pire avec des *

    Comment puis-je faire pour que les caractères spéciaux s'affichent correctement ?

    Merci d'avance pour votre aide.

    Cordialement,

    4BIN

  2. #2
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 927
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 927
    Points : 23 234
    Points
    23 234
    Billets dans le blog
    10
    Par défaut
    Bonjour

    Il faut vérifier le code page utilisé par Windows s'il peut afficher tes caractères spéciaux.

    Ils doivent être des caractères étendus de la table ASCII (ICI).

    Tu utilises un éditeur de texte et tu tapes ces caractères avec la touche Alt activé, par exemple Alt + 144 = É ou Alt + 212 = È ou Alt + 179 =│ou Alt + 186 = ║.
    Vous pouvez utiliser les FAQ (ICI) ou les Tutoriels (ICI) et aussi accéder au blog (ICI)

  3. #3
    Membre du Club

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 42
    Points : 47
    Points
    47
    Par défaut
    Bonjour JML19,

    Lorsque je saisis ALT 144 ou ALT quelquechose, que ce soit avec Word, Notepad ou la fenêtre de CMD.EXE, il ne se passe rien

    4BIN


  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 681
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 681
    Points : 13 087
    Points
    13 087
    Par défaut
    Il faut obligatoirement taper le code sur le pavé numérique (bien sûr avec NumLock ON)

  5. #5
    Membre du Club

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 42
    Points : 47
    Points
    47
    Par défaut
    Effectivement je ne les avais pas saisi avec le clavier numérique.

    Dans Word, çà ne fonctionne pas, mais dans NotePad et dans la fenêtre CMD.EXE cette fois, çà fonctionne.

  6. #6
    Membre du Club

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 42
    Points : 47
    Points
    47
    Par défaut
    En fait c'est lorsque j'écris un programme dans lequel se trouve une chaîne avec des caractères spéciaux, que la conversion ne se fait pas.

    Y a-t-il une instruction à ajouter au programme pour que la conversion se fasse ?

    Merci pour votre aide...



    4BIN

  7. #7
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 927
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 927
    Points : 23 234
    Points
    23 234
    Billets dans le blog
    10
    Par défaut
    As-tu testé hexa == ou code hexa == ?
    Vous pouvez utiliser les FAQ (ICI) ou les Tutoriels (ICI) et aussi accéder au blog (ICI)

  8. #8
    Membre du Club

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 42
    Points : 47
    Points
    47
    Par défaut
    Je viens d'essayer

    writeln($BF);

    et çà me renvoie 191

    et

    writeln(char($BF));

    çà renvoie le caractère non converti


  9. #9
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 681
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 681
    Points : 13 087
    Points
    13 087
    Par défaut
    Citation Envoyé par forbin Voir le message
    Y a-t-il une instruction à ajouter au programme pour que la conversion se fasse ?
    Regarde ici.

    Et pour plus d'infos, le forum Free Pascal

  10. #10
    Membre du Club

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 42
    Points : 47
    Points
    47
    Par défaut
    J'ai compilé l'unité SetDefaultCodePages

    qui me semble-t-il comportait une petite erreur

    New_CONSOLE_FONT_INFOEX.dwFontSize.Y := 16;

    au lieu de

    New_CONSOLE_FONT_INFOEX.dwFontSizeY := 16;


    J'ai ensuite lancé


    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
     
    PROGRAM CARAC;
     
    {$mode objfpc}{$H+}
    {$codepage cp1252}
     
    USES DOS, CRT, WINDOWS, SETDEFAULTCODEPAGES;
     
    VAR SST:SHORTSTRING;
     
    BEGIN
     
      Writeln('Console output codepage: ', GetTextCodePage(Output));
      Writeln('System codepage: ', DefaultSystemCodePage);
     
      SST:=#191;
     
      Writeln(char(191),' ',SST);
     
    END.
    et j'ai eu droit à deux magnifiques points d'interrogation à l'envers


  11. #11
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 927
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 927
    Points : 23 234
    Points
    23 234
    Billets dans le blog
    10
    Par défaut
    C'est normal tu n'es pas dans la bonne table ASCCII

    Le caractère #191 est bien le point d'interrogation inversé.

    Vous pouvez utiliser les FAQ (ICI) ou les Tutoriels (ICI) et aussi accéder au blog (ICI)

  12. #12
    Membre du Club

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 42
    Points : 47
    Points
    47
    Par défaut
    Je viens de lancer

    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
     
    PROGRAM CARAC;
     
    {$mode objfpc}{$H+}
    {$codepage cp1252}
     
    USES DOS, CRT, WINDOWS, SETDEFAULTCODEPAGES;
     
    VAR i:INTEGER;
        rk:CHAR;
     
    BEGIN
     
      Writeln('Console output codepage: ', GetTextCodePage(Output));
      Writeln('System codepage: ', DefaultSystemCodePage);
     
      for i:=1 to 500 do begin
        Writeln(char(i));
        if (i mod 24=0) then rk:=readkey;
      end;
    END.
    mais à aucun moment n'est apparu les caractères spéciaux pour tableau.


  13. #13
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 428
    Points : 43 051
    Points
    43 051
    Par défaut
    Essayes la page de code 850
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  14. #14
    Membre du Club

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 42
    Points : 47
    Points
    47
    Par défaut
    Bonjour,

    Merci Chrtophe.

    Je viens de lancer

    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
     
    PROGRAM CARAC;
     
    {$mode objfpc}{$H+}
    {$codepage cp850}
     
    USES DOS, CRT, WINDOWS, SETDEFAULTCODEPAGES;
     
    VAR i:INTEGER;
        rk:CHAR;
     
    BEGIN
     
      Writeln('Console output codepage: ', GetTextCodePage(Output));
      Writeln('System codepage: ', DefaultSystemCodePage);
     
      for i:=1 to 500 do begin
        Writeln(i:3,' ',char(i));
        if (i mod 24=0) then rk:=readkey;
      end;
     
    END.
    Ca ne donne rien de mieux.

    Bizarrement, le code page affiché est toujours 1250, même lorsque j'écris

    pire lorsque ma fenêtre CMD est codée en CP850, elle est convertie en CP1250 juste après le lancement du programme.


  15. #15
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 927
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 927
    Points : 23 234
    Points
    23 234
    Billets dans le blog
    10
    Par défaut
    Bonjour

    Il faudrait modifier le code page dans Windows.
    Vous pouvez utiliser les FAQ (ICI) ou les Tutoriels (ICI) et aussi accéder au blog (ICI)

  16. #16
    Membre du Club

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 42
    Points : 47
    Points
    47
    Par défaut
    Est-ce que çà veut dire que je dois aller dans REGEDIT ?

    Dans ce cas, comment dois-je procéder ?

    Merci JML19 pour ton assistance

  17. #17
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 927
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 927
    Points : 23 234
    Points
    23 234
    Billets dans le blog
    10
    Par défaut
    Peut être là :

    Cliquez sur Démarrer, pointez sur Tous les programmes, sur Accessoires, sur Outils système, puis cliquez sur Table des caractères.
    Vous pouvez utiliser les FAQ (ICI) ou les Tutoriels (ICI) et aussi accéder au blog (ICI)

  18. #18
    Membre du Club

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 42
    Points : 47
    Points
    47
    Par défaut
    Je recherché la table des caractères. J'ai sélectionné consolas, police de CMD.EXE.

    Apparemment, rien n'est paramétrable dans cette boite de dialogue

    Nom : table_carac.JPG
Affichages : 3944
Taille : 59,0 Ko

    Lorsque j'ai saisi 850 dans la case Page Unicode, çà a modifié instantanément tous les caractères de la table, ma çà n'a rien reparamétré.


  19. #19
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    14 927
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 14 927
    Points : 23 234
    Points
    23 234
    Billets dans le blog
    10
    Par défaut
    La page de code change effectivement dans sa totalité.

    Le fait de changer de page de code te permettra de voir si cela influe avec Windows 10 car je ne le sais pas.
    Vous pouvez utiliser les FAQ (ICI) ou les Tutoriels (ICI) et aussi accéder au blog (ICI)

  20. #20
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 428
    Points : 43 051
    Points
    43 051
    Par défaut
    Que te donne la commande chcp sous cmd ? Chez moi ça retourne 850.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

Discussions similaires

  1. Affichage caractère spéciaux
    Par nicoaix dans le forum Langage
    Réponses: 9
    Dernier message: 19/05/2006, 12h09
  2. Affichage caractéres spéciaux dans une alert.
    Par nebule dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 05/05/2006, 13h51
  3. caractère spéciaux à mettre dans une variable
    Par BernardT dans le forum Langage
    Réponses: 7
    Dernier message: 12/12/2005, 11h24
  4. Affichage de caractère spéciaux absent dans le code source
    Par HNT dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 03/11/2005, 22h38
  5. [Delphi+Access] Pb affichage caractère spéciaux
    Par fred64 dans le forum Bases de données
    Réponses: 6
    Dernier message: 02/06/2004, 10h53

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