![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Имеется много файлов(html страничек). Их надо зашифровать(это я могу придумать: сдвиг байтов; умножение, сложение байтов; кодирование по книге). Теперь проблема: расшифровывать мне надо их слету, без создания дешифрованной копии. И не просто расшифровать(изменить байты, можно и в памяти), а сделать расшифрованный файл доступным, как объект html. Т.е. доступным например для методов браузера Delphi. Уверен что должен быть простой способ. -)
А может и нет. Почитал FAQ, да можно открыть поток изменить его и даже подсунуть некторым функциям, но как быть если навигатор браузера требует в виде параметра string(путь к файлу). Последний раз редактировалось Quark, 09.11.2008 в 23:13. |
|
#2
|
|||
|
|||
|
Если применять для отображения страниц TWebBrowser, то выкрутиться можно. Например так:
Код:
if WB.Document = nil then
WB.Navigate('about:blank');
v := VarArrayCreate([0, 0], varVariant);
v[0] := S;
(WB.Document as IHTMLDocument2).Write(PSafeArray(TVarData(v).VArray));
(WB.Document as IHTMLDocument2).Close;Необходимые модули: MSHTML, ActiveX. |
|
#3
|
|||
|
|||
|
Не понял... -( Можно подробней? -)
if WB.Document = nil then WB.Navigate('about:blank'); v := VarArrayCreate([0, 0], varVariant); Это массив из одного элемента типа Variant? v[0] := S; (WB.Document as IHTMLDocument2).Write(PSafeArray(TVarData(v).VArra y)); as - Это что за оператор? (впрочем судя по точке мы обращаемся к WB.Document как классу IHTMLDocument2) и записываем в него PSafeArray - тоже непонятный оператор(или это массив?). -( TVarData - тоже непонятно что но хоть аргумент ясен. -))) И для этого непонятно чего вызываем метод VArray(не знаю такого). (WB.Document as IHTMLDocument2).Close; (Закрыть и закрыть, я не против, ток где мы открывали не ясно -( ). |
|
#4
|
|||
|
|||
|
А можно просто внутри программы поднять Web-сервер. И по запросу отдавать расшифрованные файлы. Только вот стоит ли овчинка выделки, т.к. из браоузера исходник их все равно посмотреть можно будет...
|
|
#5
|
||||||
|
||||||
|
Цитата:
Цитата:
Цитата:
Цитата:
IHTMLDocument2.Write принимает параметр именно типа PSafeArray. Цитата:
Дело в том, что структура PSafeArray и PVarArray одинаковы (TVarData(v).VArray - таким выражением получаем "v" типа PVarArray), поэтому берется вариантный массив (в нашем случае массив символов html страницы) и приводится к типу, который принимает процедура Write. Цитата:
|
|
#6
|
|||
|
|||
|
Огромное спасибо! -))))))))))))))))))))))))))))
Я долго мучался пока б это нашел в нете. Остался ток один вопрос. S - это срока содержащая HTML страницу. Хорошая строчка, которая вместила килобайты информации. -) Или есть строковый тип неограниченной размерности или это просто символьный массив заданной длины. Поднять веб сервер на Delphi с настроенной аутентификацией это здорово, но на лаборантскую зарплату в 2200р пусть пусть профессора сами разбираются как это делается. -)))))))))))) |
|
#7
|
|||
|
|||
|
1. Обший тип String по умолчанию соответсвунт типу AnsiString, который, теоретически, может держать до 2 Гб информации. Практически пару метров туда всегда можно засунуть.
2. web-сервер пишется за пару дней. Используя Indy. |