home *** CD-ROM | disk | FTP | other *** search
/ Archive Magazine 1997 / ARCHIVE_97.iso / text / hints / vol_10 / issue_09 < prev    next >
Text File  |  1997-08-11  |  10KB  |  237 lines

  1. Hints and Tips
  2. 10.9
  3. Address list editing Ö I love playing with text, trying to manipulate
  4. it using a combination of packages Ö usually Edit, StrongED and
  5. PipeDream Ö to achieve certain ends. If I had time, Iæd write an
  6. article about it, but as an illustration of the sort of thing I mean,
  7. hereæs an example of what can be achieved.
  8. 10.9
  9. The problem: I had 8,000 addresses of various lengths Ö up to nine or
  10. ten lines which had to be printed onto continuous label stationery, i.
  11. e. with each label starting at exactly nine-line intervals, so no
  12. label had to be longer than eight lines of text.
  13. 10.9
  14. The solution: This consisted of a number of separate tasks:
  15. 10.9
  16. 1) make each address a single line of text
  17. 10.9
  18. 2) sort out the over-long addresses and shorten them
  19. 10.9
  20. 3) make every address exactly eight lines
  21. 10.9
  22. 4) put each address back into multiple lines of text
  23. 10.9
  24. 1, 2 and 4 are easy enough, but I first thought that the only way to
  25. cope with different lengths of label was to write a Basic program,
  26. but then I suddenly realised how to do it. Anyway, hereæs the full
  27. recipe:
  28. 10.9
  29. 1) In Edit (because I find StrongED a little slow when doing S&R on
  30. very large files Ö sorry Guttorm!), S&R all double returns (\n\n)
  31. into xzxz, change all returns into tabs (\x09), and change all xzxz
  32. into single returns.
  33. 10.9
  34. 2) Drop the resulting file into PipeDream. The number of columns is
  35. then the number of lines of the longest address. So if the last
  36. column is j, sort the whole text on column j, with a secondary sort
  37. on column i. This will bring all the too-long lines to the top of the
  38. file. Now drop the file back out into Edit or StrongED and
  39. concatenate (good word, that!) parts of the over-long addresses so
  40. that they each only have eight lines max.
  41. 10.9
  42. 3) Drag the file back now into PipeDream and check that no lines
  43. spill over into column i. Check also that the addresses that fit all
  44. eight columns are at the top of the file. Go to the first address
  45. that does not extend into column h and enter öxzxzò into the box in
  46. column h. Copy this box down to the end of the file. Drop it back
  47. into Edit and use S&R to remove all occurrences of xzxz, and all
  48. addresses now have exactly eight lines!
  49. 10.9
  50. 4) Continuing in Edit, use S&R to change all returns (\n) into xzxz,
  51. then all tabs (\x09) into returns (\n) and finally all xzxz into
  52. double returns (\n\n).
  53. 10.9
  54. If you want to do a final check to see that all the addresses start
  55. at exactly 9-line intervals, drop the text into StrongED (youæll see
  56. why in a minute!) and open up the height of the window to exactly a
  57. whole number multiple of nine lines of text. A few clicks inside the
  58. scroll bar, to move down a screen at a time, will show if it is
  59. creeping up or creeping down each click. If it is exactly right (and
  60. this is easier to achieve in a lower resolution screen mode), you can
  61. click and hold inside the scroll bar and it will auto-repeat a
  62. screenful at a time, right to the end of the file. (Edit doesnæt auto-
  63. repeat mouse clicks, so 8,000 addresses at eight addresses per click
  64. = 1,000 clicks = RSI in my mouse-finger!)
  65. 10.9
  66. (Oh, Iæve just thought Ö you could use Edit because the <page-down>
  67. key has the same effect, and that does auto-repeat!)
  68. 10.9
  69. The challenge: If you have a text editing job to do and would like me
  70. to have a go at it, do get in touch. (a) I enjoy this kind of
  71. challenge and (b) the solution, like the one above, might help others
  72. in doing their text-editing jobs.
  73. 10.9
  74. (If you want more help on this sort of thing, Jim Notttingham did an
  75. excellent series on text editing in issues 8.3p63, 8.4p43, 8.5p15, 8.
  76. 8p64 and 9.1p57. Gosh, was it that long ago?!)
  77. 10.9
  78. Ed. <paul.NCS@paston.co.uk>
  79. 10.9
  80. Background printing Ö I have had, for some time, two Printer icons on
  81. the iconbar. One is set up to print to a file Ö the one that is
  82. always selected Ö and the other is set up to print to the printer.
  83. 10.9
  84. I used to print to a file by default, but then I had to look around
  85. for the printfile, to drag it to the other printer icon, in order to
  86. print in the background.
  87. 10.9
  88. Now I have the printfile stuck to the backdrop near the Éprint to
  89. printeræ icon, so dragging the printfile to the printer icon is now
  90. the work of a moment! Obvious really Ö but only if the idea happens
  91. to occur to you. (Or if you read it in Archive! Thanks for that,
  92. Barry Ö so come on, folk, send in the Éobviousæ tricks that save you
  93. time. Ed.)
  94. 10.9
  95. Barry Allen <barrya@dean.nwnet.co.uk>
  96. 10.9
  97. Exiting from CASE...ENDCASE Ö The CASE...OF..WHEN..OTHERWISE...
  98. ENDCASE construct, introduced in version 1.04 of Basic, provides a
  99. very powerful means of writing structured programs. The CASE
  100. construct consists of a number of WHEN statements followed by one or
  101. more values or expressions to be matched. Whenever the result of the
  102. CASE expression matches one of the values listed after the WHEN, all
  103. statements following this WHEN are executed, down to the next WHEN,
  104. OTHERWISE or ENDCASE. The Basic interpreter then skips to the
  105. statement following the ENDCASE, and continues with the rest of the
  106. program. For this reason, the WHEN, OTHERWISE and ENDCASE keywords
  107. must each start at the beginning of a line.
  108. 10.9
  109. So far, I have described the normal use of the CASE...ENDCASE
  110. construct. However, there are situations where the WHEN part consists
  111. of many statements, mostly occupying separate lines. In such cases,
  112. it is possible that other constructs such as IF...ENDIF or REPEAT...
  113. UNTIL are used inside a WHEN part, and a means to exit from the WHEN
  114. construct is required, so that the program continues after the
  115. ENDCASE statement.
  116. 10.9
  117. Basic provides a means to exit from a CASE...ENDCASE construct using
  118. the keyword WHEN.
  119. 10.9
  120. Here is an example:
  121. 10.9
  122. 10 check%=7
  123. 10.9
  124. 20 test% =0
  125. 10.9
  126. 30
  127. 10.9
  128. 40 CASE test% OF
  129. 10.9
  130. 50 WHEN 0:
  131. 10.9
  132. 60 IF check%=7 THEN PRINT ö1st checkò
  133. 10.9
  134. 70 IF check%=7 THEN PRINT ö2nd checkò
  135. 10.9
  136. 80 IF check%=7 THEN PRINT ö3rd checkò
  137. 10.9
  138. 90 ENDCASE
  139. 10.9
  140. Running the above program will produce the following on the screen:
  141. 10.9
  142. 1st check
  143. 10.9
  144. 2nd check
  145. 10.9
  146. 3rd check
  147. 10.9
  148. All three lines are, of course, printed. If you want to terminate the
  149. WHEN part after the first check (at line 60) and skip lines 70 and
  150. 80, then you replace line 60 with the following:
  151. 10.9
  152. 60 IF check%=7 THEN PRINT ö1st checkò:WHEN
  153. 10.9
  154. 70 IF check%=7 THEN PRINT ö2nd checkò
  155. 10.9
  156. 80 IF check%=7 THEN PRINT ö3rd checkò
  157. 10.9
  158. 90 ENDCASE
  159. 10.9
  160. By adding a WHEN keyword, the Basic interpreter will terminate the
  161. WHEN part and close the ENDCASE construct after line 60 (i.e. the IF
  162. matching part). So, running the program with line 60 changed will
  163. produce the following result:
  164. 10.9
  165. 1st check
  166. 10.9
  167. Lines 70 and 80 will be skipped.
  168. 10.9
  169. The above use of WHEN to close an ENDCASE construct is, to my
  170. knowledge, undocumented although the Basic Reference Manual does
  171. describe or hint at its use. Using the keyword OTHERWISE in place of
  172. WHEN for early exits also seems to give the same results!
  173. 10.9
  174. Mohsen Alshayef <mohsen@qatar.net.qa>
  175. 10.9
  176. Magazine storage Ö I see that Archive storage is still a topic of
  177. concern (10.8 p27). How about cutting down A4 racks? The magazines
  178. fit long-side in (because A5 = half-A4), but you can put them on the
  179. shelf either way. This is particularly useful for wire-bound manuals
  180. that just will not fit a normal A5 box, and a suitable cut provides a
  181. housing for Acorn manuals that otherwise fit too tightly in the
  182. supplied box. You may think cutting down is wasteful, so buy the
  183. cheapest, which I believe are IKEAæs PENG at ú3 for eight. These are
  184. the plainest brown card with no printing, and can also make useful
  185. trays for other odds and ends.
  186. 10.9
  187. Steve Drain <steve.d@virgin.net>
  188. 10.9
  189. Neat screenshots (again) Ö Hereæs another offering spurred by the
  190. comment in Archive 10.7 p20. It is !GrabMenu by Cy Booker and it
  191. allows you to grab menus that are transient. Hereæs an example of
  192. what it can do.
  193. 10.9
  194. Itæs worth reading the !Help file that comes with it as itæs a bit
  195. quirky and not all that intuitive to use.
  196. 10.9
  197. Jim Nottingham <email via NCS>
  198. 10.9
  199. StrongARM speed-up Ö I was particularly interested in the StrongARM
  200. upclocking article (10.8 p19) as I tried this out some months ago and
  201. Iæve sent Paul the various programs, tests and charts that Iæve
  202. compiled which may be of interest to readers. (On the monthly program
  203. disc.) This is also available from the Acorn Cybervillage FTP site
  204. at: 
  205. 10.9
  206. ftp://ftp.cybervillage.co.uk/pub/acorn/info/
  207. 10.9
  208. My StrongARM also runs cool at 287MHz, but it was very slightly flaky
  209. at this speed. However, I think it is more to do with the PC card and
  210. StrongARM not wanting to work together at that speed. (I wasnæt
  211. actually running the PC card, you understand, but it does continue to
  212. operate in an idle mode even when not being used.)
  213. 10.9
  214. Iæd also recommend that people with a PC card and a upclocked
  215. StrongARM use the PCsleep application as this powers down the PC card
  216. and thus reduces the internal temperature of the RiscPC.
  217. 10.9
  218. Stuart Halliday <stuart@quantumsoft.co.uk>
  219. 10.9
  220. On the program disc, Iæve put Stuartæs tests for speed and memory
  221. integrity, plus some things sent in by Tony Hopstaken, who was the
  222. person quoted last month at the end of Robertæs article. Ed.
  223. 10.9
  224. StrongARM speed-up (2) Ö Various people have mentioned the fact that
  225. Robert suggests using a piece of anti-static bag as an insulator, but
  226. the idea of these bags is that the inside surface is slightly
  227. conductive. It would be much better to use simple dry cardboard.
  228. 10.9
  229. A number of other people, like Tony and Stuart, are running
  230. StrongARMs at higher speeds without any extra cooling at all and
  231. donæt seem to be having any problems. However, we cannot, by
  232. definition, know what the long-term effect is, i.e. whether the life
  233. of the chip will be reduced. Still, as Tony says, öAs long as it
  234. lasts until my RiscPC II arrives, I donæt mind!ò
  235. 10.9
  236. Ed. <paul.NCS@paston.co.uk>
  237.