Dec 212017
 
Latest string processing routines from Eagle Performance Software. Includes TPU, but no source code. Some very nice routines.
File STRG56.ZIP from The Programmer’s Corner in
Category Pascal Source Code
Latest string processing routines from Eagle Performance Software. Includes TPU, but no source code. Some very nice routines.
File Name File Size Zip Size Zip Type
LICENSE.LIC 2230 826 deflated
RATE55.PAS 3713 1336 deflated
STATMENT.LIC 4244 1879 deflated
STRG56-.PAS 9130 2127 deflated
STRG56.DOC 37888 10912 deflated
STRG56.TPU 15296 6555 deflated
STRGREF.DOC 87808 15700 deflated

Download File STRG56.ZIP Here

Contents of the STRG56.DOC file




















STRG STRING UTILITIES
USER'S GUIDE

Version 5.6
November 2, 1990


Copyright (C) 1989-1990 Eagle Performance Software
All Rights Reserved.



_______
____| _ | (tm)
--| | |-------------------
| ____|__ | Association of
| | |_| Shareware
|__| o | Professionals
-----| | |---------------------
|___|___| MEMBER


STRG String Utilities User's Guide, Version 5.6



T A B L E O F C O N T E N T S

1. INTRODUCTION . . . . . . . . . . . . . . . . . . . . . 3
Features . . . . . . . . . . . . . . . . . . . . . . 3
Using the Manuals . . . . . . . . . . . . . . . . . . 3
Licensing . . . . . . . . . . . . . . . . . . . . . . 4
Customer Service . . . . . . . . . . . . . . . . . . 4
ASP . . . . . . . . . . . . . . . . . . . . . . . . . 5

2. GETTING STARTED . . . . . . . . . . . . . . . . . . . . 6
Distribution Files . . . . . . . . . . . . . . . . . 6
Simple Programming . . . . . . . . . . . . . . . . . 6
Procedures and Functions . . . . . . . . . . . . . . 6

3. PHILOSOPHY . . . . . . . . . . . . . . . . . . . . . . 11
Unit Design . . . . . . . . . . . . . . . . . . . . . 11
Program Design . . . . . . . . . . . . . . . . . . . 11
Number to String Conversion . . . . . . . . . . . . . 14
Greater Speeds . . . . . . . . . . . . . . . . . . . 15

APPENDIX A: Other Products . . . . . . . . . . . . . . . . 16

APPENDIX B: Revision History . . . . . . . . . . . . . . . 19

APPENDIX C: References . . . . . . . . . . . . . . . . . . 20































2
STRG String Utilities User's Guide, Version 5.6


1. I N T R O D U C T I O N


FEATURES

Welcome to STRG Screen Utilities!

You have just obtained a copy of the highest performance string processing
routines available today for Turbo Pascal 5.5 (TP55). Both novice and
professional programmers will appreciate these simple and very powerful
utilities that gives you ultimate speed for string-intensive programs.

Here are some of the features you will discover:

. Extremely-high speed techniques have been used to create
the fastest processing possible.
| . 109 routines process strings, characters, and all types of
numbers. Several combinations of operations have been
provided that are extremely fast for case, classification,
comparison, conversions, copy, count, delete, format,
justification, membership, parse, replace, search, sort,
tabbing, ASCIIZ, many with match/ignore case and many
more.
. Uses many of the same identifiers as C standard routines.
. Much faster than Pascal and C standard routines.
. Easy to remember routine identifiers.
. Source code compiles in either Turbo Pascal or
QuickPascal.
| . Only 6.3k bytes of code if all 109 routines are used.
. Optimized by the compiler and drops unused code.
. Used in all other Eagle products.


USING THE MANUALS

Disk Based Guides - The manuals for STRG are on disk so that you can
conveniently scan for the topic you are seeking. You can do this with any
list or search utility with a search function. You can also make a printed
copy. If you have not already printed this manual, refer to the READ.ME
file for instructions. At the present time, no bound manuals are being
offered with registration.

User's Guide - This manual, the one your are reading now, assumes that as a
programmer you are already familiar with Pascal and that you have a working
knowledge of your disk operating system (DOS). It will provide you the
judgment and techniques for faster text processing.

