Recuperer texte et afficher *

drodidier Messages postés 4 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
Bonjour,
j'aimerai écrire un petit programme en turbo pascal qui nous permet de remplacer un texte saisi par le caractère (*),mais je me demande quelle fonction utiliser car je ne suis pas vraiment un pro en pascal.
merci d'avance.

4 réponses

KX Messages postés 19031 Statut Modérateur 3 020
 
Je ne sais pas trop comment le faire avec des étoiles, mais voici une méthode qui t'ira surement.

1) Je change la couleur du texte avec celle du fond de la console.
2) Je remonte mon curseur pour effacer les lignes que je ne veux plus voir affichées.

Tu trouveras plus d'informations sur le tutoriel de Cyberzoïde auquel je me réfère toujours lorsque je veux faire des trucs un peu sophistiqué de ce genre.

program drodidier;

uses crt; // ou wincrt selon les versions

const FONDECRAN = 0; // noir
const COULEURTEXTE = 7; // gris

var s:string; i,y:integer;
begin
     // Début du programme

     textbackground(FONDECRAN);
     textcolor(COULEURTEXTE);

     for i:=1 to 5 do
         writeln('bla bla bla');

     // Début de la section à protéger

     y:=wherey; // position de la ligne à partir de laquelle effacer
     write('Entrez un texte secret : ');
     
     // On cache le texte écrit

     textcolor(FONDECRAN);

     readln(s);    

     // On efface les lignes précédentes

     for i:=wherey downto y do // on remonte jusqu'à l'indicateur
     begin
          gotoxy(1,i); // on remonte d'une ligne
          clreol;      // on efface la ligne
     end;

     // On reprend le cours normal du programme

     textcolor(COULEURTEXTE);

     writeln('Votre texte a bien ete pris en compte, merci.');

     for i:=1 to 5 do
         writeln('bla bla bla');

     readln;
end.
La confiance n'exclut pas le contrôle
1
KX Messages postés 19031 Statut Modérateur 3 020
 
Remarque : dans un premier temps j'avais dit qu'une seule méthode suffisait, or la combinaison des deux est de loin la plus sûre, car même si les couleurs sont confondues, le texte est bien écrit sur la console, et pourrait être copier-coller, d'où l'intérêt de l'effacer proprement.
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Bonne idée !
Et bien, en cas de problème tu sais où nous trouver ;-)
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Bon alors je m'y colle quand même, qu'est-ce que tu veux faire exactement ?
0
drodidier Messages postés 4 Statut Membre
 
Ce que je veux faire exactement: un programme en turbo pascal.
lorsqu'on tape une lettre sur le clavier au lieu d'afficher la lettre en question qu'il affiche * a la place de cette lettre.
exemple:
bonjour --->*******.
0