Здравствуйте! Проблема: у меня есть строка содержащая HTML текст. Мне необходимо преобразовать ее так, чтобы на выходе получилась строка с обычным текстом DOS, и таблицы чтобы псевдографикой рисовались. Подскажите как реализовать, пожалуйста
Отправлен: 11.02.2005, 14:07
Вопрос задал: Zubko Maksim (статус: Читатель)
Всего ответов отправлено: 4
Отвечает: Boriss
Здравствуйте, Zubko Maksim!
Реализация будет зависеть от того, где именно будет отображать текст, но скорее всего, как понимаю, в файл. Но уточнить надо ...
А так - анализировать html- файл. Самое простое. Или можно поискать утилиту
Ответ отправил: Boriss (статус: Профессионал)
Отправлен: 11.02.2005, 16:01
Отвечает: Bob Johnson
Здравствуйте, Zubko Maksim!
Так это достаточно сложно - тебе нужно писать свой html parser, который будет хотя бы ширину таблиц учитывать. Или попробуй поискать - может быть кто-либо уже делал такую программу.
Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 11.02.2005, 21:42
Отвечает: sir henry
Здравствуйте, Zubko Maksim!
HTML текст, Вы имеете в виду - текст с разметкой HTML?
Здесь проблема не в HTML, а скорее всего в кодировке, если я правильно Вас понял.
Если Ваш текст на английском языке, то перекодировать его не нужно. Псевдографика рисуется с помощью символов псевдографики, это символы с номерами от 179 до 218 (как раз с помощью них в досовских текстах рисовались таблицы. Но преобразовать таблицу из HTML в текстовый(досовский) вариант один к одному, вряд ли удасться, т.к. разный принцип рисования в Виндоус и Дос.
Перекодировать нужно будет только русский текст. В HTML страничке обычно кодировка либо KOI-8R, либо win1251. В Досе кодировка 866. Значит Вам нужно составить таблицу соответствия русских букв. Далее все просто, будете подставлять код нужной буквы и текст будет в досовской кодировке.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 12.02.2005, 05:10
Отвечает: Фасхутдинов Азат
Здравствуйте, Zubko Maksim!
Чтоб рисовать псевдографикой, посмотри таблицу ASCII символов или выведи сам, потом смотря на номер символа выводи что-то типа этого
x := chr( n );
где x - место где надо вывести( например label1.caption );
n - номер ASCII символоа.
Ответ отправил: Фасхутдинов Азат (статус: 3-ий класс)
Отправлен: 12.02.2005, 10:45
Вопрос № 16896
Как можно определить нажатие на клавиатуре не стандартных Ctrl/Shift/Alt комбинаций, а произвольных сочетаний клавиш. Например <A> + <D> или <NumPad 6> + <NumPad 2>?
Отправлен: 11.02.2005, 14:42
Вопрос задала: Shizuku Tsukishima (статус: 1-ый класс)
Всего ответов отправлено: 3
Отвечает: Гриценко Юрий Алексеевич
Здравствуйте, Shizuku Tsukishima!
Как я знаю нельзя, т.к. только Ctrl/Shift/Alt в ОС считаются кнопками-модификаторами и посілаются как флаги модификаторы(даже на уровне железа), так что придётся выкручиваться по-другому(отслежывать нажатие каждой клавиш и сопоставлять), а вообще данную проблему в 99% можно обойти использовав Ctrl/Shift/Alt!
Отвечает: Bob Johnson
Здравствуйте, Shizuku Tsukishima!
Используй функцию GetKeyboardState, которая возвращает состояние всех клавиш клавиатуры или сам отлавливай нажатие на каждую требуемую клавишу и запоминай его в обработчике OnKeyDown.
Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 11.02.2005, 21:46
Отвечает: Полховский Александр Владимирович
Здравствуйте, Shizuku Tsukishima!
Отслеживать отдельно события на нажатие/отжатие необходимых клавишь. Примерно так:
procedure form1.onkeydown(тра-та-та)
begin
case key of
'A':AisPressed:=true;
'D':Dispressed:=true;
else ;
if (AisPressed)and(DisPressed)
then givemeabottleofmyfavouritebeer;
end;
ну и соответственно на отжатие:
procedure form1.onkeyup(тра-та-та)
begin
case key of
'A':AisPressed:=false;
'D':Dispressed:=false;
else ;
end;