home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume2 / pstrings / part01 / indexS.p < prev    next >
Encoding:
Text File  |  1991-08-07  |  389 b   |  24 lines

  1.  
  2.  
  3.  
  4.  
  5. # include "strings.h"
  6.  
  7. function indexS{(s: String; i: Nat1):Char};
  8. {
  9. * Returns s[i]
  10. *
  11. * precondition:
  12. *     i <= lengthS(s)
  13. }
  14.    var j: 2..maxint;  chunk: stringtail;
  15. begin
  16.   with s^ do
  17.   if i <= slength then indexS := HEAD[i]
  18.   else begin
  19.     chunk := TAIL;
  20.     for j := 2 to (i-1) div slength do chunk := chunk^.REST;
  21.     indexS := chunk^.MORE[ (i-1) mod slength + 1 ]
  22.   end
  23. end{ -- indexS};
  24.