Fonction gotoxy avant la partie affichée

Résolu
salut67 Messages postés 27 Date d'inscription mercredi 19 janvier 2011 Statut Membre Dernière intervention 1 novembre 2018 - 7 mars 2014 à 20:26
salut67 Messages postés 27 Date d'inscription mercredi 19 janvier 2011 Statut Membre Dernière intervention 1 novembre 2018 - 21 mars 2014 à 21:57
Bonjour,
sous windows XP+7, j'ai une fenêtre de commande dans laquelle j'exécute un fichier test.cmd ; le résultat s'affiche : en général 20 ou 30 lignes, parfois 100 lignes. Le tout est lisible en utilisant l'ascenseur.
Je souhaite ajouter à la fin du test.cmd une partie complétant l'affichage des différentes lignes (*). J'ai sous la main un programme perso myprint.c que je peux modifier, l'idée étant de l'appeler dans test.cmd pour positionner mon curseur et compléter les lignes.
Ok pour les lignes actuellement affichées, mais quid des lignes précédentes ? Elles sont accessibles par l'ascenseur mais sont en deça de la 1ère ligne, donc inaccessibles par gotoxy. Une idée ? Une solution de contournement ?
Merci bien.
Jean-Claude

(*) je ne veux pas modifier l'algorithme (trop lourds, trop de ralentissements, je veux conserver l'affichage rapide des info essentielles, puis ensuite des info supplémentaires)

2 réponses

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
13 mars 2014 à 13:35
Salut,

on peut accéder à une cellule (caractère) de n'importe quelle lignes dans la console en utilisant les Apis Win :

Récupérer le handle de la console (in et out)
DWORD dw = STD_OUTPUT_HANDLE; // ou STD_INPUT_HANDLE
HANDLE hdl = GetStdHandle(dw);

remplir une structure : CONSOLE_SCREEN_BUFFER_INFO
Apis : GetConsoleScreenBufferInfo()

Se baser sur les coordonnées du curseur pour se positionner dans le "buffer" écran. (struct : COORD )

et avec la fonction suivante,

BOOL WINAPI WriteConsoleOutput(
HANDLE hConsoleOutput,
const CHAR_INFO *lpBuffer,
COORD dwBufferSize,
COORD dwBufferCoord,
PSMALL_RECT lpWriteRegion
);

tu pourras écrire dans une région "hors de portée" du curseur courant.

bye...
0
salut67 Messages postés 27 Date d'inscription mercredi 19 janvier 2011 Statut Membre Dernière intervention 1 novembre 2018
21 mars 2014 à 21:57
Salut,
exactement ce que je cherchais, merci bien...
Jean-Claude
0
Rejoignez-nous