プログラミング

Delphi で使える InStr()

2005年9月2日

 VB のInStr() 関数はDelphi にはなく、pos()関数を使わなければならず、これは機能的にInStr()より劣る。ならば、InStr()を自分で作ればよい。

(以下、InStr()のコード)

//検索関数 InStr
function InStr(start: integer; TextSearched: String; FindThis: String; Compare: integer=0): Integer;
var
    i: integer;
    TS,FT: string;
begin
    if Compare=0 then
    begin
        TS:=TextSearched;
        FT:=FindThis;
    end else
    begin
        TS:=LowerCase(TextSearched);
        FT:=LowerCase(FindThis);
    end;

    i:=pos(FT,copy(TS,start,length(TS)-start+1));
    if 0<i then i:=i+start-1;
    result:=i;
end;

//逆検索関数 RevInStr
function RevInStr(start: integer; TextSearched: String; FindThis: String; Compare: integer=0): Integer;
var
    i,j: integer;
begin
    j:=0;
    repeat
        i:=InStr(j+1,TextSearched,FindThis,Compare);
        if (j<=start) and (start<=i) then
            break;
        j:=i;
    until i=0;
    result:=j;
end

コメント

コメントはありません

コメント送信