[RESUELTO] Case ... of de cadenas
#1
Posted 06 March 2010 - 04:14 PM
Saludos.
#2
Posted 06 March 2010 - 04:21 PM
case Opcion of 'A': .... 'B', 'C': ... end;
Saludos,
#3
Posted 06 March 2010 - 04:26 PM
El uso de char si.
#4
Posted 06 March 2010 - 04:33 PM
function StringToCaseSelect (Selector : string; CaseList: array of string): Integer; var cnt: integer; begin Result:=-1; for cnt:=0 to Length(CaseList)-1 do begin if CompareText(Selector, CaseList[cnt]) = 0 then begin Result:=cnt; Break; end; end; end;
Muy ingenioso verdad? . , su uso sería:
case StringToCaseSelect('Delphi', ['About','Borland','Delphi']) of 0:ShowMessage('You''ve picked About') ; 1:ShowMessage('You''ve picked Borland') ; 2:ShowMessage('You''ve picked Delphi') ; end;
Aquí el link
Saludos.
#5
Posted 06 March 2010 - 04:51 PM
¡Las cosas de la vida! Eso me pasa por no agregar esas pequeñeces a mi biblioteca.
Mi cabeza estaba pensando en algo parecido. Tener un TStringList y asociar a cada string con una posición. Luego, emplear esa posición para el case.
Saludos,
#6
Posted 06 March 2010 - 05:00 PM
#7
Posted 06 March 2010 - 05:11 PM
No si tuviera LinuxLa mente es como cualquier computador, en algún momento debe fallar
Saludos,
#8
Posted 06 March 2010 - 05:13 PM
...No si tuviera Linux
jeje ¡claro!
#9
Posted 25 March 2010 - 03:26 PM
Bueno me parece que ésta vez Zarko Gajic reinventó la rueda. ..¿Hay alguna manera de hacer un case no con Enteros sino con Strings?.
Saludos.
Podrías haberlo hecho asi:
Uses ...,...,StrUtils; ... case AnsiIndexStr(cadena,['Uno', 'Dos', 'Tres']) of 0 : showmessage('Uno'); 1 : showmessage('Dos'); 2 : showmessage('Tres'); -1 : //la cadena no se encuentra en el arreglo, seria como el else del Case; end;
Saludos...
#10
Posted 25 March 2010 - 03:30 PM
Muy interesante, no lo sabia.
Saludos
#11
Posted 25 March 2010 - 04:26 PM
#12
Posted 25 March 2010 - 06:54 PM
Vaya, rgstuamigo me has sorprendido . ¿Quien diría que ya había algo de fábrica? Hay tantas funciones que es casi imposible saberse todas...
¿Cómo supiste o te enteraste de ella?
Saludos,
#13
Posted 30 March 2010 - 04:22 PM
Bueno yo me enteré gracias a nuestra buen amiga y colega Caro en éste tema >http://www.clubdelph...ead.php?t=49653AnsiIndexStr... ¿Donde estabas cuando Fernando te necesitaba?
Vaya, rgstuamigo me has sorprendido . ¿Quien diría que ya había algo de fábrica? Hay tantas funciones que es casi imposible saberse todas...
¿Cómo supiste o te enteraste de ella?
Saludos,
#14
Posted 30 March 2010 - 04:26 PM
Bueno yo me enteré gracias a nuestra buen amiga y colega Caro
No se podía esperar menos de nuestra amiguita Caro.
Por cierto, felicidades por tu nombramiento en ClubDelphi amigo rgstuamigo
Salud OS
#15
Posted 30 March 2010 - 04:31 PM
Secundo lo dicho por Eliseo, no se puede pedir menos de la gran maestra Caro.
Es sorprendente descubrir que hay cosas que desconocemos. Habría que investigar más a fondo las unidades (lo digo por mí). Muy seguramente hay tantos secretos entre las centenares líneas de código que esperan ser hallados.
Saludos,
#16
Posted 30 March 2010 - 04:35 PM
Muchas gracias... y ahí estamos para las que podamos.. . Siempre me estoy dando una vueltita por acá para ver cómo están?...
Por cierto, felicidades por tu nombramiento en ClubDelphi amigo rgstuamigo
Salud OS
Tienen toda la razón Caro es una maestra, yo en lo personal siempre estoy aprendiendo algo nuevo de ella. ....
Secundo lo dicho por Eliseo, no se puede pedir menos de la gran maestra Caro.
Es sorprendente descubrir que hay cosas que desconocemos. Habría que investigar más a fondo las unidades (lo digo por mí). Muy seguramente hay tantos secretos entre las centenares líneas de código que esperan ser hallados.
Y es verdad que investigar más a fondo las unidades se aprende bastante. .
Saludazos...
#17
Posted 02 April 2010 - 02:07 PM
No creo que Zarko haya reinventado la función, Roberto. Tal vez creó su función cuando la unidad StrUtils aún no existía en Delphi (apareció alrededor de la versión 6).Bueno me parece que ésta vez Zarko Gajic reinventó la rueda. ..
Podrías haberlo hecho asi:
delphi
Uses ...,...,StrUtils; ... case AnsiIndexStr(cadena,['Uno', 'Dos', 'Tres']) of 0 : showmessage('Uno'); 1 : showmessage('Dos'); 2 : showmessage('Tres'); -1 : //la cadena no se encuentra en el arreglo, seria como el else del Case; end;
Sobre lo que comenta Marcelo, acerca de la gran cantidad de funciones desconocidas, mi primera recomendación es que se tenga el hábito de consultar la ayuda buscando por palabras claves. Al menos la ayuda clásica de Delphi es estupenda para ello:
Otra cosa igual o más útil es hacer búsquedas de expresiones regulares con la opción Find in files del menú Search, sobre los archivos de código fuente de las bibliotecas nativas:
Volviendo al tema, me gustaría comentar que GH Freebrary tiene una función para el mismo propósito, pero opcionalmente se le puede indicar que ignore acentos y espacios laterales.
Uses GHFStrings; procedure TForm1.Button1Click(Sender: TObject); Var I :Integer; begin I := ghPosStr (['viernes', 'sábado', 'domingo'], ' SABADO ', ghstcEssential); ShowMessage (IntToStr (I)); end;
Saludos afectuosos.
Al González.
#18
Posted 02 April 2010 - 02:10 PM
Saludos.
#19
Posted 02 April 2010 - 08:49 PM
Sabía desde hace tiempo de esa posibilidad de buscar mediante expresiones regulares. Pero nunca la usé ... creo que debería empezar,... primero a leer la ayuda sobre como usar las expresiones .
GExpert también incluye su propio Search, me gusta este porque clasifica y ordena todo.
Noto unas diferencias entre la página de resultados que ofrece D6 con la que muestras en D7. En tu imagen se aprecia un "tab" con la leyenda "Search for...". En D6 no... la ventana de Mensajes es una sola. ¿Será que hay que configurar algo? 8-)
Saludos,
#20
Posted 07 April 2010 - 03:49 PM
Bueno...tal parece que la funcion creada por Zarko fué posteada en Febrero del 2002 segun ésta página>http://delphi.about....g_Tips_2002.htm, eso quiere decir que la version 6 ya existía. .Lo que puede haber pasado es que quizás Zarko no lo conocía, cosa que a mi me a pasado miles de veces. , hago una funcion que me fascilite alguna tarea y resulta que en delphi ya existe una funcion similar, lo cual me agrada ya que eso quiere decir que me falta muchisimo por conocer Delphi. .No creo que Zarko haya reinventado la función, Roberto. Tal vez creó su función cuando la unidad StrUtils aún no existía en Delphi (apareció alrededor de la versión 6).
....
Sobre tus TIPs, la verdad no sabía que se podía buscar de esa forma...lo cual me viene de maravilla ...muchas gracias por compartir tus conocimientos .
Un saludo Sudamericano...