Source Code



Simple Like Function

  • anonymous
  • Dec 16' 13
  • Delphi
  • 269
  • 97
  • United States

Sometimes we need to know if a string matches a pattern, which is a string with wildcards (for example "?" and "*"). Here we implement a
function that returns True if the string matches the pattern and False if not.

 

Syntax


function Like(AString, Pattern: string): boolean;
  var
    i, n, n1, n2: integer;
    p1, p2: pchar;
  label
    match, nomatch;
  begin
    AString := UpperCase(AString);
    Pattern := UpperCase(Pattern);
    n1 := Length(AString);
    n2 := Length(Pattern);
    if n1     p1 := pchar(AString);
    p2 := pchar(Pattern);
    for i := 1 to n do begin
      if p2^ = "*" then goto match;
      if (p2^  "?") and (p2^  p1^) then goto nomatch;
      inc(p1); inc(p2);
    end;
    if n1  n2 then begin
  nomatch:
      Result := False;
      exit;
    end else if n1       for i := n1 + 1 to n2 do begin
        if not (p2^ in ["*","?"]) then goto nomatch;
        inc(p2);
      end;
    end;
  match:
    Result := True;
  end;

 

use


 

if Like("Walter", "WA?T*") then
    ShowMessage("It worked!");

 

 

 

  • Tags : like, search, delphi, function
comments powered by Disqus

Related Code

Suspend the PC

Get current url

Using WinZip as a backup tool

Upper the first letter of each word

Rotate Font

Access the controls of a TRadioGroup

fairly nominal



Category