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;
試してみました。
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;
初歩的な勘違いをしていました。
通りすがり様、ありがとうございました。
ツイート | ![]() |