2013-01-21 18 views
5

Z mojego życia nie mogę połączyć dwóch (/ trzech) ciągów. Są to niektóre kody próbowałem:Delphi XE3 - Nie można połączyć ciągów znaków

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

Wszystkie przykłady zawsze zwraca ten sam wynik:

C: \ Users \ -username-

Nigdy:

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

Co ja tu robię źle?

+2

Połączenie konkatenacji ciągów Delphi. Kod, który podasz, nie podaje wyników, które wypowiadasz. Przedstaw pełny program do odtworzenia zachowań. –

Odpowiedz

16

Domyślam się, że zmienna Username zawiera na końcu # 0 i wyprowadzasz tę zmienną do określonej funkcji Windows API. Na przykład poniższy kod doprowadzi do tego przewinienia:

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; 

Moja propozycja jest taka, aby sprawdzić wartość zmiennej Username i usunąć dodatkowy # 0 na końcu, czy istnieje jakiś.

+0

Dzięki, na końcu tego znaku była to znak kończący. Przyjmuję to jako odpowiedź, kiedy mogę (2 minuty). – user1580845

+0

Nie ma za co! – TLama

+7

Dobra robota @TLama! –

Powiązane problemy