2011-03-09 15 views
14

मान लें हम एक चर 'एक' 12345 पर सेट है जुटना:TCL: एक चर और एक स्ट्रिंग

set a 12345 

अब मैं कैसे एक नया वेरिएबल 'बी' जो 'एक' का मान सेट करते हैं और अन्य स्ट्रिंग कहते हैं कि 9876

वैकल्पिक हल की तरह

set a "12345" 
set u "9876" 

set b $a$u 

कुछ है, लेकिन मुझे नहीं बजाय $u निर्दिष्ट करने के लिए मैं प्रत्यक्ष स्ट्रिंग इस्तेमाल किया चाहता हूँ चाहता हूँ ..

उत्तर

31

आप कर सकते हैं:

set b ${a}9876 

या, b संभालने या तो रिक्त स्ट्रिंग पर सेट है या नहीं परिभाषित किया गया है:

append b $a 9876 

append करने के लिए कॉल और अधिक कुशल है जब $a लंबा है (append doc देखना)।

+0

अरे ट्रे, अच्छा जवाब। क्या इन मामलों में डबल कोट्स का उपयोग करना बेहतर है, या क्या इससे कोई बाधा नहीं आती है? जैसे 'बी सेट करें' $ {ए} 9876 "' – TrojanName

+3

@ ब्रायन: टीसीएल परवाह नहीं है, लेकिन अगर आप सुंदर स्वरूपण के लिए ऐसा करते हैं तो आप ऐसा करना चाहेंगे। –

+2

यदि आपको वैरिएबल प्रतिस्थापन {} या "" की आवश्यकता होगी, तो आपको इसके बारे में कुछ जगहों के साथ कुछ जोड़ने की कोशिश कर रहे थे, इसके लिए आपको केवल कुछ प्रकार के समूह की आवश्यकता होगी, –

6

अन्य विकल्प सेट कमांड का उपयोग करना है। के बाद से एक एक हम इसे उपयोग कर सकते हैं की तरह

नीचे

सेट ख ख का मान सेट करने के मूल्य देता सेट [सेट एक] 9876

0

दूसरे विकल्प के नीचे की तरह concat आदेश का उपयोग करने के लिए है।

सेट बी [concat $ एक \ 9876] मूल्य

0

मैं क्या आप सीधे स्ट्रिंग मतलब यह नहीं मिलता है ... मुझे यकीन है कि अगर आप चाहते हैं अगर आप चाहते हैं नहीं कर रहा हूँ ... हालांकि, 12349876 आप कर सकते हैं:

% set b [concat $a$u] 
12349876 

आप $ एक या $ यू तार का हिस्सा बनना चाहते हैं, तो बस वांछित चर से पहले एक बैकस्लैश '\' जोड़ें।

0

Tcl 8.6 .2 के बाद से, वहाँ string cat जो इस समस्या को हल करने के लिए इस्तेमाल किया जा सकता है।

set b [string cat $a 9876] 
2

या, आप format

set b [format %s%s $a $u]

-2

सेट myString "हैलो"

संलग्न myString उपयोग कर सकते हैं "विश्व!"

"$ myString"

हैलो वर्ल्ड!

संबंधित मुद्दे