Запись информации с экрана в переменную - Free Pascal
Формулировка задачи:
На экране имеется некоторая последовательность символов. Нужно это символы занести в строковую переменную. Пробовал вводить Reset(Output); Read(Output,stroka); но как-то безрезультатно. Как можно это реализовать?
Неужели никто не знает? Если кто не понял, мне нужно символы, отображающиеся на экране(неважно как они туда попали) занести в строковую переменную.
Решение задачи: «Запись информации с экрана в переменную»
textual
Листинг программы
uses crt;
type
VideoType =
record
ch : Char;
attr : Byte;
end;
const
ScreenWidth = 80;
ScreenHeight = 25;
var
VideoBuf : array[1 .. ScreenHeight, 1 .. ScreenWidth] Of VideoType
absolute $B800 : $0000;
var
s : string;
i : integer;
begin
clrscr;
for i := 1 to 20 do writeln('test');
s := '';
for i := 1 to 5 do s := s + videobuf[1, i].ch;
writeln('|' + s + '|');
end.
Объяснение кода листинга программы
- Объявление переменных и констант: — VideoType - тип записи, используемый для хранения информации о видеопамяти. — ScreenWidth и ScreenHeight - константы, определяющие ширину и высоту экрана соответственно. — VideoBuf - массив, используемый для хранения информации о видеопамяти. — absolute $B800 : $0000 - данная строка используется для инициализации сегмента данных видеопамяти. — s - строка, используемая для хранения считанной информации о видеопамяти. — i - целочисленная переменная, используемая для цикла.
- Очистка экрана с помощью функции clrscr.
- Цикл for, выполняющийся 20 раз, каждая итерация выводит на экран текст
test. - Считывание информации о видеопамяти в строку s. Для этого используется цикл for, который выполняется 5 раз, считывая информацию о символах по горизонтали экрана.
- Вывод на экран информации о считанной строке с помощью функции writeln, к которой добавляется символ вертикальной черты (|) и символ конца строки (»).