home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!zaphod.mps.ohio-state.edu!darwin.sura.net!lhc!adm!news
- From: Paul.Robinson@f417.n109.z1.fidonet.org (Paul Robinson)
- Newsgroups: comp.lang.pascal
- Subject: String (4/4)
- Message-ID: <34185@adm.brl.mil>
- Date: 21 Nov 92 17:21:24 GMT
- Sender: news@adm.brl.mil
- Lines: 65
-
- procedure delete(var s:string; start,span:integer);
-
- var i,limit: integer;
-
- begin
-
- if span<0 then begin span:=-span; start:=start-span end;
-
- limit:=start+span;
-
- if start<1 then start:=1;
-
- if limit>s.len+1 then limit:=s.len+1;
-
- span:=limit-start;
-
- if span>0 then begin
-
- for i:=0 to s.len-limit do s.ch[start+i]:=s.ch[limit+i];
-
- for i:=s.len-span+1 to s.len do s.ch[i]:=' ';
-
- s.len:=s.len-span;
-
- end;
-
- end;
-
-
-
- procedure insert(var s:string;VAR t:string; p:integer);
-
- var i,j: integer;
-
- begin
-
- if t.len>0 then
-
- if (p>0) and (p<=s.len+1)
-
- then begin
-
- if s.len+t.len<=stringmax
-
- then s.len:=s.len+t.len
-
- else s.len:=stringmax { overflow } ;
-
- for i:=s.len downto p+t.len do s.ch[i]:=s.ch[i-t.len];
-
- if s.len<p+t.len
-
- then j:=s.len
-
- else j:=p+t.len-1;
-
- for i:=p to j do s.ch[i]:=t.ch[i-p+1];
-
- end
-
- else { error: non-contiguous string }
-
- end;
-
-
-