Cadena de coincidencia de patrón


Hay muchas veces cuando usted necesita para comparar dos cadenas de caracteres, pero desea utilizar comodines en el partido - todos los apellidos que comienzan con 'St', etc.
Colaborador: DAVID STIDOLPH
El siguiente es un fragmento de código que tengo de Sean Stanley en Tallahassee Florida en C. he traducido en Delphi am subirlo aquí para que todos puedan usar. No lo he probado extensivly, pero la función original ha sido probado bastante thoughly.
me encantaría comentarios sobre esta rutina - o pueblos cambios. Quiero avanzar que ellos Sean para obtener de él para liberar más cositas como esta.
{
& nbsp & nbsp Esta función toma dos cadenas, y los compara. La primera cadena
& nbsp & nbsp puede ser cualquier cosa, pero no debe contener patrón de caracteres (* o ?).
& nbsp & nbsp de La cadena de patrón puede tener muchos de estos patrón de personajes como usted desea.
& nbsp & nbsp Por ejemplo: MatchStrings('David Stidolph','*St*') devolverá True.
& nbsp & nbsp Orignal código por Sean Stanley en C
& nbsp & nbsp Reescrito en Delphi por David Stidolph
}
función MatchStrings(fuente, patrón: String): Boolean
var
& nbsp & nbsp pSource: Array [0..255] of Char
& nbsp & nbsp pPattern: Array [0..255] de Char
& nbsp & nbsp función MatchPattern(elemento de patrón: PChar): Boolean
& nbsp & nbsp & nbsp & nbsp función IsPatternWild(patrón: PChar): Boolean
& nbsp & nbsp & nbsp & nbsp var
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp t: Integer
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := StrScan(patrón,'*') <> nil

& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si no el Resultado de Resultado := StrScan(patrón,'?') <> nil
& nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp si 0 = StrComp(patrón,'*'), a continuación,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := True
& nbsp & nbsp & nbsp & nbsp else if (elemento^ = Chr(0)) y (patrón^ <> Chr(0)) then
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := False
& nbsp & nbsp & nbsp & nbsp else if elemento^ = Chr(0), a continuación,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := True
& nbsp & nbsp & nbsp & nbsp else begin
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp patrón caso^ de
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp '*': si MatchPattern(elemento,@patrón[1]) entonces
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := True
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp else
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := MatchPattern(@elemento[1],patrón)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp '?': Resultado := MatchPattern(@elemento[1],@patrón[1])
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp else
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & si nbsp elemento^ = patrón^, a continuación,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := MatchPattern(@elemento[1],@patrón[1])
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp else
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := False
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp final
begin
& nbsp & nbsp StrPCopy(pSource,fuente)
& nbsp & nbsp StrPCopy(pPattern,patrón)
& nbsp & nbsp Resultado := MatchPattern(pSource,pPattern)
fin









Cadena de coincidencia de patron


Cadena de coincidencia de patron : Multi-millones de consejos para hacer su vida mas facil.


Hay muchas veces cuando usted necesita para comparar dos cadenas de caracteres, pero desea utilizar comodines en el partido - todos los apellidos que comienzan con 'St', etc.
Colaborador: DAVID STIDOLPH
El siguiente es un fragmento de codigo que tengo de Sean Stanley en Tallahassee Florida en C. he traducido en Delphi am subirlo aqui para que todos puedan usar. No lo he probado extensivly, pero la funcion original ha sido probado bastante thoughly.
me encantaria comentarios sobre esta rutina - o pueblos cambios. Quiero avanzar que ellos Sean para obtener de el para liberar mas cositas como esta.
{
& nbsp & nbsp Esta funcion toma dos cadenas, y los compara. La primera cadena
& nbsp & nbsp puede ser cualquier cosa, pero no debe contener patron de caracteres (* o ?).
& nbsp & nbsp de La cadena de patron puede tener muchos de estos patron de personajes como usted desea.
& nbsp & nbsp Por ejemplo: MatchStrings('David Stidolph','*St*') devolvera True.
& nbsp & nbsp Orignal codigo por Sean Stanley en C
& nbsp & nbsp Reescrito en Delphi por David Stidolph
}
funcion MatchStrings(fuente, patron: String): Boolean
var
& nbsp & nbsp pSource: Array [0..255] of Char
& nbsp & nbsp pPattern: Array [0..255] de Char
& nbsp & nbsp funcion MatchPattern(elemento de patron: PChar): Boolean
& nbsp & nbsp & nbsp & nbsp funcion IsPatternWild(patron: PChar): Boolean
& nbsp & nbsp & nbsp & nbsp var
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp t: Integer
& nbsp & nbsp & nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := StrScan(patron,'*') <> nil

& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si no el Resultado de Resultado := StrScan(patron,'?') <> nil
& nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp si 0 = StrComp(patron,'*'), a continuacion,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := True
& nbsp & nbsp & nbsp & nbsp else if (elemento^ = Chr(0)) y (patron^ <> Chr(0)) then
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := False
& nbsp & nbsp & nbsp & nbsp else if elemento^ = Chr(0), a continuacion,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := True
& nbsp & nbsp & nbsp & nbsp else begin
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp patron caso^ de
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp '*': si MatchPattern(elemento,@patron[1]) entonces
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := True
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp else
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := MatchPattern(@elemento[1],patron)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp '?': Resultado := MatchPattern(@elemento[1],@patron[1])
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp else
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & si nbsp elemento^ = patron^, a continuacion,
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := MatchPattern(@elemento[1],@patron[1])
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp else
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp Resultado := False
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp final
begin
& nbsp & nbsp StrPCopy(pSource,fuente)
& nbsp & nbsp StrPCopy(pPattern,patron)
& nbsp & nbsp Resultado := MatchPattern(pSource,pPattern)
fin


Cadena de coincidencia de patrón

Cadena de coincidencia de patrón : Multi-millones de consejos para hacer su vida más fácil.
Recommander aux amis
  • gplus
  • pinterest

Comentario

Dejar un comentario

Clasificación