掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
StringListについて (ID:31808)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
この場合の沢山ってのは、リストに数万個あっても数万個変数誓いたくないってことですかね。 速度重視で。 function CountUniqueString(SL: TStringList): TStringList; var i, idx: Integer; begin Result := TStringList.Create; for i := 0 to SL.Count - 1 do begin if not Result.Find(SL[i], idx) then begin Result.insertObject(idx, SL[i], Pointer(1)); end else begin Result.Objects[idx] := Pointer(Integer(Result.Objects[idx]) + 1); end; end; end; procedure TForm1.Button1Click(Sender: TObject); var sl, r: TStringList; i: Integer; t: Cardinal; begin r := nil; sl := TStringList.Create; Randomize; try for I := 0 to 100000 -1 do begin sl.Add('A' + IntToStr(Random(100))); end; //t := TimeGetTime; r := CountUniqueString(SL); //t := TimeGetTime - t; for I := 0 to r.count - 1 do begin Memo1.Lines.Add(r[i] + ': ' + IntToStr(Integer(r.Objects[i]))); end; //Memo1.Lines.Add(IntToStr(t)); finally sl.Free; r.Free; end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.