|
|
Регистрация | << Правила форума >> | 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. |