将HTML硬编码为VB6代码

时间:2008-11-11 03:41:24

标签: html vb6 vbscript hardcode

后台:我们有一个应用程序可以从HTML生成报告(可能有也可能没有内联脚本)。 HTML源通常作为blob存储在数据库中。

现在需要将特定报告硬编码到应用程序中(即,使其不依赖于数据库)。我首先尝试了蛮力方式(将整个报告剪切并粘贴到一个常量字符串中并将大量& vbNewLine & _附加到其中;这样做不起作用,因为{的数量似乎有限制{1}}可以使用。我想把所有东西压缩成(或多或少)一行,但这不仅会损害可读性,而且也不适用于内联脚本。

我写这篇文章时发生了一件事:我可以通过编程方式打开文件(包含我想要硬编码的HTML)并将文件的内容写入字符串。我现在就开始吧...

有人能建议更好/更优雅的方式吗?

3 个答案:

答案 0 :(得分:2)

您可以阅读文件的每一行并随意附加。或者,您可以使用StringBuilder类。您需要编写此类或从like this某处复制它。以这种方式做事也有可能提高绩效。

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

答案 1 :(得分:1)

如果这是你必须去的方式,那么考虑使用html字符串作为模板,在字符串中使用@@ var1 @@等占位符,然后可以用实际动态值替换而不是尝试生成最终输出内联,应该更容易调试问题。

答案 2 :(得分:1)

我最终将HTML文件嵌入到资源(res)文件中,并使用LoadResData从那里加载它。我问另一个question有关从res文件中加载HTML文件的问题(并得到了一个非常好的答案)。请注意,另一个选项可能是将HTML(或任何其他文本文件)嵌入为自定义资源;通过这种方式,当使用LoadResData而不是数字时,您将能够按名称(即自定义资源的名称)引用资源(对于那些出现并尝试理解您的代码的人来说,这可能并不太重要)。另请注意,如果要将HTML加载到字符串中(就像我一样),则需要在LoadResData返回的结果上调用StrConv(LoadResData返回一个字节数组)。