如何将撇号放入字符串?

时间:2013-01-10 14:03:37

标签: delphi delphi-7 delphi-xe2

我有一个宽字符串说StringABC 我有一个数组说ArrayABC,这个数组的元素是

ArrayABC[0]='A';
ArrayABC[1]='B';
ArrayABC[2]='C';

现在我必须让stringABCStringABC := ''A','B','C'';

我试图像

那样做
StringABC := '';
for (i:=0 to 2) do
begin
StringABC := StringABC + ArrayABC[i] + ',';
if i = 2
stringABC := StringABC + ArrayABC[i];
end

我的结果为stringABC = 'A,B,C'但不是''A','B','C'' 我的代码应该改进什么?

3 个答案:

答案 0 :(得分:4)

StringABC := '';
for (i:=0 to 2) do
begin
StringABC := StringABC + '''' + ArrayABC[i] + ''',';
if i = 2
stringABC := StringABC + '''' + ArrayABC[i] + '''';
end

虽然我只是用逗号连接所有i,但最后删除最后一个逗号。

答案 1 :(得分:4)

Const
  StringArray:Array[7..11] of String=('A','B','C','D','E');

Function GetQuotedStringArray(const a:Array of String) : String;

var
 i:Integer;

 Function GetComma:String;
  begin
    if i <> High(a) then 
     Result :=',' else Result :='';
  end;

begin
  for I := Low(a) to High(a) do 
   Result := Result + QuotedStr(a[i]) + GetComma;
end;

procedure TForm4.Button1Click(Sender: TObject);
begin
  Showmessage(GetQuotedStringArray(StringArray));
end;

答案 2 :(得分:2)

另一种选择:

const
  StringArray:Array[7..11] of String=('A','B','C','D','E');

function GetQuotedStringArray(const a:Array of String): String;
var
  i: Integer;
  ComStrings: TStringList; 
begin
  ComStrings := TStringList.Create;
  try
    ComStrings.QuoteChar := '''';

    for i := low(a) to high(a) do
      ComStrings.Add(a[i]);

    Result := ComStrings.CommaText;
  finally
    ComStrings.Free;
  end;
end;