2013-01-21 11 views
5

मेरे जीवन के लिए, मैं दो (/ तीन) तारों को संयोजित नहीं कर सकता। ये कुछ कोड मैंने कोशिश की है:डेल्फी एक्सई 3 - तारों को संगत नहीं कर सकता

dir := 'C:\Users\' + Username + '\Downloads\done.txt'; //"Username" is the computer's current username. 
//another example vvv 
dir := 'C:\Users\' + Username; 
dir := dir + '\Downloads\done.txt'; 
//last example vvv 
dir := Concat('C:\Users\', Username, '\Downloads\done.txt'); 

उदाहरण के सभी हमेशा एक ही परिणाम देते हैं:

C: \ -username- \ Users

कभी

:

सी: \ उपयोगकर्ता \ -username- \ डाउनलोड \ done.txt

मैं यहाँ क्या गलत कर रहा हूं?

+2

डेल्फी स्ट्रिंग कॉन्सटेनेशन काम करता है। आपके द्वारा प्रस्तुत कोड आपके द्वारा बताए गए आउटपुट को नहीं देता है। व्यवहार को पुन: उत्पन्न करने के लिए एक पूर्ण कार्यक्रम प्रस्तुत करें। –

उत्तर

16

मेरा अनुमान है कि आपके Username चर के अंत में # 0 है और आप उस चर को एक निश्चित विंडोज एपीआई फ़ंक्शन में आउटपुट कर रहे हैं। उदाहरण के लिए निम्नलिखित कोड इस दुर्व्यवहार के लिए परिणाम होगा:

procedure TForm1.Button1Click(Sender: TObject); 
var 
    Dir: string; 
    Username: string; 
begin 
    Username := 'Username' + #0; 
    Dir := Concat('C:\Users\', Username, '\Downloads\done.txt'); 
    ShowMessage(Dir); 
end; 

मेरे सुझाव आपके Username चर के मूल्य की जाँच करें और वहाँ अगर कुछ अंत में अतिरिक्त # 0 दूर करने के लिए है।

+0

धन्यवाद, यह इसके अंत में एक शून्य समाप्ति चरित्र था। जब मैं कर सकता हूं तो मैं इसे उत्तर के रूप में स्वीकार करूंगा (2 मिनट)। – user1580845

+0

आपका स्वागत है! – TLama

+7

अच्छा काम @TLama! –

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