CMP% ==== This command uses the various internal comparison types to perform a comparison of two strings. The bulk of the text below comes from the QDOS/SMS Reference Manual v. 4.4 10/06/2018, Section 16 - 19. This may not apply to Minerva, which has its own ideas on string comparison! Usage ----- result% = CMP%(str1$, str$ [, comptype% [,table]]) where result% is -1 for str1$ < str2$ 0 for str1$ = str2$ 1 for str1$ > str2$ comptype% is 0..3, as described below Optional (default = 0), unless table is used and the optional table parameter, which specifies the address of a 256 byte translation table. (See below.) Order of Strings ---------------- Since comparison may be used to sort strings into order as well as checking for equality or equivalence, the order must be well defined. A form of dictionary order is attempted - this will require to be modified for foreign character sets. Space is the first character. Punctuation is in ASCII order (except "." which is the last). All punctuation is defined to be before all letters or digits (e.g. A. before AA. ). Optionally, embedded numbers may be taken in numerical order (e.g. Case5A before Case10A, and also Case5.10 before Case5.5). All digits or numbers are defined to be before all letters (e.g. bat1 before bath1). An upper case letter comes before the corresponding lower case letter but after the previous lower case letter (e.g. Bath is before bath but after axe). Optionally, an upper case letter is treated as equivalent to a lower-case letter. SPACE !"#$%&'()*+,-/:;<=>?@[\]^_£{|}~© Digits or numbers AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz Foreign characters Comparisons ----------- The relationship of one string to another may be Equal All characters or numbers are the same or equivalent. Lesser The first part of the first string, which is different from the corresponding character in the second string, is before it in the defined order. Greater The first part of the first string, which is different from the corresponding character in the second string, is after it in the defined order. Types of Comparison ------------------- Comparisons may be: Type 0 Made directly on a character by character basis Type 1 Made ignoring the case of the letters Type 2 Made using the value of any embedded numbers Type 3 Both ignoring the case of letters and using the value of embedded numbers. Translation table ----------------- An optional 256 byte translation table may be used together with the four comparison types described. This could be based on a different charcter set or, for example, to equate accented characters to their un-accented counterparts. See a crude example in AccentTab_bas Status of This software ----------------------- V0.01, pjw, 2019 May 19, first release Conditions of use and DISCLAIMER as per Knoware.no
Generated by QuickHTM, 2023 Jul 28