Keywords della Console - dettaglio
- La maggior parte di queste hanno la stessa funzionalità di quelle del QBasic, quindi potresti facilmente usarle. Quando mi riferisco a Unix, io intendo Linux & Unix. Le seguenti parole chiavi sono tutte incapsulate nell'oggetto CONSOLE, quindi Console.PRINT equivale a PRINT.
| CLS |
CONSOLE Statement |
Windows/Unix |
|
| |
pulisce lo schermo a tutto testo, e riempe la console con il colore di sfondo corrente. Ritorna anche il cursore nella posizione iniziale in alto a sinistra dello schermo.
Sintassi: CLS CLS
Dettagli: Sotto Windows, CLS è una parola chiave di CONSOLE, sotto Linux/Unix, CLS è implementata come una chiamata di sistema per clear, quindi puoi usarlo senza compilare come CONSOLE sotto Linux/Unix. |
|
| COLOR |
CONSOLE Statement |
Windows/Unix |
|
| |
Imposta i colori correnti dello schermo della console.
- Foreground è il colore del testo (intervallo/range = 0-31)
- Background è il colore dello schermo (intervallo/range = 0-7)
0 = nero/black 1 = blu/blue 2 = verde/green 3 = azzurro/cyan
4 = rosso/red 5 = viola/magenta 6 = marrone/brown 7 = bianco/white
8 = grigio/grey 9 = blu chiaro/ light blue 10 = verde chiaro/light green
11 = azzurro chiaro/light cyan 12 = rosa/light red
13 = viola chiaro/light magenta
14 = giallo/yellow 15 = bianco lucente/bright white
Sintassi: COLOR [foreground][,background] COLOR 15 COLOR 10, 3 COLOR ,1 COLOR
|
|
| CONSOLE.INPUTHANDLE |
CONSOLE Statement |
Windows |
|
| |
Ritorna il gestore di input della console per l'uso di chiamate API.
Sintassi: CONSOLE.INPUTHANDLE hnd = CONSOLE.INPUTHANDLE
|
|
| CONSOLE.OUTPUTHANDLE |
CONSOLE Statement |
Windows |
|
| |
Ritorna il gestore dell'output della console per l'uso con le chiamate API.
Sintassi. CONSOLE.OUTPUTHANDLE hnd = CONSOLE.OUTPUTHANDLE
|
|
| CSRLIN |
CONSOLE Function |
Windows/Unix |
|
| |
Ritorna la riga corrente del cursore sullo schermo.
Sintassi: CSRLIN Riga% = CSRLIN
|
|
| GET$ |
CONSOLE Function |
Windows/Unix |
|
| |
Questa funzione è principalmente usata in programmi CGI, ma può essere usata come una funzione di lettura generica. Essa legge la STDIN.
Sintassi: GET$(espressione numerica) A$ = GET$(10)
Dettagli: GET$ sotto Linux/Unix non è una funzione di console. Per usare GET$, compilare la tua applicazione come CONSOLE o CGI sotto Windows. |
|
| INKEY$ |
CONSOLE Function |
Windows/Unix |
|
| |
Ritorna una stringa a 1 o 2 byte contenente un carattere letto dalla periferica standard di input (console/tastiera). Una stringa vuota viene ritornata se non c'è nessun carattere nel buffer tastiera.
Sintassi: INKEY$ A$ = INKEY$
Dettagli: I tasti estesi iniziano con CHR$(27) e sono lunghi 2 bytes. I tasti estesi sono le frecce cursore, pagina su/giu, home/inizio, end/fine, in/insert, canc/del, e i tasti funzione F1-F12. Puoi anche intrappolare i tasti shift, ctrl, alt, caps/num/scroll lock sotto Windows. |
|
| INPUT |
CONSOLE Statement |
Windows/Unix |
|
| |
Legge una intera linea di input dalla console. Questa parola chiave causa l'interruzione del programma e l'attesa dell'input di dati fino alla pressione del tasto invio/enter/carriage return.
Sintassi: INPUT ['Prompt string'{;|,}] variable INPUT A$ INPUT 'Enter name: '; A$
Dettagli: INPUT per Rapid-Q non è esattamente compatibile con l'INPUT di QBasi . E' più simile a LINE INPUT di QBasic . La variabile ritornata può essere una stringa o una variabile numerica. Sotto Windows, INPUT è implementato come una funzione di CONSOLE. Sotto Linux/Unix INPUT non è considerata una funzione di CONSOLE e quindi non devi compilare l'applicazione come CONSOLE. |
|
| LOCATE |
CONSOLE Statement |
Windows/Unix |
|
| |
Sposta il cursore ad una specifica posizione.
Sintassi: LOCATE [row][,column][,cursor] LOCATE 10, 1 LOCATE ,10 LOCATE 5 LOCATE 1,,80
Dettagli: Sotto Windows puoi pensare che la riga /Row 25 è l'ultima riga dello schermo e la colonna/Column 80 è l'ultima colonna dello schermo. Sotto Linux/Unix questo dipende dal tuo terminale, ma puoi usare la variabili interne Screen.ConsoleX e Screen.ConsoleY per determinare la colonna massima e la riga massima rispettivamente. La prima riga e la prima colonna iniziano nel punto (1,1). L'argomento cursor è opzionale, e può prendere una gamma di valori compresi tra 0 e 100 che indicano la percentuale della cella del carattere che viene usata per mostrare il cursore. ie. specificando il valore 0 il cursore è completamente nascosto. Il valore di default è 1. |
|
| PCOPY |
CONSOLE Statement |
Windows |
|
| |
Copia una pagina schermo in una altra.
Sintassi: PCOPY sourcepage, destinationpage PCOPY 0, 1 PCOPY 1, 5
Dettagli: La pagina visibile (on-screen) è sempre la pagina 0. Ci sono 7 pagine nascoste (off-screen) da 1 a 7. Puoi copiare da qualsiasi pagina in qualsiasi altra pagina. |
|
| PEEK |
CONSOLE Function |
Windows |
|
| |
Ritorna la coppia carattere corrente/attributo colore presente in una specifica posizione di uno schermo di console.
Sintassi: PEEK([#pagenum,] address) A% = PEEK(2000) '-- Peek location 2000 on current page A% = PEEK(1, 2000) '-- Peek location 2000 on page 1
Dettagli: Per comprendere come calcolare l'indirizzo, usare questa funzione utile: Char$ = CHR$(PEEK((Row%-1)*160+(Col%-1)*2))
Attr = PEEK((Row%-1)*160+(Col%-1)*2+1)
Come puoi notare, tutti gli indirizzi di memoria pari contengono il carattere, e tutti gli indirizzi di memoria dispari contengono l'attributo colore. L'attributo colore contiene le informazioni dei colori di primo piano e di sfondo del testo. ForeGround% = Attr AND &HF
BackGround% = Attr SHR 4
Perchè tanti problemi? Questa funzione serve per implementare la compatibilità con QBasic. La sola differenze è che non usi DEF SEG in Rapid-Q, e PEEK lavora solo a livello di console.
[Nota del traduttore: in realtà Qbasic presenta la funzione PEEK(indirizzo tra 0-65535) che restituisce il byte dell'indirizzo considerato l'offset del segmento di memoria definito con DEF SEG...invece lo stesso Qbasic presenta una funzione diversa SCREEN (riga, colonna, flag) che ritorna il carattere presente alla posizione specificata da riga e colonna quando il flag = 0 oppure è omesso, altrimenti ritorna il colore del pixel della posizione specificata da riga e colonna] |
|
| POKE |
CONSOLE Statement |
Windows |
|
| |
Scrive un byte alla pagina di console.
Sintassi: POKE [#pagenum,] address, byte POKE 2000, ASC('A') '-- Pokes an 'A' character at location 2000 POKE 2001, 95 '-- Pokes attribute 95 to location 2000 POKE 1, 2001, 95 '-- Same as above but pokes to page 1
Dettagli: Per capire come calcolare l'indirizzo, usare questa funzione pratica: ChAddress = (Row%-1)*160+(Col%-1)*2
AttrAddress = (Row%-1)*160+(Col%-1)*2+1
Come puoi notare, tutti gli indirizzi di memoria pari contengono il carattere, e tutti gli indirizzi di memoria dispari contengono l'attributo colore. L'attributo contiene le informazioni del colore di sfondo e del colore di primo piano del testo. Per calcolare l'attributo usa questa funzione: Attr = (BackGround% SHL 4) OR ForeGround%
Perchè tanti problemi? Questa funzione serve per implementare la compatibilità con QBasic. La sola differenze è che non usi DEF SEG in Rapid-Q, e POKE lavora solo a livello di console. Il valore da scrivere è compreso tra 0 e 255. |
|
| POS |
CONSOLE Function |
Windows/Unix |
|
| |
Ritorna la posizione orizzontale (come colonna) del cursore di testo.
Sintassi: POS(0) Column% = POS(0)
Dettagli: Prego notare che non impiego questa funzione, la ho implementato solo per compatibilità con QBasic. |
|
| PRINT |
CONSOLE Statement |
Windows/Unix |
|
| |
PRINT mostra sullo schermo (o sullo standard output) i dati .
Sintassi: PRINT [#pagenum,][expressions][{;|,}] PRINT 'Number: '; 45 PRINT A$ PRINT #1, 'This prints to screen page 1'
Dettagli: Expressions può essere sia una stringa, un numero o una funzione. Puoi usare sia ; sia , per scrivere più espressioni con la stessa istruzione PRINT. Sotto QBasic, PRINT può formattare i tuoi dati se usi la virgola, tuttavia sotto Rapid-Q la virgola ed il punto e virgola hanno lo stesso effetto. Di nuovo sotto Windows, PRINT è implementata come una funzione di CONSOLE. Sotto Linux/Unix non devi compilare la tua applicazione come CONSOLE. |
|
| SCREEN |
CONSOLE Function |
Windows |
|
| |
Ritorna il carattere ASCII o l'attributo alla posizione (riga, colonna) dello schermo console attuale.
Sintassi: SCREEN(row, col [, colorflag]) A% = SCREEN(1, 1) '-- Get character located on the first row and column A% = SCREEN(5, 3, 1) '-- Get attribute of character located at (5,3)
Dettagli: La funzione SCREEN è molto simile alla funzione PEEK, eccetto che è più facile da usare. Se tu fornisci alla funzione il parametro colorflag, la funzione ritorna l'attributo colore, altrimenti ritorna il carattere ASCII. La funzione SCREEN lavora solo sullo schermo console e non sulle pagine nascoste. |
|
| SETCONSOLETITLE |
CONSOLE Statement |
Windows |
|
| |
SetConsoleTitle è implementata come una chiamata WinAPI a SetConsoleTitle ma è chiamata come statement piuttosto che come funzione (ie. non ritorna valori). Se vuoi dei valori di ritorno, devi chiamare direttamente la funzione API.
Sintassi: SETCONSOLETITLE string-expression SETCONSOLETITLE 'Hello World!'
|
|
| SLEEP |
CONSOLE Statement |
Windows/Unix |
|
| |
Sospende l'esecuzione dell'applicazione per una specifica quantità di tempo.
Sintassi: SLEEP seconds SLEEP .5 '-- Delay for half a second
Dettagli: SLEEP richiede un parametro, diversamente da QBasic. SLEEP aspetta il numero di secondi specificati come attesa. Non puoi interrompere tale attesa premendo un tasto come in QBasic. Sotto Windows, SLEEP è implementato come una funzione di console. Sotto Linux/Unix, non devi compilare il programma come CONSOLE. |
|
|