Software Utility Generates Line Numbers For Code Listings

April 17, 2000
Several vendors of integrateddevelopment-environment (IDE) software don’t provide the capability of printing line numbers with program code listings. This additional line-number information can improve code readability and make the debugging process...

Several vendors of integrateddevelopment-environment (IDE) software don’t provide the capability of printing line numbers with program code listings. This additional line-number information can improve code readability and make the debugging process more efficient. Other information, such as a printout of the date and time, also can simplify monitoring a project’s progress during the software development cycle, and at the same time improve documentation.

With this in mind, a small software utility has been written in Visual Basic 5.0 that can easily be used by hardware and software engineers alike. This utility offers the flexibility of printing the code anywhere in a page, taking various margin settings into account. The flow chart of this utility shows the process (Fig. 1).

The software is used through a GUI form, which initially displays information such as the default printer and the selected page’s dimensions (Fig. 2). The file to be printed is chosen using a command button on the form. A simple click of the “Print Now” button will print the selected file. But before the actual printing takes place (via the print_data subroutine), checks are performed to determine whether the selected margins and print area are within the selected page boundaries. In case of an error, the user is informed through a message box.

If no errors are detected, the selected file is accessed in input mode (open fname for input as #1) and one complete line of data (inpdata) is obtained at a time. This line of data then is appended to the current line number (line_count variable). The completed line (inpdata) is checked to ensure that it can be printed (height-wise) on the given page. If it does not fit in the present page, a new page is started (using the new_page_inf subroutine).

The program line also is checked to see if it can be printed in the given linewidth dimensions. If it doesn’t fit, then a text-wrapping routine (text_wrap subroutine) is called. The routine splits the line data into multiple lines for printing.

The name of the file and the page number is printed at the top of each printed page. The date and time at which the printout was performed is printed at the page bottom. This is a helpful piece of information both during and after the design’s development cycle, as well as during the documentation process.

Margin information is given in the program code itself in this program. However, it also can be passed to the printing routine through another GUI form, allowing the additional flexibility of changing margins at run time. Similarly, the ability to modify other printing properties can be incorporated into the software. The associated code listing for this generator can be found in the Ideas for Design section of Electronic Design’s web site at www.elecdesign.com.

Sponsored Recommendations

What are the Important Considerations when Assessing Cobot Safety?

April 16, 2024
A review of the requirements of ISO/TS 15066 and how they fit in with ISO 10218-1 and 10218-2 a consideration the complexities of collaboration.

Wire & Cable Cutting Digi-Spool® Service

April 16, 2024
Explore DigiKey’s Digi-Spool® professional cutting service for efficient and precise wire and cable management. Custom-cut to your exact specifications for a variety of cable ...

DigiKey Factory Tomorrow Season 3: Sustainable Manufacturing

April 16, 2024
Industry 4.0 is helping manufacturers develop and integrate technologies such as AI, edge computing and connectivity for the factories of tomorrow. Learn more at DigiKey today...

Connectivity – The Backbone of Sustainable Automation

April 16, 2024
Advanced interfaces for signals, data, and electrical power are essential. They help save resources and costs when networking production equipment.

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!