![]() |
Case para strings??
Se puede hacer un case para strings????????? utilizo delphi 7, y ando buscando como hacer algo como un case pero con strings, aunque lo puedo hacer con if, pero serian como 25 ifs y kedaria un chorizote, alguien sabe como o de plano tendre ke hacerlo con ifs??
|
Si es para vocales algo como esto te puede servir:
Un Saludo. |
Hola,
Cita:
De todas formas es posible que sea más costoso un "case" que usar "if". Y, digo yo, que, probablemente pudiera hacerse lo que el compañero necesita de otro modo, sólo que así sin más datos... no es posible adivinar cómo es que se plantea lo que dice necesitar. Si se quiere liar la cosa... y tal vez a costa de que todo resulte más costoso, podríamos preparar un "conjunto" que "emparejar" a un "Array de strings", de modo que pudiera quedarnos algo como lo de más abajo... que puede ser una tremenda tontería, fruto de llevar toda la noche picando código y sin dormir, y el que avisa no es traidor. :) Pero, vengamos al caso, o al "case", como queráis. Declaramos un conjunto tal que así:
Y preparamos un "Array de strings" que estará "emparejado" con el tipo de más arriba:
Ahora, podemos preparar un procedimiento que requiera una cadena, de modo que en el mismo podamos comprobar con qué elemento del conjunto se "empareja". Acto seguido usaremos una variable del tipo del "conjunto" para determinar el "caso" correspondiente a la cadena en cuestión:
El tema está en que al procedimiento "DoStringCase" le pasamos un "string" como parámetro, de modo que, en el ejemplo, se ejecutará el "ShowMessage()" correspondiente a dicho "string", en realidad al elemento del conjunto que emparejamos con el "string":
Pero,... creo que después de esto ya me puedo echar a dormir... :D :D Sinceramente, es probable que haya otras formas de hacer lo que se plantea el compañero. Aun habiendo escrito lo anterior, dudo mucho que algún día lo utilizase... pero, en fin, ahí queda, por si puede servir de algo. PD. Tiene el inconveniente principal de tener que añadir tantos elementos al "conjunto" como sean precisos... y hacer lo propio con el "Array de string" correspondiente. Por no mencionar otra vez el posible costo de llevar a cabo el "bucle for", a continuación el "case"... y el resto de defecos que se os ocurran. :) |
En realidad quería decir para tipo Char, según ha corregido David.
Un Saludo. |
Hola Milperrimo, tambien lo puedes hacer de esta forma
La función AnsiIndexStr te devuelve el indice de una cadena dentro de un arreglo de cadenas y -1 si no encuentra dentro de ese arreglo. Saluditos |
Hola,
Caro apunte Caro. :) |
Abundando en lo dicho por David Carísimo apunte Caro.
Un Saludo. |
Hola dec y marcoszorrilla, solo queria comentarles que mi nick no tiene nada que ver con la palabra caro, sino que es una abreviación de Carolina que es el nombre que me gusta mucho :D .
Saluditos |
Hola,
Bueno. Pues fatal el apunte Caro, cómo puedes escribir código tan malo. :D :D :D PD. Es broma... ¿eh? Lo dicho, dicho. :) |
Gracias compañeros por sus respuestas, voy a probar con las soluciones dadas, haber cual me funciona mejor para lo que necesito:)
|
¡Estupendo truco Caro! Recién hoy me entero y con éste es el segundo tuyo que veo hoy. ¿Los has puesto en la sección de trucos?
// Saludos |
Ah!
Cita:
|
Ey, ¿Como es que yo no había visto este apunte?, pues esta muy bueno, que bien Caro, gracias :).
|
| La franja horaria es GMT +2. Ahora son las 15:18:30. |
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