' Rapid-Q by William Yu (c)1999-2000 . ' ================================================================================ ' Upload_il_tuo_script_su_Rapidq.it ' 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 Windows/Unix Statement =================================================================== 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 Windows/Unix Statement =================================================================== 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 Windows Statement =================================================================== Ritorna il gestore di input della console per l'uso di chiamate API. Sintassi: CONSOLE.INPUTHANDLE hnd = CONSOLE.INPUTHANDLE CONSOLE.OUTPUTHANDLE CONSOLE Windows Statement =================================================================== Ritorna il gestore dell'output della console per l'uso con le chiamate API. Sintassi. CONSOLE.OUTPUTHANDLE hnd = CONSOLE.OUTPUTHANDLE CSRLIN CONSOLE Windows/Unix Function =================================================================== Ritorna la riga corrente del cursore sullo schermo. Sintassi: CSRLIN Riga% = CSRLIN GET$ CONSOLE Windows/Unix Function =================================================================== 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 Windows/Unix Function =================================================================== 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 Windows/Unix Statement =================================================================== 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 Windows/Unix Statement =================================================================== 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 Windows Statement =================================================================== 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 Windows Function =================================================================== 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 Windows Statement =================================================================== 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 Windows/Unix Function =================================================================== 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 Windows/Unix Statement =================================================================== 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 Windows Function =================================================================== 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 Windows Statement =================================================================== 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 Windows/Unix Statement =================================================================== 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. ' =============================================================================== ' 2003 Holyguard.net - 2007_Abruzzoweb