2009-12-16 15 views
5

क्लासिक एएसपी में मल्टीलाइन स्ट्रिंग प्राप्त करने की कोई संभावना है (मुझे लगता है कि vbscript भाषा है)?क्लासिक एएसपी में मल्टीलाइन स्ट्रिंग

मैं अजगर या ग्रूवी में की तरह एक बहु स्ट्रिंग हैं:

डीईएफ़ str = "" ""

मैं एक बहुत खोज की, लेकिन नहीं मिला "हैलो मैं एक बहु स्ट्रिंग हूँ" एक तरकीब।

वर्कअराउंड का भी स्वागत है।

बीटीडब्ल्यू: मेरे पास जावास्क्रिप्ट में एक ही समस्या थी और इसे एक चर में सहेजे गए फ़ंक्शन के साथ समय पर वापस हल किया गया। इस समारोह में एक बहुआयामी टिप्पणी थी इसलिए मैं regex का उपयोग कर टिप्पणी को छोड़कर सबकुछ दूर कर सकता था।

कुछ इस तरह:

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

और Regex के बाद मैं एक स्ट्रिंग जो शामिल हो गया है:

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%>""" 

: एक स्ट्रिंग में इस "पाठ" पाने के लिए

मैं कुछ इस तरह लिख सकता है (ग्रूवी)?

def multistr = """hello 
I am a multiline 
string""" 

यह बहुत अच्छा होगा!

+0

आप ब्राउज़र को भेज दिया सादे पाठ में के रूप में बहु लाइन चाहते हैं बहु लाइन है? या आप चाहते हैं कि प्रस्तुत टेक्स्ट बहु-पंक्ति हो? – AnonJr

+0

मैं कुछ अलग करने की कोशिश कर रहा हूं। मैं बेहतर समझने के लिए बस अपना प्रश्न संपादित करता हूं। खेद है कि मैंने इसे पोस्ट किया होगा क्योंकि मैंने अपना प्रश्न बनाया है। – OemerA

+0

क्या प्री-प्रोसेसर कोई अतिरिक्त तर्क कर सकता है या डेटाबेस से डेटा को पकड़ने पर आपके पास डेटाबेस "& vbNewline &" –

उत्तर

2

दुर्भाग्य से आप इसे जितना दूर बता सकते हैं उतना उपयोग नहीं कर पाएंगे। vbNewLine के वास्तविक vbNewLine वैरिएबल के बजाय वास्तविक लाइन ब्रेक को बदलने के लिए आपको प्री-प्रोसेसर को संशोधित करने की आवश्यकता होगी। वीबी स्क्रिप्ट में & _ का उपयोग किए बिना एकाधिक लाइनों पर एक स्ट्रिंग को संयोजित करने का कोई तरीका नहीं है, जिसके लिए आपको प्रत्येक लाइन पर ऐसा करने से पहले स्ट्रिंग को बंद करने की आवश्यकता होती है, जो इस सेटअप के साथ संभव नहीं लगता है।

+0

धन्यवाद! मुझे लगता है कि वीबी स्क्रिप्ट के साथ एक मल्टीलाइन स्ट्रिंग बनाना वास्तव में असंभव है। – OemerA

3

क्या आप स्ट्रिंग में कैरिज रिटर्न नहीं जोड़ सकते?

Dim myString : myString = "Line 1" & vbCrLf & "Line 2" ... आदि

+1

हां, यकीन है कि यह आपका एकमात्र सहारा है। –

+0

बस यह न भूलें कि क्लासिक एएसपी/वीबीस्क्रिप्ट आपको वैरिएबल को उसी पंक्ति में सेट करने की अनुमति नहीं देगा जिसे आप घोषित करते हैं। – 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

बस यह न भूलें कि क्लासिक एएसपी/वीबीस्क्रिप्ट आपको वैरिएबल को उसी पंक्ति में सेट करने की अनुमति नहीं देगा जिसे आप घोषित करते हैं। – AnonJr

+0

हा, हा, हे, वास्तव में इसका परीक्षण किया जाना चाहिए था, अब इतने लंबे समय तक वीबीएस की तुलना में अधिक VB.Net कर रहा है! धन्यवाद @AnonJr! –

+0

कोई समस्या नहीं है। मुझे हाल ही में एक वीबीस्क्रिप्ट समस्या में फेंक दिया गया है इसलिए मुझे अपने दिमाग में सबसे मजेदार छोटी क्विर्क मिल गई है। – AnonJr

2

आप ब्राउज़र को भेज दिया सादे पाठ में के रूप में बहु लाइन चाहते हैं बहु लाइन है ? या आप चाहते हैं कि प्रस्तुत टेक्स्ट बहु-पंक्ति हो?

यदि यह पूर्व, a solution like Mick's काम करता है। ब्राउज़र पर भेजे गए पाठ में एक नई पंक्ति बनाने के लिए आप या तो vbCrLf या vbNewLine का उपयोग कर सकते हैं। बाद में आईआईआरसी को प्राथमिकता दी जाती है क्योंकि यह या तो कैरिज रिटर्न या कैरिज रिटर्न/लाइन फीड क्लाइंट के लिए उपयुक्त है।

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/>") 
संबंधित मुद्दे