FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#15
|
|||
|
|||
Bueno en python y otros lenguajes existe algo que se llama expresiones regulares, probablemente puedas usar python detrás y sea el que te analice lo que escribiste en el memo, algo así rápido y simple para mostrar lo que te digo, sería:
Código:
import re buf="Estudio de Globulos en Sangre bla bla bla...\n\n?1 Globulos Rojos = ####\n?2 Globulos Blancos = ####\n\n\n?3 = $1(?1-?2)\n\nResultados = ?3 mlg/g\n?4 = $2(?3-?2)\nOtro resultado ?4 mlg/g" expresion=("\?([1-9]\s)[^=]") r=re.compile(expresion,re.S) var=r.findall(buf) print var expresion=("\?([1-9].)=(.*?)\n") r=re.compile(expresion,re.S) var=r.findall(buf) print var python prb.py ['1 ', '2 ', '3 ', '4 '] <---Lista las variables [('3 ', ' $1(?1-?2)'), ('4 ', ' $2(?3-?2)')] <-- Me dice que la variable 3 se va a cargar con la operación representada por ?1-?2 y 4 con la operación ?3-?2 Tienes la función replace, para cuando quieras sustituir las variables con su respectivo valor, en su defecto también puedes hacer uso de las expresiones regulares para reemplazar, es algo muy simple pero extremadamente potente que tan sólo sería buf.replace("?1","3.141592......") por ejemplo: Código:
import re var1=4.35 var2=2.5 buf="Estudio de Globulos en Sangre bla bla bla...\n\n?1 Globulos Rojos = ####\n?2 Globulos Blancos = ####\n?3 = (?1-?2)\n\nResultados = ?3 mlg/g\n?4 = (?3-?2)\nOtro resultado ?4 mlg/g" print buf expresion=("\?([1-9]\s)[^=]") r=re.compile(expresion,re.S) var=r.findall(buf) print var expresion=("\?([1-9].)= (.*?)\n") r=re.compile(expresion,re.S) var=r.findall(buf) print var funcion=var[0][1] funcion=funcion.replace("?1",str(var1)) funcion=funcion.replace("?2",str(var2)) var3=eval(funcion) print '?3 ' print var3 funcion=var[1][1] funcion=funcion.replace("?3",str(var3)) funcion=funcion.replace("?2",str(var2)) var4=eval(funcion) print '?4 ' print var4 bb='?'+var[0][0]+'= '+var[0][1] buf=buf.replace(bb,'') bb='?'+var[1][0]+'= '+var[1][1] buf=buf.replace(bb,'') buf=buf.replace("?1",str(var1)) buf=buf.replace("?2",str(var2)) buf=buf.replace("?3",str(var3)) buf=buf.replace("?4",str(var4)) print buf Código:
python prb.py Estudio de Globulos en Sangre bla bla bla... ?1 Globulos Rojos = #### ?2 Globulos Blancos = #### ?3 = (?1-?2) Resultados = ?3 mlg/g ?4 = (?3-?2) Otro resultado ?4 mlg/g ['1 ', '2 ', '3 ', '4 '] [('3 ', '(?1-?2)'), ('4 ', '(?3-?2)')] ?3 1.85 ?4 -0.65 Estudio de Globulos en Sangre bla bla bla... 4.35 Globulos Rojos = #### 2.5 Globulos Blancos = #### Resultados = 1.85 mlg/g Otro resultado -0.65 mlg/g Si no te gusta la idea de la tabla bien podría ser sustituida por otro Memo donde ellos sólo escriban Código:
var1=4 var2=5 var3=var1-var2 var4=var3-var1 etc.... Código:
Reporte bla bla bla var1 Globulos rojos var2 Globulos blancos Resultado var3 mlg/g Otro resultado var4 mlg/g var1= var2= var3=var1-var2 var4=var3-var1 Jejeje hay una infinidad de soluciones para resolver un problema Si quieres usar completamente delphi, me imagino que en el foro debe de existir mas información sobre las expresiones regulares en delphi Buscando rapidamente en internet encontré el siguiente enlace http://www.latiumsoftware.com/es/articles/00009.php <--TRegExpr Tal vez te sirva
__________________
No todo es lo que parece y lo que parece no es todo. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Sistema TPV | Gaim2205 | Varios | 4 | 07-01-2009 15:14:24 |
Sistema!! | einarcito | Varios | 0 | 11-10-2008 21:18:07 |
mas de 1 sistema a la vez | Patricio | Firebird e Interbase | 7 | 27-08-2008 20:03:11 |
Unidad del sistema | madmai | Windows | 8 | 06-11-2007 09:06:23 |
Mejor sistema de BD | fide | Conexión con bases de datos | 8 | 29-10-2007 18:04:11 |
|