Вход/Регистрация
Интернет решения от доктора Боба
вернуться

Swart Bob

Шрифт:

 procedure WriteStream(var f: Text; var Stream: TMemoryStream);

 const

LF = #10;

BufSize = 8192; { bigger memos are chopped off!! }

 var

Buffer: Array[0..Pred(BufSize)] of Char;

i: Integer;

 begin

Stream.Seek(0,0);

if Stream.Size > 0 then

begin

Stream.Read(Buffer,Stream.Size);

for i:=0 to Pred(Pred(Stream.Size)) do

begin

{ empty line converted to break }

if (Buffer[i] = LF) and (Buffer[i+1] = LF) then 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-синтаксис для отображения картинки следующий:

<IMG SRC="image.gif">

где image.gif это файл типа .GIF или .JPEG. Мы можем вставить опцию USEMAP в тег, для указания имени карты образа, например:

<IMG SRC="image.gif" USEMAP="#map">

Внутри страницы мы можем ссылаться на "#map", а в действительности на картинку. Image map ничего более чем список координат и ссылок. Переход на ссылку произойдет, мы щелкнем мышкой в указанных координатах. HTML-синтаксис карты образа, the image map выглядит как навигационная панель размером 25x125 пикселей:

<MAP NAME="map">

<AREA SHAPE="rect" COORDS="51,0,75,25" href="#">

  • Читать дальше
  • 1
  • ...
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: