Terminal control/Dimensions: Difference between revisions
Line 51: | Line 51: | ||
{{works with|regina}} |
{{works with|regina}} |
||
{{works with|rexximc}} |
{{works with|rexximc}} |
||
Rexx does not provide basic [[terminal control]] as part of the language. However, it is possible to determine the size of the terminal window by using external system commands: |
|||
<lang rexx> |
<lang rexx> |
Revision as of 22:39, 13 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>
REXX
Rexx does not provide basic terminal control as part of the language. However, it is possible to determine the size of the terminal window by using external system commands:
<lang rexx> width = 'tput'( 'cols' ) height = 'tput'( 'lines' )
say 'The terminal is' width 'characters wide' say 'and has' height 'lines' </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>