home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1987 / 06 / string.log < prev    next >
Encoding:
Text File  |  1987-05-18  |  1.3 KB  |  33 lines

  1. to PART :X :A :B
  2. ; *** TEILSTRING VON :X VON POSITION :A BIS :B ***
  3.   if (listp :X) [op []]  ; Fuer Listen nicht zustaendig ! 
  4.   if (not numberp :A) [op []]  ; Bereichsgrenzen :A und B:  
  5.   if (not numberp :B) [op []]  ; muessen Zahlen sein ! 
  6.   ; Ggf. Indexgrenzen korrigieren  
  7.   (local "C "D)  ; Hilfsvariablen 
  8.   make "C :A 
  9.   make "D :B 
  10.   if (:A < 1) [make "C 1] 
  11.   if (:B > count :X) [make "D count :X] 
  12.   op PART@ :X :C :D
  13. end
  14. to PART@ :X :A :B
  15. ; *** Diese Funktion macht die rekursive Arbeit fuer PART *** 
  16.   if (not :A > :B) [op fput (item :A :X) (PART@ :X :A + 1 :B)]  ; THEN-Zweig
  17.                    [op "] ; ELSE-Zweig
  18. end
  19. to SEARCH :X :Y
  20. ; *** ERMITTELT DIE POSITION DES ZEICHENS :Y IM STRING :X ***
  21.   if (0 = count :Y) [op 0]  ; Stringlaenge 0 ! 
  22.   local "H  ; Hilfsvariable 
  23.   make "H SEARCH@ :X first :Y 
  24.   if (:H > count :X) [op 0]  ; THEN-Zweig
  25.                      [op :H] ; ELSE-Zweig
  26. end
  27. to SEARCH@ :X :Y
  28. ; *** Diese Funktion macht dann die rekursive Arbeit fuer SEARCH ***
  29.   if (0 = count :X) [op 1]  ; Bei Null-String Dummywert zurueckgeben 
  30.   if (:Y = first :X) [op 1]  ; THEN-Zweig
  31.                      [op 1 + SEARCH@ bf :X :Y] ; ELSE-Zweig
  32. end
  33.