Bueno, ya mi cabeza no dá mas...
![Big Grin](http://www.clubdelphi.com/foros/images/smilies/biggrin.gif)
, se me ocurre una solución a mi problemita pero no se si será el mas eficiente (es más, ni siquiera lo he probado
![Roll Eyes (Sarcastic)](http://www.clubdelphi.com/foros/images/smilies/rolleyes.gif)
), ustedes que opinan, habrá una solución mejor o me quedo con esta
![Cool](http://www.clubdelphi.com/foros/images/smilies/cool.gif)
.
Tengo una cadena como esta:
Código:
10:2000-2005/50:1999-2000/25:2001-2003/
Y tengo los siguientes datos:
Código:
ID=10
AI=2003
AF=2005
Debo corroborar lo siguiente:
- Que ID es igual al número antes del ":"
- Que AI es mayor o igual al número que está entre "ID:" y "-"
- Que AF es menor o igual al número que está entre "ID:AI-" y "/"
Se me ocurre lo siguiente:
Código:
/[(^.*)|(\/.*)]\:/
Con lo que estaría tomando el valor antes del ":" ya sea si es de inicio de la cadena o que está después de "/". Aquí haria la primera comparación y si se cumple la primera regla pasar al siguiente paso.
Cita:
/ID\: (.*)\-(.*)\// #Que se note que dejo un espacio en blanco despues de : porque si no me coloca un emoticon
|
De igual forma que la anterior, compararía los datos, si el resultado [1] es mayor o igual al valor en AI y el resultado [2] es menor o igual que AF pues entonces ejecutaré el proceso que se solicita.
Aunque también podríamos hacerlo así:
Cita:
/[(^.*)|(\/.*)]\: (.*)\-(.*)\//
|
Ya que obtendría los datos con una sola expresión y pues menos código ¿no?, he igual de funcional (si funcionara, claro
![Wink](http://www.clubdelphi.com/foros/images/smilies/wink.gif)
).
Las preguntas son:
- ¿Existe una mejor forma de hacerlo?
- ¿A alguien se le ocurre otra forma?
- ¿Estoy metiendo las patas y no se siquiera qué es o como se usa un comodín?
Con el permiso de Al, un abrazo regular
![Stick Out Tongue](http://www.clubdelphi.com/foros/images/smilies/tongue.gif)
.
Saludos.