Сохранение текстового экрана
FreeBasic :: Программирование :: Общее
Страница 1 из 1
Сохранение текстового экрана
Пишу процедуры сохранения/восстановления текстового экрана. Вот что получилось:
SUB SaveVideo (start_x AS INTEGER, end_x AS INTEGER, start_y AS INTEGER, end_y AS INTEGER, buf_ptr AS INTEGER PTR)
DIM row AS INTEGER, colum AS INTEGER
FOR row = start_y TO end_y
FOR colum = start_x TO end_x
*buf_ptr = SCREEN (row, colum): buf_ptr += 1
*buf_ptr = SCREEN (row, colum, 1): buf_ptr += 1
LOCATE row, colum: PRINT " ";
NEXT
NEXT
END SUB
SUB RestoreVideo (start_x AS INTEGER, end_x AS INTEGER, start_y AS INTEGER, end_y AS INTEGER, buf_ptr AS INTEGER PTR)
DIM row AS INTEGER, colum AS INTEGER
DIM char AS INTEGER, attribute AS INTEGER
DIM background AS INTEGER
DIM cellcolor AS INTEGER
FOR row = start_y TO end_y
FOR colum = start_x TO end_x
char = *buf_ptr: buf_ptr += 1
attribute = *buf_ptr: buf_ptr += 1
background = attribute SHR 4
cellcolor = attribute AND &hF
LOCATE row, colum: COLOR cellcolor, background: PRINT CHR$ (CAST (BYTE, char));
NEXT
NEXT
END SUB
За основу взяты функции на Си из книги Г. Шилдта "Си для профессиональных программистов" и примеры из хелпа... но неработает - после вызова SaveVideo в буфере какой-то бред, а не коды символов, которые должны были сохраниться...
В чём ошибка?
SUB SaveVideo (start_x AS INTEGER, end_x AS INTEGER, start_y AS INTEGER, end_y AS INTEGER, buf_ptr AS INTEGER PTR)
DIM row AS INTEGER, colum AS INTEGER
FOR row = start_y TO end_y
FOR colum = start_x TO end_x
*buf_ptr = SCREEN (row, colum): buf_ptr += 1
*buf_ptr = SCREEN (row, colum, 1): buf_ptr += 1
LOCATE row, colum: PRINT " ";
NEXT
NEXT
END SUB
SUB RestoreVideo (start_x AS INTEGER, end_x AS INTEGER, start_y AS INTEGER, end_y AS INTEGER, buf_ptr AS INTEGER PTR)
DIM row AS INTEGER, colum AS INTEGER
DIM char AS INTEGER, attribute AS INTEGER
DIM background AS INTEGER
DIM cellcolor AS INTEGER
FOR row = start_y TO end_y
FOR colum = start_x TO end_x
char = *buf_ptr: buf_ptr += 1
attribute = *buf_ptr: buf_ptr += 1
background = attribute SHR 4
cellcolor = attribute AND &hF
LOCATE row, colum: COLOR cellcolor, background: PRINT CHR$ (CAST (BYTE, char));
NEXT
NEXT
END SUB
За основу взяты функции на Си из книги Г. Шилдта "Си для профессиональных программистов" и примеры из хелпа... но неработает - после вызова SaveVideo в буфере какой-то бред, а не коды символов, которые должны были сохраниться...
В чём ошибка?
justar- Сообщения : 135
Дата регистрации : 2008-05-12
Возраст : 49
Откуда : Кишинёв, Республика Молдоа
FreeBasic :: Программирование :: Общее
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
|
|