Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

27.02.2008, 23:11
|
|
Новичок
Регистрация: 23.02.2007
Сообщений: 24
Провел на форуме: 186184
Репутация:
5
|
|
Считывание с экрана
Вобщем в консольной программе надо выдернуть определенную строку или строки.
Вобще мне это надо сделать через программирование видеоадаптера но наврятле кто то знает как это сделать.
Поэтому хотя бы как это написать на паскале.
Например есть строчка "Привет мир"
подводим курсор к слову мир через
for i:=1 to 3 do
gotoxy(6+i,1)
и потом надо эти буквы запихнуть скажем в переменную C
Я прочитал весь учебник по программированию видеоадаптеров но не чего нужного мне не нашел. В инете порылся в справочнике по паскалю но кроме ввода с клавиатуры и вывода на экран я не нашел, а мне нужен ввод с экрана, ну и в иделе это сделать через программирование видеоадаптеров.
Точно знаю что если делать через видеоадаптер то левый верхний угол будет обозначаться В800 а дальше я так и не сдвинулся, даже не понял как надо описывать.
|
|
|

27.02.2008, 23:28
|
|
Познавший АНТИЧАТ
Регистрация: 26.03.2007
Сообщений: 1,095
Провел на форуме: 5265510
Репутация:
455
|
|
Подводиш делаеш програмно 2 клик переводиш укозатель к концу строки симулируеш нажатие правой кнопкой перемещение на кнопку копирывать и 1 левый клик потом в программе переменной C присваеваеш данные из буфера =)
а через видио адаптер.... Получить скрин и анализировать текст (другова способа не вижу
|
|
|

27.02.2008, 23:43
|
|
Познающий
Регистрация: 26.07.2005
Сообщений: 54
Провел на форуме: 47901
Репутация:
46
|
|
То что ты хотел сделать с видеоадаптером возможно только в случае, если он работает в текстовом режиме ( это Ms Dos, или текстовая консоль Юникс) .
|
|
|

27.02.2008, 23:45
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме: 1941233
Репутация:
2726
|
|
Точно знаю что если делать через видеоадаптер то левый верхний угол будет обозначаться В800 а дальше я так и не сдвинулся, даже не понял как надо описывать.
ну да. далее зависит от режима текстового. начиная с b800 (если это правильно, я уже не помню...) идут байты, каждый из них значит символ на экране.
первая строчка, вторая строчка... в строке помоему 80 символов, на экране 25 строк.
что тут непонятного. адрес нужного символа найти можешь?
Подводиш делаеш програмно 2 клик переводиш укозатель к концу строки симулируеш нажатие правой кнопкой перемещение на кнопку копирывать и 1 левый клик потом в программе переменной C присваеваеш данные из буфера =)
а через видио адаптер.... Получить скрин и анализировать текст (другова способа не вижу
без комментариев.
|
|
|

27.02.2008, 23:47
|
|
Новичок
Регистрация: 23.02.2007
Сообщений: 24
Провел на форуме: 186184
Репутация:
5
|
|
Программа работает в консоли Ms-dos
Последний раз редактировалось Hardover; 27.02.2008 в 23:58..
|
|
|

27.02.2008, 23:51
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме: 1941233
Репутация:
2726
|
|
ну и что дальше то ? весь реальный режим, включая модель памяти, эмулируются
|
|
|

27.02.2008, 23:59
|
|
Новичок
Регистрация: 23.02.2007
Сообщений: 24
Провел на форуме: 186184
Репутация:
5
|
|
А как именно надо с этим работать?Нужно ли что то описывать, ведь если просто написать s:=B800 то первый символ стоящий в начале первой строки не будет присвоин S.
|
|
|

28.02.2008, 00:07
|
|
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме: 2187381
Репутация:
518
|
|
А ПЕРЕОПРЕДЕЛИТЬ вывод консольной программы скажем в сокет.... обычно так перехватывают ЧУЖИЕ выводы
|
|
|

28.02.2008, 00:13
|
|
Новичок
Регистрация: 23.02.2007
Сообщений: 24
Провел на форуме: 186184
Репутация:
5
|
|
Я бы даже не поленился прочитать про сокет, и возможно даже написал бы, но думаю что для домашнего задания пускай это и на пятерку это слишком.
|
|
|

28.02.2008, 00:35
|
|
Постоянный
Регистрация: 30.09.2007
Сообщений: 815
Провел на форуме: 2590715
Репутация:
659
|
|
ох давно это было
в паскале ты можешь достучаться до буфера экрана через массив Mem[$b800:Offset], смещение вычисляешь как offset=80*y+x (размер экрана в стандартном текстовом режиме 80х25 символов)
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|