3

私はStringABCと言うワイドストリングを持っています私はArrayABCと言う配列を持っています、この配列の要素は

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

今私はstringABCとして 作らなければなりませんStringABC := ''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'' 。コードで何を改善する必要がありますか?

4

3 に答える 3

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

すべてのiのコンマと連結するだけですが、最後に最後のコンマを削除します。

于 2013-01-10T14:06:06.017 に答える
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;
于 2013-01-10T14:22:40.030 に答える
2

もう1つの選択肢:

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;
于 2013-01-10T18:53:16.660 に答える