Я пробую таким, но наверняка есть способ проще и лучше=)
Код
Var
k:Char;
st:String;
Begin
Repeat
k:=ReadKey;
If k in ['0'.. '9'] then
begin
st:=st+k;
Write(k);
end
Else if (ord(k)) = 8 then
begin
delete(st, length(st), 1);
GotoXY(1,WhereY);
ClrEOL;
Write(st);
end
Until k = #13;
END.
k:Char;
st:String;
Begin
Repeat
k:=ReadKey;
If k in ['0'.. '9'] then
begin
st:=st+k;
Write(k);
end
Else if (ord(k)) = 8 then
begin
delete(st, length(st), 1);
GotoXY(1,WhereY);
ClrEOL;
Write(st);
end
Until k = #13;
END.
второй вопросик
если напр. написать этот код, то пишутся на экране только цифры
Код
Repeat
k:=ReadKey;
If k in ['0'.. '9'] then
begin
st:=st+k;
Write(k);
end
Until [b]k = #13[/b];
END.
если же вместо k = #13 написать EOLN, то на экране появляются также буквы. Почему? Знаю, что EOLN писать здесь неправильно, но просто интересно, почему на экране пишутся буквы?