home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-01-23 | 39.5 KB | 1,181 lines |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- STRG STRING UTILITIES
- USER'S GUIDE
-
- Version 5.7
- January 23, 1991
-
-
- Copyright (C) 1989-1991 Eagle Performance Software
- All Rights Reserved.
-
-
-
- _______
- ____| _ | (tm)
- --| | |-------------------
- | ____|__ | Association of
- | | |_| Shareware
- |__| o | Professionals
- -----| | |---------------------
- |___|___| MEMBER
-
-
- STRG String Utilities User's Guide, Version 5.7
-
-
-
- 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 . . . . . . . . . . . . . . . . . . . . . . . . . 4
-
- 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
- Null String Interpretation . . . . . . . . . . . . . 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.7
-
-
- 1. I N T R O D U C T I O N
-
-
- FEATURES
-
- Welcome to STRG String 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.
- | . 111 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 111 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
- TOPRINT.TXT file for instructions. At the present time, no bound manuals
- | are being offered with registration, but this may change soon.
-
- 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.7
-
-
- 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 CIS Mail.
-
- 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. Connections at 9600 V.42bis will be available soon.
-
- 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.
-
-
- 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
-
-
- Chapter 1, Introduction Page 4
- STRG String Utilities User's Guide, Version 5.7
-
-
-
- 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 70007,3536.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Chapter 1, Introduction Page 5
- STRG String Utilities User's Guide, Version 5.7
-
-
- 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, STRG57.ZIP contains:
-
- Strg57 .tpu: Compiled unit of 5900 lines of assembly for TP55.
- Strg57- .pas: Partial source code for STRG57.TPU. (MASM source
- code and object files are not included.)
- Strg57 .doc: This document - a user's guide to STRG.
- StrgRef .doc: STRG Reference Guide document covering each
- procedure and variable in detail.
- Rate57 .pas: High-precision timer to test speed of routines.
- ToPrint .txt: Instructions for printing docs from DOS.
- License .lic: Order form.
- Statment.lic: Statement for license terms and conditions.
-
- | Files have been archived using PKZIP. They should be authentically
- | verified 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 STRG57.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) 1991 Eagle Performance Software';
- StrUpr (s1);
- end.
-
- Assuming you have already copied STRG57.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
-
-
-
- Chapter 2, Getting Started Page 6
- STRG String Utilities User's Guide, Version 5.7
-
-
- 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:
-
- 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
-
-
- Chapter 2, Getting Started Page 7
- STRG String Utilities User's Guide, Version 5.7
-
-
- and ignoring case.
-
- Similar to the above procedures, these find the position of a substring or
- character using different strategies:
-
- 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.
-
-
- Chapter 2, Getting Started Page 8
- STRG String Utilities User's Guide, Version 5.7
-
-
- 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.
-
- 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
-
- | Case - Just for characters, these functions change case and are faster than
- | the System.Upcase in standard Pascal:
- |
- | LoCase - Converts to lower case
- | UpCase - Converts to upper case
-
- 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
-
-
- Chapter 2, Getting Started Page 9
- STRG String Utilities User's Guide, Version 5.7
-
-
- routines are included:
-
- | Copy - copies a substring up to 35% 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. They have a tad more overhead in
- | speed, but save code in the long run.
-
- StrC - converts Comp to string
- StrCF - converts Comp to string in a fixed Field
- 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.7
-
-
- 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 for 80-char
- | strings.
-
- 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
-
-
- Chapter 3, Philosophy Page 11
- STRG String Utilities User's Guide, Version 5.7
-
-
- 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
- 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. For this reason, most of the routines in STRG
- are procedures rather than functions.
-
- 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, RATE57.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
-
-
- Chapter 3, Philosophy Page 12
- STRG String Utilities User's Guide, Version 5.7
-
-
- 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
- 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 slows the processing down by just a few percent. However, it is
- strongly recommended that all string variables be 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.7
-
-
- 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. 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.
-
-
- | NULL STRING INTERPRETATION
- |
- | Find - For procedures like StrPosL, STRG handles null strings quite simply
- | - they are considered to be empty. For instance:
- |
- | MyString := 'abc';
- | i := StrPosL (MyString,'',1);
- |
- | StrPosL is set to find the first occurrence of a null substring in the
- | string 'abc'. The variable i would become 0. The philosophy in STRG is
- | that you can't find nothing when something is there. This differs from the
- | use of Pos which would return 1. With Pos, the theory is that a null
- | string is a subset of any string, but we have found that this theory is not
- | practical for programming with variables that include possible null
- | strings. So in STRG, any null string would return the result of 0.
- |
- | TP vs. QP - Also be aware that Borland and Microsoft disagree on the
- | interpretation of the following code:
- |
- | i := Pos ('','');
-
-
- Chapter 3, Philosophy Page 14
- STRG String Utilities User's Guide, Version 5.7
-
-
- |
- | In QP, Pos returns 1 while TP returns 0. Similar parameters for StrPosL
- | would also return 0 which implies that the index returned cannot be longer
- | than the length of the searched string. By returning 1, QP is suggesting
- | that the two strings are equal which is also a valid observation. Since
- | there are no standards like ANSI for this code, we have made just the Pos
- | routine in STRG conform fully to Borland's interpretation.
-
-
- | GREATER SPEEDS
- |
- | You can achieve even greater speeds by using our high-speed SYSTEM unit
- | replacement unit called SYS60.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 SYST55.ZIP before March 31, 1990 you can receive STRG57.ZIP for 20%
- | off the license fee.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Chapter 3, Philosophy Page 15
- STRG String Utilities User's Guide, Version 5.7
-
-
- 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 (except for SYS) when a signed license agreement is returned.
-
-
- | SYS
- |
- | SYS - 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. Give your programs a
- | heart transplant!
- |
- | - Longint math - up to 800%
- | - String handling such as Pos, Insert, Delete up to 400%
- | - String/integer conversions - up to 200%.
- | - Drop-in replacement, so there are no code changes to make!
- | - 100% compatible with all your existing code.
- |
- | Here are the product versions:
- |
- | File name CIS Name Compiler
- | ----------- ---------- ---------
- | SYST55C.ZIP SYST55.ZIP TP 5.5
- | SYS60.ZIP SYS60.ZIP TP 6.0
-
-
- 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.
-
-
- Appendix A: Other Products Page 16
- STRG String Utilities User's Guide, Version 5.7
-
-
- - 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.
- - 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.7
-
-
-
-
- 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 and 9600 V.42bis.
-
-
-
- Appendix A: Other Products Page 18
- STRG String Utilities User's Guide, Version 5.7
-
-
- 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. STRG properly does nothing, but Borland's doubles the length of
- the string.
-
- | Version 5.7 (01-23-91):
- | . Recompiled version 6.1a as version 5.7 for TP55 users:
- | . Added LoCase and UpCase routines.
- | . Fixed common routine in ChrQtyI, ChrPosLI, ChrPosRI, ChrPosXI, and
- | ChrReplI which did not recognize 'A' when 'a' was a parameter.
- | . Fixed Pos to conform to Borland's interpretation of null strings and
- | substrings. Keep in mind TP6 and Microsoft's QuickPascal do not give
- | the same answers:
- |
- | i := Pos ('',''); { Borland: i=0; Microsoft: i=1 }
- | j := Pos ('','x'); { j=1 }
- |
- | . Modified docs from 61 to 60 lines per page for laser printers
- | . Added ToPrint.txt for printer instructions.
- | . Made price reductions for most products.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix B: Revision History Page 19
- STRG String Utilities User's Guide, Version 5.7
-
-
- 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 trademarks of
- Microsoft Corporation.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Appendix C: References Page 20