www.mamboteam.com
Project1.pl Advertisement
Start arrow FAQ arrow Stringi arrow Jak sprawdzić, czy string pasuje do wzorca, zawierającego wildcards?
czwartek, 11 marzec 2010
 
 
Menu główne
Start
Artykuły
FAQ
Download
Kontakt
Ciekawe linki
Forum
Mapa serwisu
Logowanie





Zapomniałeś hasła?
Nie masz konta? Załóż sobie
Jak sprawdzić, czy string pasuje do wzorca, zawierającego wildcards? Drukuj E-mail
Oceny: / 0
KiepskiBardzo dobry 
Napisał: Berl   
niedziela, 02 październik 2005




Jak wiadomo, wildcards to znaki zastępujące dowolny ciąg znaków (*) lub pojedynczy znak (?). Jeśli chcemy sprawdzić, czy jakiś string pasuje do wzorca zawierającego wildcards, możemy posłużyć się następującą funkcją :
 
function MatchPattern(element, pattern: PChar): Boolean;
    function IsPatternWild(pattern: PChar): Boolean;
    var
        t: Integer;
    begin
        Result := StrScan(pattern, '*') <> nil;
        if not Result then Result := StrScan(pattern, '?') <> nil;
    end;
 
    begin
        if 0 = StrComp(pattern, '*') then Result := True
        else if (element^ = Chr(0)) and (pattern^ <> Chr(0)) then Result := False
        else if element^ = Chr(0) then Result := True
        else begin
            case pattern^ of
                '*': if MatchPattern(element, @pattern[1]) then Result := True
                else Result := MatchPattern(@element[1], pattern);
                '?': Result := MatchPattern(@element[1], @pattern[1]);
                else if element^ = pattern^ then Result := MatchPattern(@element[1], @pattern[1])
                else Result := False;
            end;
        end;
    end;
 
begin
    StrPCopy(pSource, Source);
    StrPCopy(pPattern, pattern);
    Result := MatchPattern(pSource, pPattern);
end;
Funkcji tej używamy w sposób następujący :
 
if MatchPattern('Green Suit Software', '* Suit S?f?w?r?') then ShowMessage('Pasuje do wzorca.');
Komentarze

Aby dodać komentarz zaloguj się. Jeśli nie masz konta, załóż je sobie.
Tylko zarejestrowani użytkownicy mogą pisać komentarze.

 
wstecz
LINKUJ PRO
Gościmy
Odwiedza nas 27 gości
Licznik odwiedzin
86883
 
Góra Góra