^Z SEARCH topics: 1) Files, items and separators 2) Search phrases 3) Specifying arguments 4) The search process 5) Sending output to a file 6) Customizing SEARCH ~l0 Which would you like help with (Q to quit)? ~s ~c1 ~b ^z Files, items and separators SEARCH works with line-oriented ASCII text files. SEARCH treats the file as being made up of ITEMS, where an item is one or more lines that "logically" belong together. An item could be a single line, a paragraph, or some other grouping. A file is broken up into items by a SEPARATOR; this is a line that occurs at the end of each item in the file. An example would be a blank line between paragraphs. A separator is always a whole line. More information is available about: 1) File types 2) Examples of items ~uchoose ~s ~c1 ^z To be usable with SEARCH, a file must be pure ASCII (no embedded word processor codes) and have a CR/LF pair at the end of each line. Squeezed and crunched versions of such a file are also usable. SEARCH determines whether a file is plain-text, squeezed or crunched by looking at the first few bytes of the file rather than by looking for a C or Q in the filename extension. This means that a plain-text file called MYPROG.AZM would be correctly read, and a crunched file called RCPM.LST would be correctly identified. SEARCH can also read files out of libraries. ~c2 An item can be a single line: John Doe 1221 Main St. Hometown, IL 60000 (312)555-1988 ... Jane Roe 13 Plymouth Ct. Providence, RI ? (800)111-1111 It could be a paragraph: Text retrieval software can be divided into two categories: programs based on directly searching the text and programs based on preparing an index to the text.......... SEARCH falls into the first category. Like all such programs, it is slower than an index-based program, but it requires no setup..... Or it could be a sequence of lines separated by an arbitrary line: SEARCH21.LBR (CP/M) A free-format text retrieval system. Uploaded by Eric Bohlman ---- VDE266.LBR (CP/M) The final version of the public-domain text editor. ---- In the first example, there is really no separator; we call this "line-by-line." In the second one, the separator is a blank line and in the third, the separator is a line consisting of four dashes. A separator is always a line by itself (except for line-by-line). You cannot use a period as a separator in order to make each sentence an item; items must consist of whole lines. ~cq ~q ~cp ~t ~e ~p~a ~c2 ~b ^z Search phrases SEARCH can look for any sequence of characters within the text. You can search for a word, a phrase, a punctuation character, or any logical combination of these. You can specify whether a word must stand alone or whether it can be embedded in another word. Comparison is case-insensitive. SEARCH always treats a sequence of spaces in the text as being equal to a single space. A line-ending is treated as a space, unless it's immediately preceded by a hyphen, in which case both the hyphen and the line end are ignored. SEARCH also ignores leading spaces on a line. This means that a word will be matched even if it was hyphenated at the end of a line, and a multiple-word phrase will match across line boundaries, even if there's a left margin. More information is available about: 1) Phrases 2) Embedding control 3) Logical combinations ~uchoose ~s ~c1 ^z A word or phrase is any sequence of characters that is to be searched for in the text. The total length of all unique words or phrases that you wish to search for must be less than 256 characters, and you can use at most 16 unique words or phrases in a logical combination of search phrases. ~c2 ^z By default, a word will be matched ANYWHERE in the text. For example, "ion" would match itself. It would also match "emotion," "ionic" and "emotionally." Sometimes it is desirable to restrict the matching of embedded words. You can do this by putting the special character "^^" at the beginning or end of a word or phrase. When this character is present, it signifies that the match can occur only at a word boundary. For example, "^^ion" would match only those words beginning with "ion" and "ion^^" would match only words ending with "ion." "^^ion^^" would match only the word "ion." ~c3 ^z SEARCH can do more than detect the mere presence of a single word or phrase. It can also check for the presence of LOGICAL COMBINATIONS of words or phrases. There are three kinds of logical combinations. First, you can specify that a word or phrase must NOT be present in an item. Second, you can require that two or more phrases BOTH be present in an item. This is known as an AND combination. Finally, you can require that EITHER of several phrases be present. This is an OR combination. To require that a word or phrase NOT be present, you simply precede it with the NOT character, which is an exclamation mark. If you need to match a phrase that begins with a literal exclamation mark, you precede it with a backslash. The exclamation mark has special significance only when it is at the very beginning of a word or phrase; otherwise it is treated literally. How you specify an AND combination or an OR combination depends on whether you are entering arguments by the command line or by prompt. This is covered in the section on how to specify arguments, and examples of logical combinations are available there. ~cq ~q ~cp ~t ~e ~p~a ~c3 ~c4 ~c5 ~c6 ~cq ~q ~d ~ubadchoice ~g0 ~e ~t ~lchoose Pick one or press Q to quit, P to see the previous section: ~r ~lbadchoice "~o" isn't on the menu. Try again ~r