Newsgroup: it.comp.lang.c
Titolo: help again

Ciao devo fare per prima possibile un programma che ha lo stesso
comportamento del comando DOS more.
Chiamarlo mymore e utilizzarlo nel formato:
C:\> type file.txt | mymore
questo comando significa "esegui il comando type sul file file.txt e
invia lo standard output del type nello standard input del mymore".
Mymore deve porsi in mezzo tra lo stdout del type e il video. Quindi
deve collezionare le stringhe che gli vengono inviate dal type e poi
ristamparle a video nel formato che vogliamo.
Ponendosi in mezzo mymore avrà come stdin lo stdout del type e il suo
stdout andrà finalmente a video
La formattazione che vogliamo fare è quella di visualizzare 24 righe e
poi attendere che venga premuto 1 tasto prima di visualizzare le righe
successive.
Mi basta un aiuto iniziale come ad esempio l'algoritmo, ma se qualcuno
mi manda l'intero codice non è che mi faccia dispicere:) Ringrazio in
anticipo chi mi aiuta. Grazie :)

comportamento del comando DOS more.
Hai seguito il consiglio che ti è stato dato?
Dove è il problema? Prima dovresti provare tu a fare il programma e
poi chiedere aiuto.
-- 
Marco Barisione (ICQ 84277092)

Marco Barisione wrote:

Ciao,
il problema è che non riesco a scaricare quel codice. So che dovrei fare
orima io il programma, ma sta volta non ne vengo fuori e sto solo
cercando un'imbeccata.....tutto qua.

 cercando un'imbeccata.....tutto qua.
Ok, quali problemi hai? Il programma deve semplicemente leggere una riga
dallo  stdin, stamparla  ed incrementare  un contatore. Se  il contatore
supera un certo  massimo il programma aspetta che  l'utente prema invio.
Quali di queste cose non ti riescono?
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Quando un uomo porta dei fiori a sua moglie senza motivo, 
un motivo c'e`.

 anticipo chi mi aiuta. Grazie :)
more e` open source, cosi` come less, un suo clone migliorato: li trovi 
in quasi tutti i siti che trattano software GNU & Co. Hint: more usa le 
curses per gestire l'output su video, sicche`...
-- 
Alla prossima,
Marco

 un motivo c'e`.
Ricominciamo dall'inizio, cerco di spiegarmi.  Mymore deve porsi in mezzo tra
lo stdout del type e il video. Quindi deve collezionare le stringhe che gli
vengono inviate dal type e poi ristamparle a video nel formato desiderato.
Ponendosi in mezzo mymore avrą come stdin lo stdout del type e il suo stdout
andrą finalmente a video. La formattazione che vogliamo fare č quella di
visualizzare 24 righe e poi attendere che venga premuto 1 tasto prima di
visualizzare le righe successive.
Tu mi dici di leggere una riga dello stdin, stamparla ed incrementare un
contatore.
Ecco le domande: per leggere la riga devo usare  il gets. Per contare le righe
che tipo di contatore uso? Forse un puntatore al primo elemento di ogni riga?
Mi dice che se il contatore supera un certo massimo il programma deve aspettare
l'invio. Che comando uso per fare ciņ.....forse il getch?
Grazie in anticipo.
Claudio

 aspettare l'invio. Che comando uso per fare cio`.....forse il getch?
getchar(). getch() non e` una funzione standard.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Runtime error 6D at f000:a12f : user incompetente

 getchar(). getch() non e` una funzione standard.
Caro Kronos ti ringrazio. Adesso cerco di cavarmela da solo :)
Ciao


battere il cuore....però immagino che KISS sia una sigla informatica :)
Per il bacio dovrai farcela da solo, pero ti posso dare 2 tip:
1) Pensa prima di scrivere :P  Fai un po' di casino con le lettere :P
2) Credo che Kronos si riferisca alla mia firma :P  Che non e' altro 
   che lo spirito del C, che trovi riportato nello standard. Potresti 
   tradurla in italiano come "Mantieni il linguaggio semplice e non lo
   appesantire inutilmente".
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."

 "Provide only one way to do an operation."
Sono stato illuminato e ho "partorito" il programma sul quale mi ero incastrato a
livello di algoritmo. Vi mando il codice cosě lo possiamo discutere se vi fa
piacere:
#include <stdio.h>
#include <conio.h>
int main(void)
{
   char string[256];
   int contarighe=0;
   int maxrow;
   maxrow = 25; //Nella finestra DOS standard ci sono 25 righe
   while(gets(string)) //Finchč gets non torna null
   {
    contarighe++; //Contiamo il numero delle righe
    if(contarighe > maxrow )
    {
   printf("%s","Premere un tasto per continuare ...");
   contarighe=0;
   getch();
   printf("\r
\r");
    }
    puts(string); // Stampa a video la stringa che avevo letto con gets()
   };
   printf("%s %d","Righe visualizzate #",contarighe);
   return 0;
}