Reference Guide - This manual describes in detail all procedures, functions
and variables used in STRG. It is alphabetically arranged for easy access
in a format similar to the compiler reference manual. Use this manual when
you have become familiar with the basic principles in the user's guide.






Chapter 1, Introduction Page 3
STRG String Utilities User's Guide, Version 5.6


LICENSING

Registration - These utilities and the documentation have been released for
distribution as Shareware. You have been given the chance to sample the
full capability of STRG without risk! If you find that STRG is a valuable
tool, then you are expected to register. You will find a reasonable
licensing schedule found in LICENSE.LIC to meet private or commercial
needs. When registering, be sure to specify the compiler and version you
you are using.

Source Code - All registered users will receive source code when the signed
license agreement is returned with the registration.


CUSTOMER SERVICE

If you have questions, comments, or suggestions, the Eagle can be contacted
by four means - (1) CompuServe, (2) telephone, (3) The Eagle BBS, or
(4) mail.

CompuServe - The most dependable way to contact the Eagle is through
| CompuServe. For personal contact, Jordan Gallagher can be reached on the
| Borland Forum by typing GO BPROGA from the CompuServe main menu to enter
the Forum for Turbo Pascal. You can contact Jordan with his PPN number of
73557,2342. Messages can also be left through EasyPlex.

Telephone - Jordan can also be reached by phone at (214) 539-7855 on
weekdays and Saturday from 9:00 a.m. to 8:00 p.m CST.

The Eagle BBS - You can also contact us on our 24-hour BBS at (214) 539-
9878, 1200/2400 N81.

Mail - For registration or problems, please write:

Eagle Performance Software
P.O. Box 292786
Lewisville, TX 75029-2786

In your written request for resolving problems, be sure to include:

| . A diskette of compilable source code of the problem.
. The Eagle product and version number.
. The computer make and model.














Chapter 1, Introduction Page 4
STRG String Utilities User's Guide, Version 5.6


ASP

STRG is a shareware program conforming to the standards of the Association
of Shareware Professionals (ASP). You can get more information about ASP
by writing to:

Association of Shareware Professionals
P.O. Box 5786
Bellevue,WA 98006

This program is produced by a member of the Association of Shareware
Professionals (ASP). ASP wants to make sure that the shareware principle
works for you. If you are unable to resolve a shareware-related problem
with an ASP member by contacting the member directly, ASP may be able to
help. The ASP Ombudsman can help you resolve a dispute or problem with an
ASP member, but does not provide technical support for member's products.
Please write to:

ASP Ombudsman
P.O. Box 5786
Bellevue,WA 98006

or send a CompuServe message via EasyPlex to ASP Ombudsman 7007,3536.


































Chapter 1, Introduction Page 5
STRG String Utilities User's Guide, Version 5.6


2. G E T T I N G S T A R T E D

This section will acquaint you with the files on disk and show you a
brief demonstration. You will also run your first program with STRG and
then become familiar with all of the utilities.


DISTRIBUTION FILES

In this version, STRG56.ZIP contains:

Strg56 .tpu: Compiled unit of 5900 lines of assembly for TP55.
Strg56- .pas: Partial source code for STRG56.TPU. (MASM source
code and object files are not included.)
Strg56 .doc: This document - a user's guide to STRG.
StrgRef .doc: STRG Reference Guide document covering each
procedure and variable in detail.
Rate55 .pas: High-precision timer to test speed of routines.
License .lic: Order form.
Statment.lic: Statement for license terms and conditions.

| Files have been archived using PKZIP. They should be authentically verfied
| after extraction with our company name - Eagle Performance Software.


SIMPLE PROGRAMMING

First Program - Let's write a short program to see how simple it is to
write with STRG. First, do the following steps:

1. Copy STRG56.TPU to STRG.TPU for the compiler.
2. While in the compiler editor, enter the following code:

{$E+,N+}
uses Crt,Strg;
var s1,s2: string;
begin
s1 := '(c)1989 Eagle Performance Software';
StrUpr (s1);
end.

