home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frostbyte's 1980s DOS Shareware Collection
/
floppyshareware.zip
/
floppyshareware
/
USCX
/
TURBO-06.ZIP
/
READDATE.INC
< prev
next >
Wrap
Text File
|
1985-02-23
|
6KB
|
185 lines
function readdate(x,y:integer):xxxstr8;
{ reads a string from the terminal from screen at position xy }
{ the string will contain a Valid date in format 00/00/00 }
Var
hold : array [1..6] of char;
location : integer;
inchar : char;
begin
location := 1;
textcolor(black);
textbackground(lightgray);
gotoxy(x,y);
write(' / / ');
gotoxy(x,y);
while location<8 do
begin
read(kbd,inchar);
case location of
1:
begin
gotoxy(x,y);
if inchar in ['1','0',' '] then
begin
hold[1] := inchar;
write(inchar);
location := 2;
gotoxy((x+1),y);
end
else
begin
write(chr(7));
end;
end;
2:
begin
gotoxy((x+1),y);
if inchar in ['1'..'9','0'] then
if hold[1]='1' then
if inchar in ['1','2','0'] then
begin
hold[2] := inchar;
write(inchar);
location := 3;
end
else
begin
write(chr(7));
end
else
begin
write(inchar);
hold[2] := inchar;
location := 3;
end
else
if ((inchar = chr(8)) or (inchar = chr(7))) then
begin
gotoxy(x,y);
write(' ');
location := 1;
hold[1] := ' ';
gotoxy(x,y);
end
else
begin
write(chr(7));
end;
end;
3:
begin
gotoxy((x+3),y);
if inchar in ['1'..'3','0',' '] then
begin
hold[3] := inchar;
write(inchar);
location := 4;
gotoxy((x+4),y);
end
else
if ((inchar = chr(8)) or (inchar = chr(7))) then
begin
gotoxy((x+1),y);
write(' ');
location := 2;
hold[2] := ' ';
gotoxy((x+1),y);
end
else
begin
write(chr(7));
end;
end;
4:
begin
gotoxy((x+4),y);
if inchar in ['1'..'9','0'] then
begin
hold[4] := inchar;
write(inchar);
location := 5;
gotoxy((x+6),y);
end
else
if ((inchar = chr(8)) or (inchar = chr(7))) then
begin
gotoxy((x+3),y);
write(' ');
location := 3;
hold[3] := ' ';
gotoxy((x+3),y);
end
else
begin
write(chr(7));
end;
end;
5:
begin
gotoxy((x+6),y);
if inchar in ['1'..'9','0'] then
begin
hold[5] := inchar;
write(inchar);
location := 6;
gotoxy((x+7),y);
end
else
if ((inchar = chr(8)) or (inchar = chr(7))) then
begin
gotoxy((x+4),y);
write(' ');
location := 4;
hold[4] := ' ';
gotoxy((x+4),y);
end
else
begin
write(chr(7));
end;
end;
6:
begin
gotoxy((x+7),y);
if inchar in ['1'..'9','0'] then
begin
hold[6] := inchar;
write(inchar);
location := 7;
end
else
if ((inchar = chr(8)) or (inchar = chr(7))) then
begin
gotoxy((x+6),y);
write(' ');
location := 5;
hold[5] := ' ';
gotoxy((x+6),y);
end
else
begin
write(chr(7));
end;
end;
7:
begin
if ((inchar=chr(11)) or (inchar=chr(13))) then
location := 8
else
if ((inchar=chr(8)) or (inchar=chr(7))) then
begin
gotoxy((x+7),y);
write(' ');
location := 6;
hold[6] := ' ';
gotoxy((x+7),y);
end;
end;
end;
end;
readdate := hold[1]+hold[2]+'/'+hold[3]+hold[4]+'/'+hold[5]+hold[6];
textcolor(lightgray);
textbackground(black);
end;