[Delphi] IndexOf リスト内の文字列検索
トップページへ
IndexOfのサンプル例を2つ掲載しています。なお「IndexOfは完全一致」で「部分一致ではありません」
※全てのDelphi(楽天市場で探す ・ amazonで探す)で動作する保証はありません。また、内容に関し管理人は全ての責任を負いかねます
サンプル ※説明に必要な部分しか記述していません
IndexOf の使用例、実行例です
●サンプルA
下記を実行しますと
{あらかじめ
フォーム上に TComboBox, TListBox, TButtonを配置し
●ComboBox1.Items には
aBde
xyz
012ABC
mnop
ABC
●ListBox1.Items には
ABC
DEF
xyz
dEf
123
def
をセットしています}
procedure TForm1.Button1Click(Sender: TObject); begin //実行例でおわかりの通り、大文字小文字の区別はしていません。 //実行例はこのサンプルの結果であり、区別が必要な場合は別の方法が良いかと思います。 ComboBox1.ItemIndex := ComboBox1.Items.IndexOf('aBC'); ComboBox1.DroppedDown := True; ListBox1.ItemIndex := ListBox1.Items.IndexOf('dEf'); end;
実行例で、コンボボックスは「aBC」、リストボックスは「dEf」で検索した結果です。
●サンプルB
var jyogai: TStrings; l_fol: String; ・・・ begin ・・・ jyogai := TStringList.Create; try for i := 0 to FileList.Count -1 do begin l_fol := FileList.Strings[i]; //l_fol(対象のフォルダ)がjyogai(除外リスト)にあったら, //Continueで、すぐ下のメイン処理を飛ばして次のStrings[i]へ if jyogai.IndexOf(l_fol) <> -1 then begin Continue; end; ・・・【メイン処理 】 end; finally jyogai.Free; end;
※下記はヘルプからの引用です
function IndexOf(const S: string): Integer; virtual;
リスト内の文字列の位置を返します。
IndexOf メソッドを呼び出すと,文字列 S の位置を取得できます。IndexOf は 0 から始まる文字列のインデックス値を返します。このようにして,S がリスト内の最初の文字列と一致した場合には IndexOf は 0 を返し,S が 2 番めの文字列と一致した場合には IndexOf は 1 を返します。文字列リストにその文字列がない場合,IndexOf は -1 を返します。
メモ: 同じ文字列がリスト内に複数ある場合,IndexOf は最初に見つかった文字列の位置を返します。
公式・TStrings
公式・TStringList