2013-01-21 28 views
5

Hayatım boyunca iki (/ üç) dizeyi birleştiremiyorum. Bunlar ben denedim bazı kodlar şunlardır:Delphi XE3 - Dizgilerin birleştirilememesi

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'); 

örneklerin hepsi hep aynı sonuç:

C: \ Users

Hiç -username- \:

C: \ Users \ -username- \ Downloads \ done.txt

Burada yanlış olan ne yapıyorum?

+2

Delphi dize birleştirme çalışmaları. Sunduğunuz kod, söyleyeceğiniz çıktıyı vermez. Davranışı yeniden üretmek için tam bir program sunun. –

cevap

16

Benim tahminim, sizin Username değişkeninizin en sonunda # 0 içermesi ve bu değişkeni belirli bir Windows API işlevine çıkarmanızdır. Örneğin aşağıdaki kod, bu doğması sonuçlanacaktır:

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; 

Benim önerim Username değişkenin değerini kontrol etmek ve bazı varsa sonunda fazladan # 0 kaldırmaktır.

+0

Teşekkürler, sonunda boş bir sonlandırma karakteri oldu. Yapabileceğim zaman bunu cevap olarak kabul edeceğim (2 dakika). – user1580845

+0

Rica ederim! – TLama

+7

İyi iş @TLama! –