[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]