Интернет решения от доктора Боба | страница 21
writeln(f,'
');
> { strip multiple spaces (are ignored anyway) }
> if not ((Buffer[i] = ' ') and (Buffer[i+1] = ' ')) then write(f,Buffer[i]);
> { start new sentence on a new line (but only in HTML doc itself }
> if (Buffer[i] = '.') and (Buffer[i+1] = ' ') then writeln(f)
> end;
> writeln(f,Buffer[Pred(Stream.Size)])
> end
> else writeln(f,' ') { empty memo }
> end{WriteStream};
> procedure WriteMemo(var f: Text; Field: TField);
> var Stream: TMemoryStream;
> begin
> Stream := TMemoryStream.Create;
> (Field AS TMemoField).SaveToStream(Stream);
> WriteStream(f,Stream);
> Stream.Free
> end {WriteMemo};
2.1.5. Страницы
Теперь у нас есть метод преобразования записей в HTML страницы, нам также нужен путь уникальной идентификации каждой записи. Допустим, что база данных не не содержит более 100,000 записей (Если таблица содержит свыше 100,000 записей, то конвертирование их в HTML страницы наверно не очень хорошая идея), Я думаю что подойдет схема где каждая запись помещается в файл с именем "pag#####.htm", где ##### номер записи в базе данных. Для уменьшения конфликта имен, каждая таблица должна размещаться в своем собственном каталоге (например, BIOLIFE.HTM каталог для BIOLIFE.DB таблиц, так что мы будем иметь BIOLIFE.HTM/PAG00001.HTM для первой записи из BIOLIFE.DB таблицы).
> const
> FirstPage = 'pag00001.htm';
> LastPage: TPageName = 'pag%.5d.htm'; { format }
> function PageNr(Nr: Word): TPageName;
> begin
> Result := Format('pag%.5d.htm',[Nr])
> end{PageNr};
Кроме первой страницы PAG00001.HTM, нам также необходимо знать имя последней страницы, и функцию, которая нам даст номер текущей страницы для номера записи.
2.1.6. HTML "Живые" клавиши
Неплохо также иметь путь для навигации по записям таблицы, для этого я использую IMAGE MAP, встроенный в HTML-страницу и работающий даже если браузер загружает локальный файл. HTML-синтаксис для отображения картинки следующий:
>
где image.gif это файл типа .GIF или .JPEG. Мы можем вставить опцию USEMAP в тег, для указания имени карты образа, например:
>
Внутри страницы мы можем ссылаться на "#map", а в действительности на картинку. Image map ничего более чем список координат и ссылок. Переход на ссылку произойдет, мы щелкнем мышкой в указанных координатах. HTML-синтаксис карты образа, the image map выглядит как навигационная панель размером 25x125 пикселей:
>