Terminal control/Dimensions: Difference between revisions
(add language: Retro) |
(Forth) |
||
Line 1: | Line 1: | ||
{{draft task}} |
{{draft task}} |
||
Determine the height and width of the terminal, and store this information into variables for subsequent use. |
Determine the height and width of the terminal, and store this information into variables for subsequent use. |
||
=={{header|Forth}}== |
|||
{{works with|GNU Forth}} |
|||
<lang forth>variable term-width |
|||
variable term-height |
|||
form ( width height ) term-height ! term-width !</lang> |
|||
=={{header|PureBasic}}== |
=={{header|PureBasic}}== |
Revision as of 19:38, 11 October 2010
Determine the height and width of the terminal, and store this information into variables for subsequent use.
Forth
<lang forth>variable term-width variable term-height
form ( width height ) term-height ! term-width !</lang>
PureBasic
PureBasic does not have native functions for reading the size of this window, but supports API-functions that allows this.
This code is for Windows only. <lang PureBasic>Macro ConsoleHandle()
GetStdHandle_( #STD_OUTPUT_HANDLE )
EndMacro
Procedure ConsoleWidth()
Protected CBI.CONSOLE_SCREEN_BUFFER_INFO Protected hConsole = ConsoleHandle() GetConsoleScreenBufferInfo_( hConsole, @CBI ) ProcedureReturn CBI\srWindow\right - CBI\srWindow\left + 1
EndProcedure
Procedure ConsoleHeight()
Protected CBI.CONSOLE_SCREEN_BUFFER_INFO Protected hConsole = ConsoleHandle() GetConsoleScreenBufferInfo_( hConsole, @CBI ) ProcedureReturn CBI\srWindow\bottom - CBI\srWindow\top + 1
EndProcedure
If OpenConsole()
x$=Str(ConsoleWidth()) y$=Str(ConsoleHeight()) PrintN("This window is "+x$+"x"+y$+ " chars.") ; Print(#CRLF$+"Press ENTER to exit"):Input()
EndIf</lang>
Retro
This information is provided by Retro in the fh (height) and fw (width) variables. You can manually obtain it using the io ports.
<lang Retro>-3 5 out wait 5 in !fw -4 5 out wait 5 in !fh</lang>
UNIX Shell
<lang sh>#!/bin/sh WIDTH=`tput cols` HEIGHT=`tput lines` echo "The terminal is $WIDTH characters wide and has $HEIGHT lines"</lang>