home *** CD-ROM | disk | FTP | other *** search
/ Global Amiga Experience / globalamigaexperience.iso / compressed / development / clusterdemo.dms / clusterdemo.adf / Modules.lha / modules / txt / Strings.def < prev    next >
Text File  |  1994-05-25  |  12KB  |  370 lines

  1. |##########|
  2. |#MAGIC   #|CLABLJFA
  3. |#PROJECT #|""
  4. |#PATHS   #|"StdProject"
  5. |#FLAGS   #|xx---x--x---x-x-----------------
  6. |#USERSW  #|--------------------------------
  7. |#USERMASK#|--------------------------------
  8. |#SWITCHES#|xx---xxxxx------
  9. |##########|
  10. |==============================================================================|
  11. | Modul      : Strings                                                         |
  12. | Autor      : Thomas Pfrengle + Ulrich Sigmund                                |
  13. | Datum      : 29.9.1991                                                       |
  14. | Verwendung : Bearbeitung von ClusterStrings mit Laufzeitchecks.              |
  15. | Änderungen : -                                                               |
  16. |==============================================================================|
  17. DEFINITION MODULE Strings;
  18.  
  19. FROM System     IMPORT Regs,SysStringPtr,Equation;
  20. FROM Dos        IMPORT BSTR;
  21. FROM Resources  IMPORT ContextPtr,NoContext;
  22. FROM Exceptions IMPORT RangeViolation;
  23.  
  24. TYPE
  25.   MString  = ARRAY OF CHAR;
  26.  
  27.  
  28. (*=========================== Compare ========================================*)
  29.  
  30. |
  31. | Funktion  : Prüft zwei Strings auf Gleichheit.
  32. | Parameter : str1,str2   <- String, die verglichen werden sollen.
  33. |                         -> TRUE wenn gleich.
  34. | tested
  35. PROCEDURE Equal(REF str1 IN A0,
  36.                     str2 IN A1 : STRING): BOOLEAN;
  37.  
  38.  
  39. |
  40. | Funktion  : Wie Equal, jedoch ohne Beachtung der Groß/Kleinschreibung (a=A)*)
  41. |
  42. | tested
  43. PROCEDURE CapsEqual(REF str1 IN A0,
  44.                         str2 IN A1 : STRING):BOOLEAN;
  45.  
  46. |
  47. | Funktion  : Wie CapsEqual, jedoch für BCPL-Strings.
  48. |
  49.  
  50. PROCEDURE BCPL_Equal(str1 IN A0,
  51.                      str2 IN A1 : BSTR):BOOLEAN;
  52.  
  53.  
  54. |
  55. | Funktion  : Prüft ob str1 größer als str2 ist.
  56. | Parameter : str1,str2   <- String, die verglichen werden sollen.
  57. |                         -> TRUE wenn str1 größer str2.
  58. | tested
  59. PROCEDURE Greater(REF str1 IN A0,
  60.                       str2 IN A1 : STRING):BOOLEAN;
  61.  
  62.  
  63. |
  64. | Funktion  : Prüft ob str1 größer als str2 ist. Ohne Berücksichtigung der
  65. |             Groß/Kleinschreibung.
  66. | Parameter : str1,str2   <- String, die verglichen werden sollen.
  67. |                         -> TRUE wenn str1 größer str2.
  68. | tested
  69. PROCEDURE CapsGreater(REF str1 IN A0,
  70.                           str2 IN A1 : STRING):BOOLEAN;
  71.  
  72. |
  73. | Funktion  : Vergleicht zwei Strings.
  74. | Parameter : str1,str2   <- String, die verglichen werden sollen.
  75. |                         -> smaller = str1 kleiner str2
  76. |                            equal   = str1 gleich  str2
  77. |                            greater = str1 größer  str2
  78. | tested
  79. PROCEDURE Compare(REF str1 IN A0,
  80.                       str2 IN A1 : STRING):Equation;
  81.  
  82.  
  83. (*======================= Search =============================================*)
  84.  
  85. |
  86. | Funktion  : Sucht nach dem ersten Auftreten eines Zeichens.
  87. | Parameter : str  <- String in dem gesucht werden soll.
  88. |             Ch   <- Zeichen, das gesucht werden soll.
  89. |                  -> Position des gesuchten Zeichens.
  90. | Bemerkung : Wird das Zeichen nicht gefunden, wird -1 zurückgegeben.
  91. |
  92.  
  93. PROCEDURE First(REF str IN A0 : STRING;ch IN D2 : CHAR):INTEGER;
  94.  
  95.  
  96. |
  97. | Funktion  : Sucht nach dem nächsten Auftreten eines Zeichens.
  98. | Parameter : str  <- String in dem gesucht werden soll.
  99. |             Ch   <- Zeichen, das gesucht werden soll.
  100. |             pos  <- Position ab der gesucht wird.
  101. |                  -> Position des gesuchten Zeichens.
  102. | Bemerkung : Wird das Zeichen nicht gefunden, wird -1 zurückgegeben.
  103. |
  104.  
  105. PROCEDURE Next(REF str IN A0 : STRING;ch IN D2 : CHAR;pos IN D3 : INTEGER):INTEGER;
  106.  
  107.  
  108. |
  109. | Funktion  : Sucht nach dem letzten Auftreten eines Zeichens
  110. | Parameter : str  <- String in dem gesucht werden soll.
  111. |             ch   <- Zeichen, das gesucht werden soll.
  112. |                  -> Position des gesuchten Zeichens.
  113. | Bemerkung : Wird das Zeichen nicht gefunden, wird -1 zurückgegeben.
  114. |
  115. | tested
  116. PROCEDURE Last(REF str IN A0 : STRING;ch IN D2 : CHAR):INTEGER;
  117.  
  118.  
  119. |
  120. | Funktion  : Sucht nach dem voherigen Auftreten eines Zeichens.
  121. | Parameter : str  <- String in dem gesucht werden soll.
  122. |             ch   <- Zeichen, das gesucht werden soll.
  123. |             pos  <- Position ab der gesucht wird.
  124. |                  -> Position des gesuchten Zeichens.
  125. | Bemerkung : Wird das Zeichen nicht gefunden, wird -1 zurückgegeben.
  126. |
  127. | tested
  128. PROCEDURE Prev(REF str IN A0 : STRING;ch IN D2 : CHAR;pos IN D3 : INTEGER):INTEGER;
  129.  
  130.  
  131. |
  132. | Funktion  : Sucht nach dem ersten Auftreten eines Strings in einem anderen
  133. | Parameter : find <- String, der gesucht werden soll.
  134. |             in   <- String, in dem gesucht werden soll.
  135. |                  -> Position des gesuchten Strings.
  136. | Bemerkung : Wird das Zeichen nicht gefunden, wird -1 zurückgegeben.
  137. |
  138. | tested
  139. PROCEDURE Search(REF find,in : STRING):INTEGER;
  140.  
  141.  
  142. |
  143. | Funktion  : Sucht nach dem nächsten Auftreten eines Strings.
  144. | Parameter : find <- String, der gesucht werden soll.
  145. |             in   <- String, in dem gesucht werden soll.
  146. |             pos  <- Position ab der gesucht wird.
  147. |                  -> Position des gesuchten Strings.
  148. | Bemerkung : Wird das Zeichen nicht gefunden, wird -1 zurückgegeben.
  149. |
  150. | tested
  151. PROCEDURE SearchNext(REF find,in : STRING;pos : CARDINAL):INTEGER;
  152.  
  153.  
  154. (*====================== Modify ==============================================*)
  155.  
  156.  
  157. |
  158. | Funktion  : Kopiert aus einem String ein Stück aus.
  159. | Parameter : str   <- QuellString
  160. |             pos   <- Position ab der kopiert werden soll.
  161. |             len   <- Länge des Berichs, der kopiert werden soll.
  162. |                   -> kopierter Bereich
  163. | tested
  164. $$OwnHeap:=TRUE
  165. PROCEDURE Seg(REF str IN A0 : STRING;pos IN D2,len IN D3 : INTEGER):STRING;
  166.  
  167.  
  168. |
  169. | Funktion  : Setzt eine Liste von Strings zu einem zusammen.
  170. | Parameter : strs        <- Liste von Strings.
  171. |                         -> zusammengesetzter neuer
  172. |                            String.
  173. | tested
  174. $$OwnHeap:=TRUE
  175. PROCEDURE Concat(REF strs : LIST OF STRING):STRING;
  176.  
  177.  
  178. |
  179. | Funktion  : Fügt in einen String ein Stück ein und gibt das Ergebnis zurück*)
  180. | Parameter : str  <- String der Eingefügt werden soll.
  181. |             into <- String in den eingefügt werden soll.
  182. |             pos  <- Position, ab der eingefügt werden soll.
  183. |                  -> Ergebnisstring.
  184. | tested
  185. $$OwnHeap:=TRUE
  186. PROCEDURE Insert(REF str,into : STRING;pos : INTEGER):STRING;
  187.  
  188.  
  189. |
  190. | Funktion  : Scheidet einen Teil des Strings heraus.
  191. | Parameter : str <- String der als Vorlage dient.
  192. |             pos <- Position ab der geschnitten werden soll.
  193. |             len <- Länge des Stücke, das ausgeschnitten werden soll.
  194. |                 -> Ergebnisstring
  195. | tested
  196. $$OwnHeap:=TRUE
  197. PROCEDURE Delete(REF str : STRING;pos,len : INTEGER):STRING;
  198.  
  199.  
  200. |
  201. | Funktion  : Ersetzt einen Teil eines Strings durch einen anderen.
  202. | Parameter : str   <- Quellstring
  203. |             Into  <- String durch den ein Teil von str ersetzt werden soll.
  204. |             pos   <- Position, ab der ersetzt werden soll.
  205. |                   -> Ergebnisstring.
  206. | Bemerkung : Paßt Into nicht in str, wird ein RangeCheck ausgelöst.
  207. |
  208. | tested
  209. $$OwnHeap:=TRUE
  210. PROCEDURE Replace(REF str,into : STRING;pos IN D2 : INTEGER):STRING;
  211.  
  212.  
  213. |
  214. | Funktion  : Vervielfältigt einen String in einen anderen und gibt diesen
  215. |             zurück. Z.B. Dup("Str",3)="StrStrStr".
  216. | Parameter : str  <-  String der Vervielfälltigt werden soll.
  217. |             num  <-  Zahl der Vervielfälltigungen
  218. |                  ->  Ergebnisstring
  219. | tested
  220. $$OwnHeap:=TRUE
  221. PROCEDURE Dup(REF str IN A0 : STRING;num IN D2 : INTEGER):STRING;
  222.  
  223.  
  224. |
  225. | Funktion  : Füllt einen Teil eines Strings mit Zeichen.
  226. | Parameter : str   <- String, in dem gefüllt werden soll.
  227. |             ch    <- Zeichen mit dem gefüllt werden soll.
  228. |             pos   <- Position,ab der gefüllt werden soll.
  229. |             len   <- Anzahl Felder, die gefüllt werden sollen.
  230. |                   -> Ergebnisstring
  231. | tested
  232. $$OwnHeap:=TRUE
  233. PROCEDURE Fill(REF str : STRING;ch : CHAR;pos,len : CARDINAL):STRING;
  234.  
  235.  
  236. |
  237. | Funktion  : Kopiert aus einem String ein Stück heraus.
  238. | Parameter : str   <- QuellString
  239. |             pos   <- Position ab der kopiert werden soll.
  240. |             len   <- Länge des Berichs, der kopiert werden soll.
  241. |             segment -> kopierter Bereich.
  242. |
  243. | tested
  244. PROCEDURE CutOut(REF str     IN A0 : STRING;
  245.                      pos     IN D2,
  246.                      len     IN D3 : INTEGER;
  247.                  VAR segment       : STRING);
  248.  
  249.  
  250. |
  251. | Funktion  : Fügt in einen String ein Stück ein.
  252. | Parameter : dest    <- String in den Eingefügt werden soll.
  253. |             source  <- String der eingefügt werden soll.
  254. |             pos     <- Position, ab der eingefügt werden soll.
  255. |
  256. | tested
  257. PROCEDURE InsertIn(REF str    IN A0 : STRING;
  258.                    VAR into         : STRING;
  259.                        pos    IN D2 : INTEGER);
  260.  
  261.  
  262. |
  263. | Funktion  : Ersetzt einen Teil eines Strings durch einen anderen.
  264. | Parameter : str   <- String in den ein Teil eingesetzt werden soll.
  265. |             into  <- String durch den ein Teil von str ersetzt werden soll.
  266. |             pos   <- Position, ab der ersetzt werden soll.
  267. | Bemerkung : Paßt Into nicht in str, bleibt str unverändert.
  268. |
  269. | tested
  270. PROCEDURE ReplaceIn(REF str   IN A0 : STRING;
  271.                     VAR into        : STRING;
  272.                         pos   IN D2 : INTEGER);
  273.  
  274.  
  275. |
  276. | Funktion  : Scheidet einen Teil des Strings heraus.
  277. | Parameter : str <- String aus dem ausgeschnitten werden soll.
  278. |             pos <- Position ab der geschnitten werden soll.
  279. |             len <- Länge des Stücke, das ausgeschnitten werden soll.
  280. |
  281. |tested
  282. PROCEDURE Erase(VAR str IN A0 : STRING;
  283.                     pos IN D2,
  284.                     len IN D3 : INTEGER);
  285.  
  286. |
  287. | Funktion  : Fügt zwei Strings zusammen.
  288. | Parameter : dest        <- linker Teil des neuen Strings.
  289. |             source      <- rechter Teil des neuen Strings.
  290. |             dest        -> der aus Dest und Source zusammengesetzte neue
  291. |                            String.
  292. |
  293. | tested
  294. PROCEDURE Append(VAR dest : STRING;REF source IN A1 : STRING);
  295.  
  296.  
  297.  
  298. (*======================== Conversion ========================================*)
  299.  
  300.  
  301. |
  302. | Funktion  : Gibt einen Zeiger auf einen SystemString zurück nach Übergabe
  303. |             eines ClusterStrings.
  304. | Parameter : str         <- ClusterString.
  305. |                         -> Zeiger auf SystemString.
  306. | tested
  307. PROCEDURE SysStr(REF str IN A0 : STRING):SysStringPtr;
  308.  
  309.  
  310. |
  311. | Funktion  : Gibt einen ClusterString nach übergabe eines Zeigers auf einen
  312. |             SystemString zurück.
  313. | Parameter : Ptr         <- Zeiger auf SystemString.
  314. |                         -> ClusterString.
  315. |
  316. $$OwnHeap:=TRUE
  317. PROCEDURE Str(ptr IN A0 : SysStringPtr):STRING;
  318.  
  319. |
  320. | Funktion  : Gibt einen Zeiger auf einen BCPL-String zurück nach Übergabe
  321. |             eines ClusterStrings.
  322. | Parameter : str         <- ClusterString.
  323. |                         -> Zeiger auf BCPL-String.
  324. |
  325. PROCEDURE CreateBSTR(REF str      IN A0 : STRING;
  326.                          resident IN D2 : BOOLEAN := FALSE;
  327.                          context  IN A1 : ContextPtr:=NoContext):BSTR;
  328.  
  329.  
  330. |
  331. | Funktion  : Gibt einen ClusterString nach übergabe eines Zeigers auf einen
  332. |             BCPL-String zurück.
  333. | Parameter : ptr         <- Zeiger auf BCPL-String.
  334. |                         -> ClusterString.
  335. |
  336. $$OwnHeap:=TRUE
  337. PROCEDURE BSTRtoString(ptr IN A0 : BSTR):STRING;
  338.  
  339.  
  340. |
  341. | Funktion  : Wandelt einen Clusterstring in einen ModulaString um.
  342. |             eines ClusterStrings.
  343. | Parameter : str         <-  ClusterString.
  344. |             mStr        <-> ModulaString.
  345. |
  346.  
  347. PROCEDURE StrToMStr(REF str IN A0 : STRING;VAR mStr : MString);
  348.  
  349.  
  350. |
  351. | Funktion  : Gibt einen ClusterString nach übergabe eines ModulaStrings
  352. |             zurück.
  353. | Parameter : mStr        <- ModulaString.
  354. |                         -> ClusterString.
  355. |
  356. $$OwnHeap:=TRUE
  357. PROCEDURE MStrToStr(REF mStr : MString):STRING;
  358.  
  359.  
  360.  
  361. GROUP
  362.   All  = Equation,MString,Equal,CapsEqual,BCPL_Equal,Greater,CapsGreater,
  363.          Compare,First,Next,Last,Prev,Search,SearchNext,Seg,Concat,Insert,
  364.          Delete,Replace,Dup,Fill,CutOut,InsertIn,ReplaceIn,Erase,Append,
  365.          SysStr,Str,CreateBSTR,BSTRtoString,MStrToStr;
  366.  
  367. END Strings.
  368.  
  369.  
  370.