2009-12-16 4 views
5

거기에 어떤 가능성을 asp 클래식에서 여러 줄을 얻을 수 있습니까 (나는 vbscript 언어라고 생각)? 여러 줄 문자열에서 클래식 Asp

나는 파이썬이나 그루비처럼 여러 줄 문자열을 원하는 :

데프 str에 = "" ""

내가 많이 검색했지만 찾지 못했습니다 "안녕하세요 나는 여러 문자열입니다 " 해결책.

해결 방법도 환영합니다.

BTW : 자바 스크립트에서 같은 문제가 있었는데 변수에 저장된 함수로 시간 문제를 해결했습니다. 이 함수에는 여러 줄 주석이 포함되어 있으므로 정규식을 사용하여 주석을 제외한 모든 것을 처리 할 수있었습니다. 이 같은

뭔가 :

var multilinestr = function() { 
/* 
hello 
I am a multiline 
string 
*/ 
} 

그리고 정규식 후

내가 포함 된 문자열을 가지고 :
hello 
I am a multiline 
string 

감사합니다.

편집 :

나는 매우 중요한 부분을 놓쳤다 고 생각합니다. 내 고객은 스크립트에 "사전 프로세서"와 같은 것을 사용하고 있습니다. 그것은 다음과 같습니다

Dim str 
str = "<%std_text%>" 

데이터베이스에서 제공되는 텍스트로 "사전 프로세서"교환 "<%의 std_text의 %>". 그러나이 텍스트는 그래서 난 그냥 넣어 수 없습니다 거기에 휴식을해야 함은 다음과 같습니다 사전 처리 " '"줄의 끝으로 & vbNewline를' 이 후 의미한다. "

Dim str 
str = "hello 
I am a multiline 
string" 

어쨌든 거기 문자열이 "텍스트"를 얻을 수

를 나는 이런 식으로 뭔가를 쓸 수있는 경우 (당연) :

def multistr = """<%std_text%>""" 

을 "사전 처리"후 :

,536을
def multistr = """hello 
I am a multiline 
string""" 

아주 좋습니다.

+0

가 브라우저로 전송되는 일반 텍스트로 여러 줄을 하시겠습니까입니까? 또는 렌더링 된 텍스트를 여러 줄로 표시 하시겠습니까? – AnonJr

+0

나는 다른 것을 시도하고있다. 나는 다만 더 나은 이해를위한 나의 질문을 편집한다. 미안하지만 내 질문을 올렸을 때 게시해야합니다. – OemerA

+0

전처리 기가 추가 논리를 수행 할 수 있습니까? 또는 데이터베이스에서 데이터를 가져올 때 "& vNewline &"로 새 줄 바꾸기를 할 수 있습니까? –

답변

2

불행히도 내가 말할 수있는 한이 것을 그대로 사용할 수 없습니다. 프리 프로세서를 수정하여 vbNewLine을 실제 줄 바꿈 대신 실제 vbNewLine 변수로 바꾸어야합니다. VB 스크립트에서는 & _을 사용하지 않고 여러 줄의 문자열을 연결하는 방법이 없기 때문에이 설정으로는 불가능한 각 줄마다 문자열을 닫아야합니다.

+0

감사합니다. VB Script를 사용하여 여러 줄 문자열을 만드는 것은 실제로 불가능하다고 생각합니다. – OemerA

3

문자열에 캐리지 리턴을 추가 할 수 없습니까?

Dim myString : myString = "Line 1" & vbCrLf & "Line 2" ... 등

+1

예, 이것이 유일한 유일한 수단이라고 확신합니다. –

+0

Classic ASP/VBScript는 선언 한 것과 같은 줄에 변수를 설정할 수 없음을 잊지 마십시오. – AnonJr

+1

내 잘못 - 그동안 : –

0

이 내가 아는 유일한 방법은 두 가지가 그리고 내가 10 년 동안이 일을했습니다.

Dim x: x = "Hello" & vbNewline & "World" 

또는

Dim x: x = "Hello" & vbNewline & _ 
     "World" 

나도 해킹 방법이 같아요 :

Dim x: x = Replace("Hello\nWorld", "\n", vbNewline) 
+0

Classic ASP/VBScript가 선언 한 동일한 줄에서 변수를 설정할 수 없다는 것을 잊지 마십시오. – AnonJr

+0

하, 하, 하, 실제로 그것을 테스트해야 VBS보다 VB.Net 더 오랫동안 해왔다! 감사합니다 @ anonJr! –

+0

문제 없습니다. 나는 최근 VBScript 문제에 빠져서 요즘 내 마음의 최전선에있는 모든 재미있는 작은 단서를 얻었습니다. – AnonJr

2

가 브라우저로 전송되는 일반 텍스트로 여러 줄을 하시겠습니까 멀티 라인 ? 또는 렌더링 된 텍스트를 여러 줄로 표시 하시겠습니까?

전자의 경우 a solution like Mick's이 작동합니다. vbCrLf 또는 vbNewLine을 사용하여 브라우저에 전송 된 텍스트에 새로운 행을 작성할 수 있습니다. IIRC는 클라이언트에 대해 캐리지 리턴 또는 캐리지 리턴/줄 바꿈을 제공하므로 선호됩니다.

Dim myString : myString = "hello" & vbNewLine & "I am a multi-line" & vbNewLine & "string"

는 후자의 경우에, 당신은 당신이 브라우저가 새로운 라인을 만들려 <br />을 넣어해야합니다. 이 경우 더 좋은 방법 일 수 있기 때문에 표시 방법을 표시하려는 이유에 대해 생각할 수 있습니다.

+0

@AnonJr : 휴식 시간은 데이터베이스에서 오는 텍스트에 있습니다. 바라기를 이것은 당신의 질문에 답할 것입니다. – OemerA

6

파이썬 :

text = """" 
hello world 
this is some text 
""" 

VBScript를 :

text = "" & vbcrlf &_ 
"hello world" & vbcrlf &_ 
"this is some text" & vbcrlf 

또한 나는 '전처리'말은 ... 정의의 StringBuffer 클래스 등

with new StringBuffer 
    .writeline "hello world" 
    .writeline "this is some text" 
    result = .as_string 
end with 

그냥 키스를 쓸 수 있습니다 스크립팅 언어에 대해? 그게 좋지 않다 ....

전처리 자 (i18n?)를 사용해야하는 경우 모든 줄 바꿈을 "& vbcrlf &"으로 바꿀 수 있도록 수정해야합니다.

0

내가 얻을 수있는 가장 가까운했다 : 멀티 라인은

Dim multilineStr : multilineStr = Join(Array(_ 
    "Begin"  , _ 
    " my"  , _ 
    " multiline", _ 
    " string!" , _ 
    "End"   _ 
), vbNewLine) 

Dim multilineStr : multilineStr = Join(Array(_ 
    "Begin"  , _ 
    " my"  , _ 
    " multiline", _ 
    " string!" , _ 
    "End"   _ 
), "<br/>")