Delphi의 와일드카드 찾기 함수

9176 단어 Delphi

<!--
body { color: #000000; background-color: #C1FFC1; }
body {font-family: 송체, font-size: 11pt;} & #13;
.pas1-assembler { color: #800000; }
.pas1-character { color: #0000FF; }
.pas1-comment { color: #008000; }
.pas1-float { }
.pas1-hexadecimal { }
.pas1-identifier { }
.pas1-number { color: #FF0080; }
.pas1-preprocessor { color: #800080; }
.pas1-reservedword { color: #000000; font-weight: bold; }
.pas1-space { }
.pas1-string { color: #0000FF; }
.pas1-symbol { }
-->
//Delphi          
Function
 IsLike(ax, abc: String): Boolean; //ax ,abc Var   abcstart, axstart, abclength, axlength: Integer;   endpartabc, endpartax, subax: String;   temp, abcwww, axwww: Integer; Begin //aaa   temp := 0;   abcstart := 1;   axstart := 1;   axwww := 1;   abcwww := 1;   ax:=LowerCase(ax);   abc:=LowerCase(abc);   abclength := Length(abc);   axlength := Length(ax);   result := True;   While axstart <= axlength Do Begin //bbb     If ax[axstart] = '?' Then Begin       inc(axstart);       inc(abcstart);       If abcstart > abclength+1 Then Begin         result := false;         Break;       End;       Continue;     End;     If ax[axstart] = '*' Then Begin       inc(axstart);       temp := 1;       axwww := axstart;       abcwww := abcstart;       Continue;     End;     If Not (ax[axstart] In ['?''*']) Then Begin //ccc       endpartax := Copy(ax, axstart, axlength - axstart + 1) + '?*';       If Pos('?', endpartax) < Pos('*', endpartax) Then Begin         subax := Copy(endpartax, 1, Pos('?', endpartax) - 1);         axstart := axstart + Pos('?', endpartax) - 1;       End       Else Begin         subax := Copy(endpartax, 1, Pos('*', endpartax) - 1);         axstart := axstart + Pos('*', endpartax) - 1;       End;       endpartabc := Copy(abc, abcstart, abclength - abcstart + 1);       If ((Pos(subax, endpartabc) <> 0And (temp = 1)) Or ((Pos(subax, endpartabc) = 1And (temp = 0)) Then Begin //ddd         If temp = 1 Then temp := 0;         abcstart := abcstart + (Pos(subax, endpartabc) + Length(subax) - 1);       End       Else  Begin //ddd         If temp = 0 Then Begin           axstart := axwww;           abcwww := abcwww + 1;           abcstart := abcwww;           temp := 1;           Continue;         End;         result := false;         Break;       End//ddd     End//ccc   End//bbb End//aaa

좋은 웹페이지 즐겨찾기