Доброго времени суток! Неловко даже с такой проблемой соваться, но, видимо, придется. Необходимо сделать программу в консольном режиме. Суть программы неважна - я ее уже сделал. Но вот проблема - ввод у меня задан следующим образом:
Вот так сделай:
program Project1;
{$APPTYPE CONSOLE}
uses crt32;
var
S: array of Char;
I: Integer;
begin
clrscr;
WriteLn('Input the string: ');
I := -1;
repeat
I := I + 1;
if I mod 4 = 0 then
SetLength(S, I + 4);
s[i] := Readkey; write(s[i]);
until S[I] = '.';
writeln('i = ', i);
readln;
end.
Увы, мне не подойдет. Никаких модулей, никакого асма и т.п. Вроде как все самому надо сделать. Но за модулек спасибо
Можно так:
program Project1;
{$APPTYPE CONSOLE}
uses
Windows;
var
StdIn: THANDLE;
DefMode, n: Cardinal;
S: array of Char;
I: Integer;
begin
StdIn := GetStdHandle(STD_INPUT_HANDLE);
GetConsoleMode(StdIn, DefMode);
SetConsoleMode(
StdIn,
DefMode and not (ENABLE_ECHO_INPUT or ENABLE_LINE_INPUT)
);
WriteLn('Input the string: ');
I := -1;
repeat
I := I + 1;
if I mod 4 = 0 then
SetLength(S, I + 4);
ReadConsole(StdIn, @s[i], 1, n, nil); write(s[i]);
until S[I] = '.';
writeln('i = ', i);
SetConsoleMode(StdIn, DefMode);
readln;
end.
Спасибо большущее. Может, и пройдет таким образом. Хотя сильно подозреваю, что меня пошлют, мотивируя это тем, что я таких вещей еще не знаю. Но попробовать стоит. Спасиб