Delphi XE3 - 无法连接字符串

标签 delphi concatenation delphi-xe3

对于我来说,我无法连接两个(/三个)字符串。这些是我尝试过的一些代码:

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:\Users\-username-

从不:

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

我在这里做错了什么?

最佳答案

我的猜测是,您的 Username 变量末尾包含 #0,并且您正在将该变量输出到某个 Windows API 函数。例如,以下代码将导致此不当行为:

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(如果有)。

关于Delphi XE3 - 无法连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14444826/

相关文章:

delphi - 扩展delphi类层次结构

python - 连接两个 NumPy 数组得到 "ValueError: all the input arrays must have same number of dimensions"

python - 连接不同长度的 numpy 数组的字典(尽可能避免手动循环)

delphi - 对 TListView 中的子项求和

delphi - 为什么这个 PAnsiChar 在转换为 AnsiString 时会被截断?

android - 如何计算 X、Y 坐标来模拟屏幕上的触摸?

delphi - 如何使用Delphi XE7在api级别8(Android 2.2)上编译Android App

德尔福。印地和西里尔字母

Delphi:用于索引 TStringList 项的 Integer 以外的类型

matrix - 如何在 Julia 中以对角线形式连接矩阵