![]() |
Identificar parte de un dato dentro de un campo
Hola a todos
A ver si me podéis dar una mano con esto. Tengo una tabla en donde tengo un campo descripción. En este campo hay por ejemplo varios productos por ejemplo: LAMINA 187 X 305 BONE LAMINA 187 X 305 BLANCO Este campo lo capturo en un combobox en donde me salen todos los que cumplen con una condición (sql). Lo que me gustaría es: En el evento onchange del combobox poder identificar la ultima parte. (BONE) o (BLANCO) Se podrá. Este es el codigo con el que lo capturo:
Saludos |
Hola amigo,
Creo que hoy estoy cerrado, no entiendo lo que quieres hacer :o Salud OS |
Hola
Cita:
Lo que quiero hacer es identificar parte del texto que contiene ese campo. Si el campo tiene: LAMINA 187 X 305 BONE Tiene: LAMINA 187 X 305 BONE Quiero que al mostrar ese campo en el combobox me identifique la ultima parte del campo: BONE Se podra?':confused: Estoy cada vez mas espeso, no capto nada. Saludos |
Hola,
No sé si será muy elegante, ni siquiera si acierto con lo que creo que quieres, pero, vamos, a ver qué tal parece esto:
|
Cita:
LAMINA[espacio]187[espacio]X[espacio]305[espacio]BONE Si es así puedes usar esta función que me encontre creo en Trucomanía.
Salud OS Edito: Vaya amigo Dec, me ganaste y me parece que tu función GetLaminaType() esta optimizada .... :) |
Hola,
Yo sigo a lo mío... :D Creo que mi anterior función podría (y aun debería) quedar así, mejor o peor:
Nótese que ahora el bucle aguantaría mientras la variable "i" valiera igual o más que 1. ¿Por qué así ahora? Porque, si no recuerdo mal, las cadenas en Delphi son "Arrays" de caracteres cuyo índice comienza en uno, no en cero. Tal anteriormente la función de marras podría haber dado algún problema... ¡tal vez incluso ahora pueda darlos! :D :D PD. Probándolo de nuevo no parece haber problema con el "cero", pero, el "uno" me sigue pareciendo más oportuno. Además he añadido el "result" del principio, por principio. ;) |
Yo propongo esta:
Bye |
Hola,
Cita:
Y, respecto de la del compañero keyboy, chico, yo probé con el "Reverse" pero me hice un lío... :D :D :D Por cierto, creo que la de keyboy se muestra favorita, ahora, eso sí, le falta algo:
:D :D :D |
Cita:
Cita:
Salud OS |
Jeje... me ganaron... yo ya estaba preparando una función... pero bueno... mejor no intento.
Total, cuando vengan por aquí Domingo y Javier veremos como queda la cosa.:D Mientras tanto veo como ganarles en ASM.:p:D:rolleyes: Saludos, |
Hola,
Cita:
|
En realidad lo de ReverseString está muy jalado :) pues al final termina haciendo el recorrido inverso. Mucho mejor la de dec que creo se puede simplificar un poco:
Bye |
Cita:
Cita:
De cualquier forma esto me hace auto-enviarme a RTFM :D:D:D Salud OS |
Hola
Sois unos maestros, pero casualmente aveces no os dais cuenta de quien pregunta (el Novato).:D:D Esto de las funciones me mata.:o Alguien me lo traduce.:D Recordad, tengo un combobox, de ahi parto, la información entra en el. Como uso la función para llamar al dato que contiene el combobox.:confused: Ya se, nunca aprenderé, pero de que lo intento, lo intento.:D Saludos |
Cita:
Será que nos expliques un poco mas a detalle que es lo que intentas? :) Salud OS |
Hola
Que poca paciencia me tienes, te esta volviendo viejo amigo:D:D. Vamos otra vez. Tengo un campo. (text) Recojo el dato en un combobox. Ahora con la función que hicisteis quiero saber la ultima parte de ese dato. No lo capto, seguro es facil y vosotros lo veis, pero yo no.:D Anda, que no te cuesta nada explicárselo al Novato.:D:D Saludos |
|
Cita:
Salud OS |
Hola
Veis, no dolió, ahora si lo capte, era solo de tomarme la pastilla del Altz y ya.:D:D Algún día entenderé esto de las funciones.:D Gracias, ya esta resulto, la próxima vez pregunto mejor.:) Para que veáis como quedo, (Use la función de Dec.):
Saludos |
Hola
Bueno, aqui sigo molestando, otro asunto: Ya consegui que me mostrara el color con la funcion, esto esta bien. Ahora lo que necesito es que una vez que consiga el color del combo, me carge en otro combo los datos de otros productos que tienen tambien esa condicion. Para que os deis cuenta. 1- paso: Cargo de combobox ( LAMINA 187 X 305 BONE ) Genero la funcion y me da el color. Esto va bien. 2- paso: Una vez cargado el dato del color quiero que se me genere una consulta Y que me carge en otro combobox el dato que tenga tambien la condicion de Color. El dato es este: IBIZA TERMOFORMADO BONE Lo que tengo: Ojala me entendáis. Saludos |
Hola amigo Caral, y porque no usas un LIKE
Salud OS |
Hola
El asunto es que es el mismo campo pero con diferentes datos. Campo descripcion, Notas= LAMINA 1- Combobox1 = LAMINA 187 X 305 BONE Campo descripcion, Notas= TERM 2- Combobox2 = IBIZA TERMOFORMADO BONE La idea es que al conseguir el color (en un edit) que en ambos datos esta al final y es igual se capture la información en el segundo combobox pero solo los que sean de ese color. Ya se que me lio.:D Saludos |
Hola
Gracias amigo, ya me funciona, estoy embotado por eso seguro me cuesta tanto entender. Gracias a todo por vuestra ayuda, me ha servido de mucho. Gracias de corazón. Saludos |
Hola
Retomando este tema. La función devuelve el ultimo dato (usando cualquiera de las funciones). Me preguntaba si seria posible que devolviera el dato que uno necesite, el primero o el segundo o el ultimo (como en este caso). Lo He intentado pero al contar el dato de atrás para adelante me coloca todas las palabras según van. Se podrá hacer la diferenciación? o se necesitara otra función.? Gracias Saludos |
Mi buen amigo Carlos, ¿Por casualidad te refieres a esto?
Saludos, |
Hola
Gracias Marcelo por contestar. Tengo algunas preguntas: Esta parte es una variable publica??: Ahora para llamar a la funcion que tengo lo hago asi: En este caso solo devuelve el ultimo valor. Como haria para llamar a tu funcion???. Supongo que tengo que indicar el tipo (Posin) o (PosEnd), pero no se como hacerlo. Saludos |
Perdón amigo, me olvidé de indicar que TLaminaInfo es un tipo de dato:
Y un ejemplo de uso de dicha función es el siguiente:
El primer parámetro de la función es el texto completo. Por ejemplo: LAMINA 135 X 185 BONE. El segundo, el tipo de información a extraer. Ahora que lo pienso y viendo lo que deseas hacer se debería modificar el tipo para mejorar el ejemplo:
De este modo puedes hacer coincidir los indices del Combo o de algún otro control con el tipo de dato. Por ejemplo:
Suponiendo que en Edit2.Text estés guardando el texto completo e ItemIndex del combo represente el tipo de información que pide. Mi función es probable que pueda ser mejorada para tus propósitos. La verdad es que la hice en 5 minutos, y no he pensado mucho en las posibilidades que necesitas. Mi intención era mostrar más o menos lo que entendía de tus requisitos. Si es esto lo que andas buscando dimelo, y si no lo es, también dímelo (con tirón de orejas por no haber prestado demasiada atención). Saludos, |
Hola
En tu ultimo ejemplo, que me parece genial ademas de practico me genera este error: Cita:
No se si tendra que ver con que tendria que devolver un integer y pide un string. No entiendo el por que??. Saludos |
¡Ouch!
Como se nota que he perdido la práctica con los enumerados!:o:( Entonces modifica a la función por esta otra:
Y te olvidas del tipo TLaminaInfo, borralo. Y ya no deberías tener problemas. Saludos, |
Hola
Muy interesante el concepto, Efectivamente funciona. Gracias por el apoyo, me cuesta entender el concepto de las funciones pero con estas practicas voy aprendiendo. Gracias de nuevo amigo. Saludos |
Hola Carlos, tal vez estos links te sean de ayuda para comprender el tema de funciones y procedimientos:
http://www.clubdelphi.com/foros/showthread.php?t=49698 http://www.clubdelphi.com/foros/showthread.php?t=49246 Hay más, solo los pongo de ejemplo. Básicamente: La función devuelve un valor, un procedimiento no. Ambos no necesariamente pueden pertenecer a una clase, pueden estar "sueltos" en las units. Por ejemplo cuando uno hace:
Lo que hace es indicar que la función elegir es parte de la clase TForm1. Y es por ello que al momento de escribir su código debemos indicarle su "dueño":
Pero si no necesariamente debe tener un "dueño", Podemos tenerla libremente en una Unit:
Ejemplos de funciones sueltas son inc(), dec(), Length(). Un ejemplo de una función con dueño es CloseQuery, que le pertenece a la clase de la cual desciende los objetos TForm. Espero que esto te haya servido para comprender mejor la diferencia entre funciones y procedimientos e igualmente para comprender a que se debe ese TForm1.XXXXXX. Saludos, |
Hola
Gracias amigo, voy a revisar los link, si no entiendo algo ya te avisare (osea, lo mas seguro). Saludos |
| La franja horaria es GMT +2. Ahora son las 17:08:48. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi