Forum
Grundkurs
»Introduktion
»Snabbguide
»Komponenter
»Händelser
»Strängar
»Räkna med Delphi »Egna
typer
»Selektion
»Iteration
»Menyer
»Funktioner
»Arraystrukturer
Tips & Tricks
»Nya tips
»Blandat
»Databaser
»Filer
»Forms
»Grafik
»Internet
»Komponenter
»Matematik
»Multimedia
»Objekt/ActiveX
»Skrivare
»Strängar
»System
»Mest lästa tips
Artiklar
»Delphi och ADO
»Bygga en DLL
»Skapa en enkel rapport
»Hantera registret
»Enheter, units
»Klassen TCanvas
»Använd LookUp Controls
Nya
tips
Lägg
till tips
Delphilänkar
Gästbok
|
|
Matcha ett angivet mönster
|
Kategori: Strängar
Inlagt: 2007-02-19
Läst: 1406
Inlagt av: Staffan Berg
|
Beskrivning |
Denna funktion kontrollerar om en sträng matchar ett angivet mönster.
|
Kod |
uses SysUtils; function IsLike(AString, Pattern: string ): boolean; var j, 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 < n2 then n := n1 else n := n2; p1 := pchar(AString) ; p2 := pchar(Pattern) ; for j := 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 < n2 then begin for j := n1 + 1 to n2 do begin if not ( p2^ in ['*','?'] ) then goto nomatch ; inc(p2) ; end; end; match: Result := True end; //anropas så här: if IsLike('About Delphi', 'Abo?? Delp*') then ShowMessage('A match!') ;
|
|
|