Жесткое кодирование HTML в код VB6

Фон: у нас есть приложение, которое генерирует отчеты из HTML (которое может иметь или не иметь встроенные скрипты). Источник HTML обычно хранится в базе данных в виде большого двоичного объекта.

Теперь необходимо жестко встроить конкретный отчет в приложение (т.е. чтобы он не зависел от базы данных). Сначала я попробовал это методом грубой силы (вырезание и вставка всего отчета в строку const и добавление к нему большого количества & vbNewLine & _; это не сработало, потому что, похоже, существует ограничение на количество & _, которое можно использовать Я думал сжать все в (более или менее) одну строку, но это не только ухудшило бы удобочитаемость, но и не сработало бы для встроенных сценариев.

Что-то пришло мне в голову, когда я писал это: я мог программно открыть файл (содержащий HTML-код, который я хочу жестко запрограммировать) и записать содержимое файла в строку. Я попробую сейчас ...

Может ли кто-нибудь предложить лучший / более элегантный способ сделать это?

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
0
2 280
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Если это ваш путь, подумайте об использовании строки html в качестве шаблона с заполнителями, такими как @@ var1 @@ в строке, которую вы затем можете заменить фактическими динамическими значениями, а не пытаться сгенерировать окончательный вывод в строке, следует будет намного проще отлаживать проблемы.

Вы можете читать каждую строку файла и добавлять ее по мере необходимости. В качестве альтернативы вы можете использовать класс StringBuilder. Вам нужно будет либо написать этот класс, либо скопировать его откуда-нибудь нравится. Такой подход также может улучшить производительность.

Dim oSB as CStringBuilder
Dim sHtml as String

Set oSB = new CStringBuilder
With oSB
  Call .Append("Some HTML here")
  Call .Append("Some more HTML here")
  ' etc...
  sHtml = .ToString()
End With

Set oSB = Nothing
Ответ принят как подходящий

В итоге я вставил HTML-файл в файл ресурсов (res) и загрузил его оттуда с помощью LoadResData. Я спросил еще один вопрос, связанный с загрузкой файлов HTML из файлов res (и тоже получил довольно хороший ответ). Обратите внимание, что другим вариантом может быть встраивание HTML (или любого другого текстового файла) в качестве настраиваемого ресурса; таким образом вы сможете ссылаться на ресурс по имени (т.е. имени настраиваемого ресурса) при использовании LoadResData, а не числа (что может не иметь большого значения для тех, кто приходит и пытается понять ваш код). Также обратите внимание, что если вы хотите загрузить HTML в строку (как это делаю я), вам нужно будет вызвать StrConv для результата, возвращаемого LoadResData (LoadResData возвращает массив байтов).

Другие вопросы по теме