Assuming you have already copied STRG56.TPU to STRG.TPU, compile and run
the code. Using the watch window, check out the value of s1 and see that
it is now completely upper case which is what the StrUpr procedure does.
The StrUpr identifier may already be familiar to you - it is the same one
used in C. Many of the identifiers used in the STRG unit use identifiers
that are similar in C, and using the same principles, other names were also
created.


PROCEDURES AND FUNCTIONS

STRG has many routines and are all described in detail in the reference
manual. But to get a full scope of the routines available, here is a
brief survey of all the utilities arranged by application:


Chapter 2, Getting Started Page 6
STRG String Utilities User's Guide, Version 5.6



Operations - These procedures operate directly on the characters in the
string:

StrLwr - convert to lower case.
StrUpr - convert to upper case.
StrRev - reverses order of characters.
StrRoll - rolls characters left or right.
StrSort - sorts characters in ascending order.

Insert and Delete - These procedures provide different methods for
inserting or delete substrings or characters:

ChrDel - deletes all occurrences of a given character.
ChrDelL - deletes all leading (Left) characters.
ChrDelR - deletes all trailing (Right) characters.
ChrPadC - pads characters left and right to center the field.
ChrPadL - pads leading (Left) characters to fit in a field.
ChrPadR - pads trailing (Right) characters to fit in a field.
StrCut - truncates strings over a given length.
StrIns - inserts a substring.

Placement - These procedures efficiently place strings in memory with a
single copy.

StrCat - appends one string with another.
StrCatX - appends one string with a substring of another.
StrCopy - copies a substring to create a new string.
StrMove - simple string move.
StrOver - overwrites a string at a given index with another substring
and fills any gap with spaces.
StrPeek - copies an array from memory into a string.
StrPoke - copies a string as an array without the length byte.

Patterns - These procedures create strings with repetitive patterns:

StrFill - fills a string with duplicate copies of a substring or
character.
ChrFill - fills a string with duplicate copies of a character.
StrEnum - enumerates a string of characters in ascending or descending
order.

Position - These procedures find the position of a character using
different strategies:

ChrPosL - finds the Nth occurrence from the LEFT.
ChrPosLI - finds the Nth occurrence from the LEFT ignoring case.
ChrPosR - finds the Nth occurrence from the RIGHT.
ChrPosRI - finds the Nth occurrence from the RIGHT ignoring case.
ChrPosX - finds the first occurrence from the LEFT starting at indeX.
ChrPosXI - finds the first occurrence from the LEFT starting at indeX
and ignoring case.

Similar to the above procedures, these find the position of a substring or
character using different strategies:


Chapter 2, Getting Started Page 7
STRG String Utilities User's Guide, Version 5.6



StrPosL - finds the Nth occurrence from the LEFT.
StrPosLI - finds the Nth occurrence from the LEFT ignoring case.
StrPosR - finds the Nth occurrence from the RIGHT.
StrPosRI - finds the Nth occurrence from the RIGHT ignoring case.
StrPosX - finds the first occurrence from the LEFT starting at indeX.
StrPosXI - finds the first occurrence from the LEFT starting at indeX
and ignoring case.

Quantity - These procedures find the total count of a given character or
substring in a string:

ChrQty - count of a given character.
ChrQtyI - count of a given character ignoring case.
StrQty - count of a given substring.
StrQtyI - count of a given substring ignoring case.

Comparison - These procedures compare two substrings for greater than, less
than, or equal result. The optional indexes can also be obtained:

StrCmp - compares two substrings matching case.
StrCmpI - compares two substrings ignoring case.

Find and Replace - These procedures find a given character or substring in
a string and replace it with another.

ChrRepl - find and replace a character matching case.
ChrReplI - find and replace a character ignoring case.
StrRepl - find and replace a character or substring matching case.
StrReplI - find and replace a character or substring ignoring case.

Membership - These procedures search membership or non-membership in a
string:

StrBrk - finds the first character that is a member.
StrSpn - finds the first character that is not a member and returns
the span of membership.
StrMemb - reduces a string to individual membership in ascending
order.

Parsing - These routines find words separated by spaces:

WrdQty - counts the number of words in a string.
WrdPosL - finds the Nth word from the LEFT.
WrdPosR - finds the Nth word from the RIGHT.
WrdPosLX - finds the Nth word from the LEFT starting at indeX.
WrdPosRX - finds the Nth word from the RIGHT starting at indeX.
WrdL - parses the Nth word from the LEFT.
WrdR - parses the Nth word from the RIGHT.
WrdLX - parses the Nth word from the LEFT starting at indeX.
WrdRX - parses the Nth word from the RIGHT starting at indeX.
WrdParse - generic parsing routine parses a word between any two
delimiters.
WrdToken - generic parsing routine parses a word between any two groups
of delimiters.


Chapter 2, Getting Started Page 8
STRG String Utilities User's Guide, Version 5.6



Conversion - These routines convert numbers and strings into other common
forms:

StrHex - converts scalars into hex strings.
StrBin - converts scalars into binary strings.
ValBin - converts binary strings into scalars.
ValHex - converts hex strings into scalars.
StrDeTab - expands tabs into spaces.
StrReTab - reduces spaces into tabs.
AscStr - converts strings into ASCIIZ strings.
LnStr - converts strings into ASCII text strings.
StrAsc - converts ASCIIZ strings into Pascal strings.
StrLn - converts ASCII text strings into Pascal strings.

Justification - These functions justify strings with spaces:

StrJC - Center justification
StrJL - Left justification
StrJR - Right justification

