Please enable JavaScript to view this site.

A-Shell Consolidated Reference

Navigation: System Commands > EZTYP

Status Line Information

Scroll Prev Top Next More

The status line displays the current line, total number of lines, current page, total number of pages, and a percentage indicating how far the current page is from the start of the file to the end. This would all be very straightforward, except for some performance considerations which complicate the issue. But first, what is meant by the current line? Since EZVUE was designed to work with extremely large files, it does not store the file in memory. And since it does not allow changes to the file, there is no cursor. So there really is no particular current line. However, for the purposes of the status line information, the current position is taken to be the end of the last line visible on the screen.

Next, what is a page? If the file has hard page breaks, then an EZVUE page is equal to a printed page. These page breaks will display as an entire line of ^^^^ characters on the screen. If the file does not have hard page breaks, then an EZVUE page is simply a screen-full (typically 21 lines, since three lines are used up by the command and status prompts).

Even after defining what a line and a page are, we still have the problem of determining just where we are in the file. This may seem strange, since EZVUE looks like an editor, and an editor obviously has to know exactly where you are in the file or you would not be able to edit it with the desired results. The problem, as mentioned above, is that since EZVUE was designed to view large report files with the maximum performance and minimum memory overhead (rather than be an editor), it does not load the file into memory. Instead, it uses the operating system’s seek facility, which is byte oriented, rather than page or line oriented, to move about the file. For this reason, it is not able (at least initially) to report the exact number of lines and pages in the file. Instead, it makes an estimate, using the average line size for the part of the file that it has had to scan in order to display it. To avoid giving a false impression of precision, it displays a question mark next to those line and page numbers which are only estimates.

Any example may make this clear. At the start, it only reads enough lines to display one screen full. At that point, it knows exactly which line it is on, but it can only estimate the number of lines and pages in the file, so those figures will have question marks next to them. If you then use the E command to go directly to the end of the file, it does a direct seek to the end of the file, then backtracks just enough so that it can display the last lines of the file. At that point, it does not even know which line number or page number it is currently on, since it got to the end of the file without reading it sequentially from the beginning. However, if you request to seek directly to page 50, then it will be forced to scan from the beginning of the file, line by line, until it gets to page 50. At that point, it still does not know the total number of lines or pages, but it does know the current line number and page number, and more importantly, it knows the position of all of the pages 1-50. Thus, if you then ask to go backward four pages, it can go more or less directly to that position without having to start over again from the beginning. If you want to compute the precise number of lines and pages in the file, you can do this by requesting to go directly to a page number which is greater than the number of pages in the file (e.g. =9999). After executing that command, it will have been forced to scan the entire file, so from that point forward, it will be able to report the precise number of lines and pages in the file, and be able to go (more or less) directly to any position.