重複を排除してTStringListにADDするには?

解決


tomo  2006-09-12 18:08:06  No: 23212

StringGrid1の第1列には日付データが0000-00-00のformatで入っています。
これをStringListに重複を許さずに格納したいのですが、
以下のコードでは重複を排除できません。
どこが間違ってますか?

var i:integer;
    St:TStringList;
    S:string;
begin
  St:=TStringList.Create;
  St.Clear;
  for i:=StringGrid1.RowCount-1 downto 1 do begin
    S:=StringGrid1.Cells[0,i];
    if St.IndexOf(S)=-1 then St.Add(S);
  end;
end;


通りすがり  2006-09-12 18:55:38  No: 23213

試してみました。

procedure TForm1.FormCreate(Sender: TObject);
begin
  StringGrid1.Cells[0,1] := '2006-09-01';
  StringGrid1.Cells[0,2] := '2006-09-02';
  StringGrid1.Cells[0,3] := '2006-09-02';
  StringGrid1.Cells[0,4] := '2006-09-03';
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  St: TStringList;
  S: String;
begin
  St := TStringList.Create;
  St.Clear;
  for i:=StringGrid1.RowCount-1 downto 1 do begin
    S := StringGrid1.Cells[0,i];
    if St.IndexOf(S)=-1 then St.Add(S);
  end;

  Memo1.Clear;
  Memo1.Lines.AddStrings(St);

  St.Free;
end;


tomo  2006-09-12 19:19:14  No: 23214

初歩的な勘違いをしていました。
通りすがり様、ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加