[Back to STRINGS SWAG index]  [Back to Main SWAG index]  [Original]


{ Updated STRINGS.SWG on May 26, 1995 }

{
 OK, this is the working version of the old one.
 I tested it and it worked.

 Insert_Arr2Strs procedure, and a little demo on how to use it

 by Christopher J. Chandra - 1/25/95

 PUBLIC DOMAIN CODE
}

uses crt;

type str_array=array[1..128] of char;
     str127=string[127];

procedure insert_arr2strs(s:str_array;var r1,r2:str127);
var cnt,cnt2,eidx:integer;

begin
 cnt:=1;
 eidx:=length(r1);
 r2:='';

 {assuming that the array is a NULL terminated string...}

 while ((s[cnt]<>#0) and (cnt<128) and (eidx+cnt<128)) do
 begin
  r1[eidx+cnt]:=s[cnt];    {copy the array into the 1st result string}
  inc(cnt);
 end;
  r1[0]:=chr(eidx+cnt-1);  {store the string length}

 {if any left over, do ...}

 cnt2:=1;

 while ((s[cnt]<>#0) and (cnt<129)) do
 begin
  r2[cnt2]:=s[cnt];        {copy the left over into the 2nd result string}
   inc(cnt);
   inc(cnt2);
 end;
  r2[0]:=chr(cnt2-1);      {store the string length}

end;

var myarray:str_array;
    mystr1,mystr2:str127;
    cnt:integer;
    s:string;

begin
 clrscr;

 s:='Ain''t that a nice song?  OK, here is another one ... ';
 for cnt:=1 to length(s) do myarray[cnt]:=s[cnt];myarray[cnt+1]:=#0;

 mystr1:='London Bridge is falling down, falling'+
         ' down, falling down.  London Bridge is'+
         ' falling down, my fair lady. WHOOSH!  ';
 mystr2:='';

 textcolor(12);writeln('Before insertation ...');
 textcolor(10);write('String 1:');
 textcolor(14);writeln('"',mystr1,'"');
 textcolor(10);write('String 2:');
 textcolor(14);writeln('"',mystr2,'"');writeln;
 textcolor(11);write('String Array to be inserted:');
 textcolor(13);writeln('"',s,'"');writeln;

 insert_arr2strs(myarray,mystr1,mystr2);

 textcolor(12);writeln('After insertation ... using String 2 for leftovers');
 textcolor(10);write('String 1:');
 textcolor(14);writeln('"',mystr1,'"');
 textcolor(10);write('String 2:');
 textcolor(14);writeln('"',mystr2,'"');writeln;

 s:='One Little Two Little Three Little Indians.  '+
    'Four Little Five Little Six Little Indians.  '+
    'Seven Little Eight Little ';
 for cnt:=1 to length(s) do myarray[cnt]:=s[cnt];myarray[cnt+1]:=#0;

 textcolor(11);write('String Array to be inserted:');
 textcolor(13);writeln('"',s,'"');writeln;

 insert_arr2strs(myarray,mystr2,mystr1);

 textcolor(12);writeln('After insertation ... using String 1 for leftovers');
 textcolor(10);write('String 1:');
 textcolor(14);writeln('"',mystr1,'"');
 textcolor(10);write('String 2:');
 textcolor(14);writeln('"',mystr2,'"');writeln;

 textcolor(12);writeln('End of demo.  :)');

end.

[Back to STRINGS SWAG index]  [Back to Main SWAG index]  [Original]