G'day! And welcome to... c Keep v0.9 Keep is a utility program for BBS and network junkies like myself who download messages in one large file and then read them off-line. Using only the mouse, you can drive through such files a message at a time, examine each at your leisure and tag those you wish to keep. When the entire file has been examined, Keep goes through the file once more and stores those messages that have been so tagged. The original file is left intact. The program is currently runnable only from the CLI. You can invoke it in a number of ways. The recommended one is as follows: run keep This program uses Charlie Heath's excellent file requester to pick the file to be examined. Believe me, it's a lot faster than typing it in. However, you can specify the source file from the CLI thusly: run keep message_file This will examine the file message_file and store the messages to be kept in the file message_file.kpt, in the directory where the source file resides. If you wish to cross directories, you can enter, for example run keep df1:message_file to df0:file_name The .kpt extension will be automatically appended to the destination file name. However, you must specify a destination file name! Simply entering, for example, run keep df1:message_file to df0: will not work. Keep opens its own screen to the same size as the Workbench screen (640 x 200 or larger). This is handy if you are using morerows or interlace to get a larger display area. Keep assumes that message files consist of lines of no more than 120 characters, ending with CR and/or LF. Any non-text character contained in the line before the CR/LF will be displayed -- usually as a rectangle; the CR/LF do not appear. They are, however, left intact. Once running, keep is (or should be) self-explanatory. A possible source of ambiguity is the gadgets at the top of the window. Selection of the arrows pointing up and down permit the user to page through the text of the message. The KEEP and DUMP gadgets tag the message and advance to the next message. You can select the left-pointing arrow to back up to the previous message. Here you can change the fate of the message by selecting the appropriate KEEP or DUMP gadget. However, you must return to the current message by selecting the right-pointing arrow before you can move on to the next message in the file. You can at any time change the name of the destination file by selecting To... under the Project menu. Skip terminates examination of the current file and saves what messages had been tagged up to that point. Abort terminates examination of the current file completely and restarts the program. About provides some speculation as to the inspiration of the Guru's meditations... And Quit exits the program. Keep does not have to be used exclusively for information services. It can work with any text database that uses a repeating header at the beginning of each record and fields of no more than 120 characters delimited with CR and/or LF. It looks for a key string of five characters or less -- the shorter the string, the faster the search. You can see which ones I have chosen: each time a network gadget is selected in the service requester, the Key string string gadget is updated. You can click on this gadget to customize the key string. If the program encounters a read error in the message file, it will save those messages currently tagged and offer to restart the program -- in other words, it will behave as if you had selected the Skip option. If the program encounters an error during the writing of the destination file, it will close that file and save to ram: instead -- very handy if you just spent four hours going through 700+ messages. In this case, however, the default destination file name will be used. Enhancements to future versions of Keep may include: 1. Much more attractive, Image-rendered gadgets. 2. Workbench support. 3. CLI and menu support for interlace. 4. More polished mutual exclude in the service requester. 5. Support for other fonts. 6. Depth arrangement gadgets. The screen can be pulled down in this version -- two pixels of the screen behind are there to grab. 7. Support for other BBSs and networks. 8. Support for arbitrarily large files and messages. In this version, Keep is confined to files containing up to 2000 messages or records. In addition, it reads in no more than 1000 lines at a time. This latter aspect does not compromise the operation of the program should the message be larger than 1000 lines. It simply splits it into smaller pieces. If you want to save a complete message, save all the pieces. 9. More elegant command line parsing. 10. The ability to use the mouse to mark portions of messages for keeping. 11. Word wrap for lines longer than 80 characters. 12. Scrolling, rather than paging of text. 13. A proportional gadget to indicate the current position in the source file. The shareware program blitzfonts works with Keep and is highly recommended. Known bugs: Only one, that I know of, and rather obscure. If you were to click on the left-pointing arrow to review the previous message, and that message had been longer than 1000 lines and consequently truncated, the program will go into an endless loop if you page down to the end of the message. For some reason I have yet to fathom, the null pointer that marks the end of the buffer vanishes and my pageprint() function gets lost. I would like to thank Charlie Heath, William Volk, and Chris Zamara for their help. I especially would like to thank the real Nick Sullivan, for his endlessly patient assistance. Keep is a direct descendant, several generations removed, of a program Nick wrote in CBM Basic and 6502 ML for the C64 and PET 8032. My greatest debt is to my wife Cate and my son Alex, for their love. Copyright Notice: Keep is copyright (c) 1987 by Tim Grantham. It may not be copied, nor sold for profit, nor altered in any way, without the permission of the author. Said author may be reached at: 55 Sorauren Ave. Toronto, Ontario Canada. M6R 2C9 (416) 535-1721 or on: PeopleLink: AMTAG BIX: dispatcher GEnie: t.grantham CIS: 71426,1646 Subscribe to The Transactor for the Amiga, for the best in Amiga coverage, including Amiga Dispatches by yours truly. The Transactor also operates the Commodore forums CBMPRG and CBMCOM on Compuserve.