Pergunta

Fundo: nós temos um aplicativo que gera relatórios de HTML (que podem ou não podem ter script in-line). HTML é normalmente armazenada como um blob no banco de dados.

Existe agora a necessidade de codificar um relatório específico para a aplicação (ou seja, de modo que não é dependente de banco de dados). A primeira vez que tentou fazê-lo da maneira força bruta (recortando e colando o relatório inteiro em uma string const e anexando um monte de & vbNewLine & _ a ela, que não funcionou porque parece haver um limite para o número de & _ que pode ser usado . Eu pensei de comprimir tudo em (mais ou menos) uma única linha, mas não só que a legibilidade ferido, ele também não iria funcionar para a criação de scripts em linha.

Algo me ocorreu enquanto escrevia este: Eu poderia abrir o arquivo (que contém o código HTML que eu quero para codificar) programaticamente e escrever o conteúdo do arquivo em uma string. Eu vou dar um que ir agora ...

Alguém pode sugerir uma maneira melhor / mais elegante de fazer isso?

Outras dicas

Você pode ler cada linha do arquivo e anexá-lo como você vai. Alternativamente, você pode usar uma classe StringBuilder. Você precisaria quer escrever este classe ou copiá-lo de algum lugar como este . Fazendo as coisas desta maneira tem potencial para melhorar o desempenho também.

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

Se essa é a maneira que você tem que ir em seguida, pensar em usar a string html como um modelo com espaços reservados, como @@ var1 @@ na seqüência que você pode então substituir com os valores dinâmicos reais ao invés de tentar gerar a saída final em linha, deve ser muito mais fácil de depurar problemas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top