문제

배경: HTML에서 보고서를 생성하는 응용 프로그램이 있습니다 (인라인 스크립팅이있을 수도 있고 아닐 수도 있음). HTML 소스는 일반적으로 데이터베이스의 블로브로 저장됩니다.

이제 응용 프로그램에 특정 보고서를 하드 코딩 할 필요가 있습니다 (즉, 데이터베이스 의존적이지 않도록). 나는 먼저 그것을 무차별 포스 웨이에서 시도했다 (전체 보고서를 const 줄로 자르고 붙여 넣고 많은 & vbNewLine & _ 그것에; 그것은 수의 수에 제한이있는 것처럼 보이기 때문에 효과가 없었습니다. & _ 사용할 수 있습니다. 나는 모든 것을 한 줄로 압축 할 것이라고 생각했지만, 가독성을 상하게 할뿐만 아니라 인라인 스크립팅에도 효과가 없을 것입니다.

이 글을 쓰는 동안 나에게 어떤 일이 일어났습니다. 파일을 열 수 있었으며 (하드 코드를하고 싶은 html 포함) 프로그래밍 방식으로 파일의 내용을 문자열에 쓸 수있었습니다. 이제 갈 게요 ...

누구든지 더 나은/더 우아한 방법을 제안 할 수 있습니까?

도움이 되었습니까?

해결책 3

결국 HTML 파일을 RES (Resource) 파일 (RES) 파일에 포함시켜 LoadResData를 사용하여로드했습니다. 나는 다른 사람에게 물었다 의문 RES 파일에서 HTML 파일을로드하는 것과 관련하여 (그리고 좋은 답변도 얻었습니다). 다른 옵션은 HTML (또는 다른 텍스트 파일)을 사용자 정의 리소스로 포함시키는 것입니다. 이렇게하면 숫자가 아닌 LoadResData를 사용할 때 리소스를 이름으로 (즉, 사용자 정의 리소스의 이름) 참조 할 수 있습니다 (이는 코드와 함께 와서 코드를 이해하려고 시도하는 사람에게는 너무 많은 것을 의미하지 않을 수 있습니다). 또한 HTML을 문자열에로드하려면 (내가하는 것처럼) LoadResData에 의해 반환 된 결과에서 strconv를 호출해야합니다 (LoadResData는 바이트 배열을 반환합니다).

다른 팁

파일의 각 줄을 읽고 갈 때 추가 할 수 있습니다. 또는 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

그것이 당신이 가야하는 방법이라면, @@ var1 @@와 같은 자리 표시 자와 템플릿으로 html 문자열을 템플릿으로 사용하여 최종 출력 인라인을 생성하려고하지 않고 실제 동적 값으로 바꿀 수 있습니다. 문제를 디버그하는 것이 훨씬 쉽습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top