[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






関連記事
[Delphi] Copy関数 文字列の切り出し

[Delphi] messagedlg メッセージボックスのプログラム例とその画像

[Delphi]ファイルを開く場合