Classification - These boolean functions classify characters within a given
group in the lower ASCII table (<#128):

IsAlNum - alpha-numeric
IsAlpha - alphabetic
IsASCII - lower ASCII table
IsCntrl - printer control character
IsDigit - numbers zero through nine
IsDOS - DOS directory character
IsFile - DOS file name character
IsGraph - a "black" printable character
IsLower - lower case
IsPath - DOS drive, path, and file name character
IsPrint - printable character
IsPunct - punctuation character
IsReal - real number character
IsSigned - signed number
IsSpace - non-printing paper-movement character
IsUpper - upper case
IsXDigit - hex digit

Standard - As a bonus, automatic replacements of the Pascal standard
routines are included:

Copy - copies a substring up to 25% faster.
Delete - deletes a substring up to 5 times faster.
| Pos - finds the position of a substring up to 340% faster.

Str Function Forms - As another bonus, function forms of the standard Str
| procedure are provided for convenience. If you use another one of our
| products, SYST55A.TPU, even these routines can be sped up another 120%:

StrC - converts Comp to string
StrCF - converts Comp to string in a fixed Field


Chapter 2, Getting Started Page 9
STRG String Utilities User's Guide, Version 5.6


StrCFD - converts Comp to string in a fixed Field with a specified
number of Decimals
StrD - converts Double to string
StrDF - converts Double to string in a fixed Field
StrDFD - converts Double to string in a fixed Field with a specified
number of Decimals
StrE - converts Extended to string
StrEF - converts Extended to string in a fixed Field
StrEFD - converts Extended to string in a fixed Field with a
specified number of Decimals
StrL - converts LongInt to string
StrLF - converts LongInt to string in a fixed Field
StrR - converts Real to string
StrRF - converts Real to string in a fixed Field
StrRFD - converts Real to string in a fixed Field with a specified
number of Decimals
StrS - converts Single to string
StrSF - converts Single to string in a fixed Field
StrSFD - converts Single to string in a fixed Field with a specified
number of Decimals

For a full description of each routine with its parameters, please refer to
STRGREF.DOC for a summary of details and examples.


































Chapter 2, Getting Started Page 10
STRG String Utilities User's Guide, Version 5.6


3. P H I L O S O P H Y

In this section, you will learn the philosophy behind the development of
STRG and how to plan your programming for the highest speeds in string
processing.


UNIT DESIGN

Identifiers - Since there is an abundance of routines in this unit,
remembering the right identifier could be a problem. But the unit was
designed to make it easy with common letters and phrases that are already
familiar to you. All identifiers will have one of the following mnemonics:

Str - for routines that can process both characters and
substrings. The majority of routines have this one to help
you correlate the routine with the STRG unit.
Chr - for an alternative to a Str- routine for processing
characters only.
Wrd - for word parsing routines.
Is - for character classification routines.
Val - for string-to-number conversion routines.

To save space, the documentation will refer to a group of routines using
the DOS wildcard characters "*" or "?". For example, Is* would mean any
character classification routine. In addition, some identifiers also have
some common suffixes:

C - means "to center".
I - means "ignore case".
L - means "from the left".
R - means "from the right".
X - means "indeX".

and if two of them appear together, they will always appear in the order of
C-L-R-X-I.

Speed - This unit was specifically designed for speed and every routine has
been written in assembly. These routines easily out perform any similar
routines in the Pascal standard library or code written in Pascal.
Special techniques have been included to increase speed as much as
possible. The longer the strings, the greater the results can be seen.
When you use STRG, a speed increase of 300% would be typical.

Optimization - Almost all routines were placed in separate object files so
that the compiler will optimize the code size of your programs. This may
take a second or two longer to compile, but the results are worth it.


PROGRAM DESIGN

Procedures vs. Functions - One of the advantages of using a string function
is the legibility that it gives the source code. However, it also comes
with the disadvantage of reduced speed from having to make temporary copies
in the stack. The only reason for this is just to make sure that the final


Chapter 3, Philosophy Page 11
STRG String Utilities User's Guide, Version 5.6


destination can handle the final string length. For long strings, a lot of
processing is going on just to check for length limits.

However, procedures can write directly to the destination and overcome the
need for temporary copies. Most of the routines in STRG are procedures for
this reason.

Writing Code - If you write your code carefully, you can easily increase
your speed by avoiding functions. For instance, the following code looks
very simple:

string1 := string1 + string2;

but in fact it uses functions to achieve the result. If you use the
following code:

StrCat (string1,string2,SizeOf(string1));

you will get the same results, but over 3 times faster! So, where speed is
important, avoid the use of string functions.

Formatting Functions - Yet, there are a few routines that are string
functions such as StrJ* and StrHex. These are final formatting routines
that are usually used to provide a final output to screen or disk after
most string-intensive processing has been completed. The resulting strings
are usually short as well, so there is not much of a speed reduction
making them functions rather than procedures.

Str vs. Chr - Several of the Str* routines like StrQty have built-in
routines for processing the special case of a single character just like
its counterpart ChrQty. So there is no need to use both routines.
However, if you know that your routines only process characters, then
certainly use the Chr* routines as they have a definite speed and code
advantage. This is especially true for ignoring case. The Chr*I routines
analyze each character while Str*I converts the entire string or substring
before processing.

Membership vs. Classification - The membership routines are quite fast when
the membership substring is relatively short (<15 chars). If the substring
is longer, then it may be faster to consider using the Is* routines or
creating your own sets. Using the rate timer program, RATE55.PAS, included
in this package is the best way to tell which one is better for you.

Case Conversion - If you repeatedly use the same string for ignore-case
processing, then it would be best to create a temporary string with its
case fully converted. The matching-case routines would then give you a
much faster result. When using either StrLwr or StrUpr, use the one that
requires the least amount of conversion in your string. For example, if
your strings are mostly lower case, use the StrLwr routine. This will
increase your speed a few percent.

Pascal vs. C - Although C has the advantage of long length ASCIIZ strings
for data storage space, the performance doesn't even come close to Pascal
strings with it's calculated length byte. With STRG and its ASCIIZ
conversion routines, you can now have the advantage of both speed and data


Chapter 3, Philosophy Page 12
STRG String Utilities User's Guide, Version 5.6


storage savings.

Alignment - STRG does the most possible to speed up odd-byte alignment of
data, but statistically in string moves, some odd-byte alignment will occur
which just slows the processing down by a few percent. However, it is
strongly recommended that all string variables are aligned using the $A+
compiler directive. This can improve your speed about 30%. If you cannot
do this, at least place all of your "even" sized data first in your VAR
list and then manually match up the byte size variables with odd size ones
so they will self-align.















































Chapter 3, Philosophy Page 13
STRG String Utilities User's Guide, Version 5.6


NUMBER TO STRING CONVERSION

Convenience - The Str* number formatting routines such as StrRFD have been
provided as a convenience and not for speed improvement. When you want to
knock out code in a hurry and are not concerned with speed, these
| formatting routines can provide better legibility in your code. However,
| they will be sped up if you use SYST55A.TPU. In the long run, they can
also save code. Pascal handily converts numbers into strings with the Str
procedure. For example:

var MyNumber: integer;
MyString: string;
begin
Str (MyNumber:7,MyString);
Qwik.Qwrite ( 1, 1,SameAttr,MyString);
end.

But this means that a data area must be reserved and the code isn't as
readable as it could be.

Str* Functions - Instead, STRG lets you use a function form of Str:

uses Qwik, Strg;
var MyNumber: integer;
begin
Qwik.Qwrite ( 1, 1,SameAttr,StrLF(MyNumber,7));
end.

Just like WriteLn, this lets the number remain in the Qwrite statement.
The Str* functions actually use the System.Str procedure from to do the
conversion. But these functions were made so that they don't recopy the
intermediate string for the greatest speed. The code usage is also
reduced.
























Chapter 3, Philosophy Page 14
STRG String Utilities User's Guide, Version 5.6


| GREATER SPEEDS

| You can acheive even greater speeds by using our high-speed SYSTEM unit
| replacement unit called SYST55A.TPU. It speeds up some of the internal
| calls used by the compiler that otherwise could not be accessed. The
| Insert routine is a good example which has been sped up to 400%. If you
| register for SYST55A.ZIP before December 31, 1990 you can receive
| STRG56.ZIP for 50% off the license fee.

















































Chapter 3, Philosophy Page 15
STRG String Utilities User's Guide, Version 5.6


A P P E N D I X A : O T H E R P R O D U C T S


Eagle Performance Software has developed identical products for Turbo C
(TC), Turbo Pascal (TP), Quick C (QC), Microsoft C (MSC), and QuickPascal
(QP). Our pledge is to provide you quality products with unparalleled
performance and ease of use. All registered users receive the complete
source code when a signed license agreement is returned.


| SYST
|
| SYST - High-speed replacement for your built-in SYSTEM unit. Speeds up
| more than 30 routines. There is no code to change in your programs. It's
| all built-in, so all you have to do is recompile.
|
| - Longint math - up to 800%
| - String handling such as Pos, Insert, Delete up to 400%
| - String/integer conversions - up to 120%.
| - Drop-in replacement.
| - 100% compatible with all your existing code.
|
| Here are the product versions:
|
| File name CIS Name Compiler
| ----------- ---------- ---------
| SYST55A.ZIP SYST55.ZIP TP 5.5


QWIK

QWIK - For direct screen video, QWIK is the highest performance screen
writing tools available today for all text modes in any video
configuration. QWIK provides capabilities far beyond those in the
unit/library that comes with your compiler. Here are some of the
features:

- Writes on all IBM compatible computers, displays and adapters
including MDA, CGA, EGA, MCGA, VGA, 8514/A, Hercules and 3270 PC.
- Superior video detection routine.
- Eliminates snow and flicker.
- Writes directly to the screen in absolute rather than relative
coordinates.
- Writes in all text modes and column modes.
- Writes on all video pages.
- Writes on virtual screens in RAM.
- Writes text and attribute, text only, or attribute only.
- Reads strings, characters and attributes.
- Uses End-Of-String (EOS) marker for quick string chaining.
- Provides standardized cursor shapes for all adapters.
- Enhanced cursor movement.
- Compatible with DESQview and similar multitasking environments.
- Over 650% faster than standard direct screen writing.
- Only 2.7k bytes of code if all 43 utilities are used.
- Optimized by the compiler and drops unused code.


Appendix A: Other Products Page 16
STRG String Utilities User's Guide, Version 5.6


- Used in all other Eagle products.
- Excellent documentation like this document.

Here are the product versions:

File name CIS Name Compiler
----------- ---------- ---------
QWIK56.ARC QWIK56.ARC TP
QWIKQ10.ARC QWKQ10.ARC QP
QWIKC20.ARC QWKC20.ARC TC/QC/MSC


WNDW

WNDW - For multi-level virtual windows, WNDW is the highest performance
window utilities available today. It offers very powerful utilities for
full window control and management you probably never thought possible.
They are simple and yet very powerful with high speed and tight code. With
WNDW, you can choose the absolute writing routines of QWIK, the window-
relative writing routines of WNDW, and even customize your own. Here are
some of the features you will discover:

- Uses the powerful direct screen writing routines of QWIK.
- Up to 254 fixed or virtual windows can be on the screen at one
time.
- Extremely high-speed virtual screens in RAM (up to 40 times
faster).
- Virtual windows are fully updated on screen, even if covered.
Screens can scroll underneath one another right on the screen at
very high speeds!
- Virtual windows have virtual titles.
- Fully supported hidden windows saved in RAM.
- Fully supports all video pages.
- Adjustable-rate moving, resizing, and scrolling.
- All windows can be randomly accessed, not just stacked or tiled.
- 28 window-relative writing routines.
- 15 different border styles with shadow and zoom effects.
- Full line drawing procedures.
- Full cursor mode control for each window.
- Writes in all text modes and column modes.
- Only 13k bytes of code if all 69 utilities are used.
- Used in all other Eagle products.
- Excellent documentation like this document.

Here are the product versions:

File name CIS Name Compiler
----------- ---------- --------
WNDW55.ARC WNDW55.ARC TP
WNDWQ10.ARC WNDQ10.ARC QP
WNDWC20.ARC WNDC20.ARC TC/QC/MSC






Appendix A: Other Products Page 17
STRG String Utilities User's Guide, Version 5.6


PULL

PULL - For multi-level pull-down menus, PULL is fully featured and fully
configurable. Includes execute, single, and multiple choice menus,
unlimited nested submenus, data entry windows, help windows, directory
windows, message system, and fully completed interfaces. Some of the
features are:

- Uses QWIK and WNDW.
- Work window(s) and complete interface for menus
- Pull-down menus with 3 menu modes and 7 line modes
- Pull-down file directory
- Highlighted command letters
- Unlimited levels of submenus
- Unlimited data entry windows for 9 types of data
- Data entry for the work window(s)
Free field entry with either fixed column or flexible column
length.
Full editing capability including insert cursor mode
Full field selection with cursor keys
Automatic NumLock for numerical data entry
Right or left justification for data entry output
Error messages for invalid data entries
Error messages for data entries out of range
- Automatic sizes and locations for menus.
- Operation by cursor
keys or command keys
- Pull/Pop between work window and nested submenu(s)
- Programmable control of pull and pop sequences
- Context-sensitive help
- Message lines for prompts and processing
- Full working shell for user development
- Excellent documentation like this document.

Here are the product versions:

File name CIS Name Compiler
----------- ---------- --------
PULL55.ARC PULL55.ARC TP
PULLQ10.ARC PULQ10.ARC QP
PULLC20.ARC PULC20.ARC TC/QC/MSC


ON-LINE SERVICES

CompuServe - All updated files and later versions can be found on the
CompuServe Borland Forums (GO BPROGA for TP and GO BPROGB for TC) or the
Microsoft Systems Forum (GO MSSYS for QP, QC, and MSC).

The Eagle BBS - You can also get the latest files on our 24-hour BBS at
(214) 539-9878, 1200/2400 N81.






Appendix A: Other Products Page 18
STRG String Utilities User's Guide, Version 5.6


A P P E N D I X B : R E V I S I O N H I S T O R Y


Version 5.5 (01-02-90):
Initial release.

| Version 5.6 (11-02-90):
| . Added faster Pos routine to replace System.Pos
| . Fixed anomaly in Delete and Copy which recognized only byte parameters
| in lieu of integer.
| . Fixed Borland's Delete anomaly when the value of -32768 is used for the
| index. SYST56 properly does nothing, but Borland's doubles the
| the length of the string.












































Appendix B: Revision History Page 19
STRG String Utilities User's Guide, Version 5.6


A P P E N D I X C : R E F E R E N C E S


REFERENCES

Trademarks - Turbo Pascal and Turbo C are trademarks of Borland
International. QuickPascal, Quick C, and Microsoft C are trademark of
Microsoft Corporation.

















































Appendix C: References Page 20


 December 21, 2017  Add comments

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)