home *** CD-ROM | disk | FTP | other *** search
- {
- This code has been slightly shrunk to fit into one message.
- }
-
- Program input;
- Uses
- Dos, Crt;
-
- Const
- Word_wrap = 50;
-
- Var
- tick,
- mlines : Integer;
- modem : String[1];
- incom,
- waiting : String[128];
-
- Procedure outread(avr1, avr2, avr3 : Integer);
-
- Var { avr1= 1=passWord, 2=normal }
- i,y,o, { avr2= 1=none, 2=Word wrap }
- count:Integer; { avr3= 1=pull from String, 2=none }
- Word:String[10]; Charout:Char;
-
- begin
- incom:=''; count:=0; mlines:=0;
- if avr3=2 then waiting:='';
- if avr3=1 then if waiting<>'' then
- begin
- incom:=waiting;
- waiting:='';
- Write(incom);
- count:=length(incom);
- end;
- modem:=''; TextColor(3);
- While modem<>chr(13) do
- begin
- Charout:=ReadKey; modem:=Charout;
- Case ord(modem[1]) of
- 13:begin { return }
- Writeln; Exit;
- end;
- 8:begin { backspace }
- if count>0 then
- begin
- Write(chr(8)+chr(32)+chr(8));
- delete(incom,count,1);
- count:=count-1;
- end;
- modem:='';
- end;
- 9:begin { tab }
- Write(' '); incom:=incom+' '; count:=count+5;
- modem:='';
- end;
- 10:modem:=''; { line feed }
- 1..26,
- 28..31,
- 128..255:begin { inappropriate Characters }
- modem:='';
- end;
- end;
- if modem<>'' then
- begin
- count:=count+1;
- if count<Word_wrap then
- begin
- incom:=incom+modem;
- Case avr1 of
- 1:Write('?');
- 5:Write;
- else Write(modem);
- end;
- end else if avr2=2 then
- begin
- waiting:='';
- For i:=length(incom) DownTo 1 do
- begin
- Write(chr(8)+chr(32)+chr(8));
- Word:=copy(incom,i,1);
- if Word=chr(32) then
- begin
- waiting:=copy(incom,i+1,length(incom));
- waiting:=waiting+modem;
- delete(incom,i,length(incom)); Writeln; Exit;
- end;
- end;
- end;
- end;
- end; { waiting For modem to = chr(13) }
- if avr1 <> 5 then Writeln;
- end; { end of Procedure }
-
- begin
- ClrScr;
- TextColor(15);
- Write('This is a passWord input: ');
- outread(1,1,2);
- TextColor(11);
- Writeln('Return = ',incom);
- TextColor(15);
- Write('This is a normal input: ');
- outread(2,1,2);
- TextColor(11);
- Writeln('Return = ',incom);
- TextColor(15);
- Writeln('This is a controlled Word-wrap input at length 50:');
- Writeln;
- tick := 0;
- For tick := 1 to 5 do
- outread(2, 2, 1);
- end.