掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TStringListで、特定の文字列から開始する行を高速で抜き出す方法 (ID:39846)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ちょっと気づいたのですが、10000個程度の文字検索なら 今のパソコンならそれこそ全文検索でも10ms以下で完了しませんか? もっさり動くのは恐らく、候補のリストアップの方だと思います。 となると、候補をリストビューに表示する際、いわゆるバーチャルモードでリストアップして、全ての候補は読み込まない技術に力を入れた方がいいと思いますよ。 procedure TForm1.Button1Click(Sender: TObject); var c: Cardinal; i,p: Integer; str1,str2:string; aStrList:TStringList; begin aStrList := TStringList.Create; for i := 0 to 10000 do aStrList.Add(IntToStr(i)); c:= GetTickCount; str1 := '111'; for i := 0 to aStrList.Count - 1 do begin str2 := aStrList.Strings[i]; if CompareStr(Copy(str2,1,Length(str1)),str1)=0 then inc(p); end; Caption := IntToStr(GetTickCount-c) + '-' + IntToStr(p); aStrList.Free; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.