home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / lang / pascal / 6798 < prev    next >
Encoding:
Internet Message Format  |  1992-11-21  |  1.4 KB

  1. Path: sparky!uunet!zaphod.mps.ohio-state.edu!darwin.sura.net!lhc!adm!news
  2. From: Paul.Robinson@f417.n109.z1.fidonet.org (Paul Robinson)
  3. Newsgroups: comp.lang.pascal
  4. Subject: String (4/4)
  5. Message-ID: <34185@adm.brl.mil>
  6. Date: 21 Nov 92 17:21:24 GMT
  7. Sender: news@adm.brl.mil
  8. Lines: 65
  9.  
  10. procedure delete(var s:string; start,span:integer);
  11.  
  12. var     i,limit: integer;
  13.  
  14. begin
  15.  
  16.         if span<0 then begin span:=-span; start:=start-span end;
  17.  
  18.         limit:=start+span;
  19.  
  20.         if start<1 then start:=1;
  21.  
  22.         if limit>s.len+1 then limit:=s.len+1;
  23.  
  24.         span:=limit-start;
  25.  
  26.         if span>0 then begin
  27.  
  28.            for i:=0 to s.len-limit do s.ch[start+i]:=s.ch[limit+i];
  29.  
  30.            for i:=s.len-span+1 to s.len do s.ch[i]:=' ';
  31.  
  32.            s.len:=s.len-span;
  33.  
  34.            end;
  35.  
  36. end;
  37.  
  38.  
  39.  
  40. procedure insert(var s:string;VAR t:string; p:integer);
  41.  
  42. var     i,j: integer;
  43.  
  44. begin
  45.  
  46.         if t.len>0 then
  47.  
  48.            if (p>0) and (p<=s.len+1)
  49.  
  50.               then begin
  51.  
  52.                  if s.len+t.len<=stringmax
  53.  
  54.                     then s.len:=s.len+t.len
  55.  
  56.                     else s.len:=stringmax { overflow } ;
  57.  
  58.                  for i:=s.len downto p+t.len do s.ch[i]:=s.ch[i-t.len];
  59.  
  60.                  if s.len<p+t.len
  61.  
  62.                     then j:=s.len
  63.  
  64.                     else j:=p+t.len-1;
  65.  
  66.                  for i:=p to j do s.ch[i]:=t.ch[i-p+1];
  67.  
  68.                  end
  69.  
  70.               else { error: non-contiguous string }
  71.  
  72. end;
  73.  
  74.  
  75.