String-Mustervergleich


Es gibt viele Male, wenn müssen Sie zwei Zeichenfolgen zu vergleichen, aber in das Match - alle Nachnamen, die beginnen mit 'St' usw., Wildcards verwenden möchten.
Autor: DAVID STIDOLPH
Im folgenden finden Sie ein Stück Code habe ich aus Sean Stanley in Tallahassee, Florida in C. Ich übersetzte es in Delphi ein bin Laden es hier für alle zu verwenden. Ich habe es Extensivly nicht getestet, aber die ursprüngliche Funktion wurde getestet ganz Thoughly.
Ich würde gerne Feedback über diese Routine - oder Völker ersetzt es. Ich möchte Weiterleitung Sean, ihn freizulassen Weitere Leckerbissen wie folgt zu erhalten.
{
Diese Funktion nimmt zwei Strings und vergleicht sie. Die erste Zeichenfolge
kann alles sein, aber sollte keine Muster Zeichen enthalten (* oder?).
Die Musterzeichenfolge kann so viele dieser Muster-Zeichen haben, wie Sie wollen.
Zum Beispiel: MatchStrings ('David Stidolph','* St *') würde True zurückgeben.
Orignal-Code von Sean Stanley in C
In Delphi durch David Stidolph umgeschrieben
}
Funktion MatchStrings (source, Muster: String): Boolean;
var
pSource: Array [0..255] char;
pPattern: Array [0..255] char;
Funktion MatchPattern (Element, Muster: PChar): Boolean;
Funktion IsPatternWild(pattern: PChar): Boolean;
var
t: Integer;
beginnen
Ergebnis: = StrScan(pattern,'*') <> nil;

Wenn nicht dann Ergebnis zur Folge: StrScan(pattern,'?') <> = nil;
Ende;
beginnen
Wenn der Wert 0 = StrComp(pattern,'*') then
Ergebnis: = True
elseif (Element ^ = Chr(0)) und (Muster ^ <> Chr(0)) dann
Ergebnis: = False
sonst wenn Element ^ = Chr(0) then
Ergebnis: = True
sonst beginnen
RS-Muster ^ von
' *': Wenn dann die MatchPattern(element,@pattern[1])
Ergebnis: = True
sonst
Ergebnis: = MatchPattern(@element[1],pattern) aus;
'?': Ergebnis: = MatchPattern(@element[1],@pattern[1]) aus;
sonst
Wenn Element ^ = Muster ^ dann
Ergebnis: = MatchPattern(@element[1],@pattern[1])
sonst
Ergebnis: = False;
Ende;
Ende;
Ende;
beginnen
StrPCopy(pSource,source);
StrPCopy(pPattern,pattern);
Ergebnis: = MatchPattern(pSource,pPattern);
Ende;









String-Mustervergleich


String-Mustervergleich : Mehreren tausend Tipps, um Ihr Leben einfacher machen.


Es gibt viele Male, wenn müssen Sie zwei Zeichenfolgen zu vergleichen, aber in das Match - alle Nachnamen, die beginnen mit 'St' usw., Wildcards verwenden möchten.
Autor: DAVID STIDOLPH
Im folgenden finden Sie ein Stück Code habe ich aus Sean Stanley in Tallahassee, Florida in C. Ich übersetzte es in Delphi ein bin Laden es hier für alle zu verwenden. Ich habe es Extensivly nicht getestet, aber die ursprüngliche Funktion wurde getestet ganz Thoughly.
Ich würde gerne Feedback über diese Routine - oder Völker ersetzt es. Ich möchte Weiterleitung Sean, ihn freizulassen Weitere Leckerbissen wie folgt zu erhalten.
{
Diese Funktion nimmt zwei Strings und vergleicht sie. Die erste Zeichenfolge
kann alles sein, aber sollte keine Muster Zeichen enthalten (* oder?).
Die Musterzeichenfolge kann so viele dieser Muster-Zeichen haben, wie Sie wollen.
Zum Beispiel: MatchStrings ('David Stidolph','* St *') würde True zurückgeben.
Orignal-Code von Sean Stanley in C
In Delphi durch David Stidolph umgeschrieben
}
Funktion MatchStrings (source, Muster: String): Boolean;
var
pSource: Array [0..255] char;
pPattern: Array [0..255] char;
Funktion MatchPattern (Element, Muster: PChar): Boolean;
Funktion IsPatternWild(pattern: PChar): Boolean;
var
t: Integer;
beginnen
Ergebnis: = StrScan(pattern,'*') <> nil;

Wenn nicht dann Ergebnis zur Folge: StrScan(pattern,'?') <> = nil;
Ende;
beginnen
Wenn der Wert 0 = StrComp(pattern,'*') then
Ergebnis: = True
elseif (Element ^ = Chr(0)) und (Muster ^ <> Chr(0)) dann
Ergebnis: = False
sonst wenn Element ^ = Chr(0) then
Ergebnis: = True
sonst beginnen
RS-Muster ^ von
' *': Wenn dann die MatchPattern(element,@pattern[1])
Ergebnis: = True
sonst
Ergebnis: = MatchPattern(@element[1],pattern) aus;
'?': Ergebnis: = MatchPattern(@element[1],@pattern[1]) aus;
sonst
Wenn Element ^ = Muster ^ dann
Ergebnis: = MatchPattern(@element[1],@pattern[1])
sonst
Ergebnis: = False;
Ende;
Ende;
Ende;
beginnen
StrPCopy(pSource,source);
StrPCopy(pPattern,pattern);
Ergebnis: = MatchPattern(pSource,pPattern);
Ende;


String-Mustervergleich

String-Mustervergleich : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
String-Mustervergleich
Wiezutun
Freunden empfehlen
  • gplus
  • pinterest

Kommentar

Einen Kommentar hinterlassen

Wertung