![]() |
| |||
| Hola, tengo que realizar una función para que trate unas cadenas de una forma un tanto especial, al menos para mi, la cuestion es la siguiente: Tengo la cadena " [205] * 5 >= [105] + 250 " (Son varias cadenas que están guardadas en un Tabla) De esta cadena me interesaria realizar la comparación teniendo en cuenta que lo que va entre corchetes es el id de un control, es decir en una base de datos hay un listado de controles mediante los cuales se crea un formulario, entonces lo que me gustaría saber es diferenciar lo que hay entre corchetes de lo que no está, de forma que: Si ("[el valor de control 205] * 5 >= [el valor del control 105] + 250") hace una cosa u otra Muchas Gracias por la ayuda y FELIZ AÑO, aunq ya es 4 de enero :P |
| | ||||
| ||||
| |
| |||
| El 4 Jan 2007 00:51:10 -0800, "Xino" <frandeharo***gmail.com> escribió: >De esta cadena me interesaria realizar la comparación teniendo en >cuenta que lo que va entre corchetes es el id de un control, es decir >en una base de datos hay un listado de controles mediante los cuales se >crea un formulario, entonces lo que me gustaría saber es diferenciar >lo que hay entre corchetes de lo que no está, de forma que: > > Si ("[el valor de control 205] * 5 >= [el valor del control >105] + 250") hace una cosa u otra Si esa cadena de comprobación es segura te recomendaría usar "eval" para evaluar una condición que te montes tú mismo. http://es.php.net/eval Primero haces un ereg_replace que reemplaza todos los numeros que sigan el patron \[[0-9]*\] (o \[[^\]]\]) por $variable\\1. De este modo [1] se convertirá en $variable[1]. Si tienes todos los datos metidos en esa variable todo funcionará bien. Luego solo tienes que usar eval para hacer lo que desees: $evaluacion = 'if ('. $cadena .') {$salida = true} else {$salida=false}'; Cuando evalues esa cadena lo que hará será ejecutarla.. es decir.. hará un if real, y al final de la ejecución $salida vandrá true o no dependiendo de si se cumple o no la condición. >Muchas Gracias por la ayuda y FELIZ AÑO, aunq ya es 4 de enero :P De nada, un saludo. -- Óscar Javier García Baudet LinaresDigital http://redstar.linaresdigital.com/ |
| |||
| El 4 Jan 2007 00:51:10 -0800, "Xino" <frandeharo***gmail.com> escribió: >De esta cadena me interesaria realizar la comparación teniendo en >cuenta que lo que va entre corchetes es el id de un control, es decir >en una base de datos hay un listado de controles mediante los cuales se >crea un formulario, entonces lo que me gustaría saber es diferenciar >lo que hay entre corchetes de lo que no está, de forma que: > > Si ("[el valor de control 205] * 5 >= [el valor del control >105] + 250") hace una cosa u otra Si esa cadena de comprobación es segura te recomendaría usar "eval" para evaluar una condición que te montes tú mismo. http://es.php.net/eval Primero haces un ereg_replace que reemplaza todos los numeros que sigan el patron \[[0-9]*\] (o \[[^\]]\]) por $variable\\1. De este modo [1] se convertirá en $variable[1]. Si tienes todos los datos metidos en esa variable todo funcionará bien. Luego solo tienes que usar eval para hacer lo que desees: $evaluacion = 'if ('. $cadena .') {$salida = true} else {$salida=false}'; Cuando evalues esa cadena lo que hará será ejecutarla.. es decir.. hará un if real, y al final de la ejecución $salida vandrá true o no dependiendo de si se cumple o no la condición. >Muchas Gracias por la ayuda y FELIZ AÑO, aunq ya es 4 de enero :P De nada, un saludo. -- Óscar Javier García Baudet LinaresDigital http://redstar.linaresdigital.com/ |
| |||
| El 4 Jan 2007 00:51:10 -0800, "Xino" <frandeharo***gmail.com> escribió: >De esta cadena me interesaria realizar la comparación teniendo en >cuenta que lo que va entre corchetes es el id de un control, es decir >en una base de datos hay un listado de controles mediante los cuales se >crea un formulario, entonces lo que me gustaría saber es diferenciar >lo que hay entre corchetes de lo que no está, de forma que: > > Si ("[el valor de control 205] * 5 >= [el valor del control >105] + 250") hace una cosa u otra Si esa cadena de comprobación es segura te recomendaría usar "eval" para evaluar una condición que te montes tú mismo. http://es.php.net/eval Primero haces un ereg_replace que reemplaza todos los numeros que sigan el patron \[[0-9]*\] (o \[[^\]]\]) por $variable\\1. De este modo [1] se convertirá en $variable[1]. Si tienes todos los datos metidos en esa variable todo funcionará bien. Luego solo tienes que usar eval para hacer lo que desees: $evaluacion = 'if ('. $cadena .') {$salida = true} else {$salida=false}'; Cuando evalues esa cadena lo que hará será ejecutarla.. es decir.. hará un if real, y al final de la ejecución $salida vandrá true o no dependiendo de si se cumple o no la condición. >Muchas Gracias por la ayuda y FELIZ AÑO, aunq ya es 4 de enero :P De nada, un saludo. -- Óscar Javier García Baudet LinaresDigital http://redstar.linaresdigital.com/ |
| |||
| El 4 Jan 2007 00:51:10 -0800, "Xino" <frandeharo***gmail.com> escribió: >De esta cadena me interesaria realizar la comparación teniendo en >cuenta que lo que va entre corchetes es el id de un control, es decir >en una base de datos hay un listado de controles mediante los cuales se >crea un formulario, entonces lo que me gustaría saber es diferenciar >lo que hay entre corchetes de lo que no está, de forma que: > > Si ("[el valor de control 205] * 5 >= [el valor del control >105] + 250") hace una cosa u otra Si esa cadena de comprobación es segura te recomendaría usar "eval" para evaluar una condición que te montes tú mismo. http://es.php.net/eval Primero haces un ereg_replace que reemplaza todos los numeros que sigan el patron \[[0-9]*\] (o \[[^\]]\]) por $variable\\1. De este modo [1] se convertirá en $variable[1]. Si tienes todos los datos metidos en esa variable todo funcionará bien. Luego solo tienes que usar eval para hacer lo que desees: $evaluacion = 'if ('. $cadena .') {$salida = true} else {$salida=false}'; Cuando evalues esa cadena lo que hará será ejecutarla.. es decir.. hará un if real, y al final de la ejecución $salida vandrá true o no dependiendo de si se cumple o no la condición. >Muchas Gracias por la ayuda y FELIZ AÑO, aunq ya es 4 de enero :P De nada, un saludo. -- Óscar Javier García Baudet LinaresDigital http://redstar.linaresdigital.com/ |
| |||
| El 4 Jan 2007 00:51:10 -0800, "Xino" <frandeharo***gmail.com> escribió: >De esta cadena me interesaria realizar la comparación teniendo en >cuenta que lo que va entre corchetes es el id de un control, es decir >en una base de datos hay un listado de controles mediante los cuales se >crea un formulario, entonces lo que me gustaría saber es diferenciar >lo que hay entre corchetes de lo que no está, de forma que: > > Si ("[el valor de control 205] * 5 >= [el valor del control >105] + 250") hace una cosa u otra Si esa cadena de comprobación es segura te recomendaría usar "eval" para evaluar una condición que te montes tú mismo. http://es.php.net/eval Primero haces un ereg_replace que reemplaza todos los numeros que sigan el patron \[[0-9]*\] (o \[[^\]]\]) por $variable\\1. De este modo [1] se convertirá en $variable[1]. Si tienes todos los datos metidos en esa variable todo funcionará bien. Luego solo tienes que usar eval para hacer lo que desees: $evaluacion = 'if ('. $cadena .') {$salida = true} else {$salida=false}'; Cuando evalues esa cadena lo que hará será ejecutarla.. es decir.. hará un if real, y al final de la ejecución $salida vandrá true o no dependiendo de si se cumple o no la condición. >Muchas Gracias por la ayuda y FELIZ AÑO, aunq ya es 4 de enero :P De nada, un saludo. -- Óscar Javier García Baudet LinaresDigital http://redstar.linaresdigital.com/ |
| |||
| El 4 Jan 2007 00:51:10 -0800, "Xino" <frandeharo***gmail.com> escribió: >De esta cadena me interesaria realizar la comparación teniendo en >cuenta que lo que va entre corchetes es el id de un control, es decir >en una base de datos hay un listado de controles mediante los cuales se >crea un formulario, entonces lo que me gustaría saber es diferenciar >lo que hay entre corchetes de lo que no está, de forma que: > > Si ("[el valor de control 205] * 5 >= [el valor del control >105] + 250") hace una cosa u otra Si esa cadena de comprobación es segura te recomendaría usar "eval" para evaluar una condición que te montes tú mismo. http://es.php.net/eval Primero haces un ereg_replace que reemplaza todos los numeros que sigan el patron \[[0-9]*\] (o \[[^\]]\]) por $variable\\1. De este modo [1] se convertirá en $variable[1]. Si tienes todos los datos metidos en esa variable todo funcionará bien. Luego solo tienes que usar eval para hacer lo que desees: $evaluacion = 'if ('. $cadena .') {$salida = true} else {$salida=false}'; Cuando evalues esa cadena lo que hará será ejecutarla.. es decir.. hará un if real, y al final de la ejecución $salida vandrá true o no dependiendo de si se cumple o no la condición. >Muchas Gracias por la ayuda y FELIZ AÑO, aunq ya es 4 de enero :P De nada, un saludo. -- Óscar Javier García Baudet LinaresDigital http://redstar.linaresdigital.com/ |
| |
| |
![]() |
| Herramientas | |
| Desplegado | |
| |
Temas Similares | ||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Yo y las cadenas | Tritt@Google | Newsgroup es.charla.moteros | 19 | 05-07-2008 08:33:38 |
| Cadenas | BIGOTE | Newsgroup es.comp.lenguajes.php | 12 | 20-12-2007 21:24:16 |
| Cadenas | JReyes | Newsgroup microsoft.public.es.dotnet.vb | 1 | 11-12-2007 03:07:01 |
| Cadenas | Gustavo Molina | Newsgroup microsoft.public.es.vfoxpro.formularios | 12 | 28-06-2006 23:36:49 |
| Cadenas SQL | Eduardo | Newsgroup microsoft.public.es.servicios.web | 5 | 22-07-2005 15:56:08 |