Fonction gotoxy avant la partie affichée [Résolu]

Messages postés
27
Date d'inscription
mercredi 19 janvier 2011
Dernière intervention
1 novembre 2018
- 7 mars 2014 à 20:26 - Dernière réponse :
Messages postés
27
Date d'inscription
mercredi 19 janvier 2011
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)
Afficher la suite 

Votre réponse

2 réponses

Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Dernière intervention
23 janvier 2016
- 13 mars 2014 à 13:35
0
Merci
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...
Commenter la réponse de yann_lo_san
Messages postés
27
Date d'inscription
mercredi 19 janvier 2011
Dernière intervention
1 novembre 2018
- 21 mars 2014 à 21:57
0
Merci
Salut,
exactement ce que je cherchais, merci bien...
Jean-Claude
Commenter la réponse de salut67

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.