FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Muchísimas gracias por tu ayuda ecfisa.
Me ha sido de gran utilidad, y creo que con esto podré hacer alguna cosa más que tenia pensado hacer de otro modo. Ahora, como es lógico me queda controlar que no se introduzca el caracter delimitador en el campo para que no se vuelva loco al devolver los valores. Por otro lado, si quisiera separar un poco más los valores en el ListBox, bastaría con asignar Código:
Delim = '[espacio]-[espacio]'; O quizá en el formato? Donde entiendo "%s" son los valores? Debería asignar True a la propiedad StrictDelimiter para que no detecte esos espacios? Ahora para el resto de cosas que me quedan por hacer, supongo que también podría hacerlas de este modo, si quisiera que fueran 3 o 4 campos los que guardara en el Listbox, estaría bien hacerlo de este modo? Debería incluir en el formato tantos "%s" como campos quiera introducir? Código:
ListBox1.Items.Add(Format('%s-%s',[Edit1.Text, Edit2.Text, Edit3.Text, Edit4.Text])) Código:
Edit1.Text:= Copy(Items[ItemIndex],1,Pos(DELIM,Items[ItemIndex])-1); Código:
Edit2.Text:= Copy(Items[ItemIndex],Pos(DELIM,Items[ItemIndex])+1,MaxInt); Agradezco enormemente tu tiempo y te doy de nuevo las gracias por ayudarme a entender el código para aprender y no solo hacer copia y pega. Un Saludo. |
#2
|
||||
|
||||
Hola Jovalca.
Cita:
La función Pos devuelve la posición de una subcadena dentro de una cadena. Cita:
Cita:
MaxInt es una constante de Delphi que equivale al máximo valor que puede tener un entero, normalmente (2^32) -1. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
|||
|
|||
Gracias de nuevo ecfisa.
Estoy con ello, controlando y probando mas cosas. Ahora solo me viene una duda, como indicarle parar en el segundo delimitador para cuando tengo mas de dos valores. Es decir, tengo esto: Dato 1 | Dato 2 || Dato 3. //He incluido un segundo delimitador para que no devuelva valores incorrectos. Y el código para recogerlos es: Código:
procedure TForm5.ListBox1DblClick(Sender: TObject); const Delim1 = '|'; Delim2 = '||'; begin with ListBox1 do If ItemIndex <> -1 Then begin Form1.LabeledEdit5.Text:= Copy(Items[ItemIndex],1,Pos(Delim1,Items[ItemIndex])-2); Form1.LabeledEdit6.Text:= Copy(Items[ItemIndex],Pos(Delim1,Items[ItemIndex])+2,Pos(Delim2,Items[ItemIndex])-3); Form1.LabeledEdit7.Text:= Copy(Items[ItemIndex],Pos(Delim2,Items[ItemIndex])+3,MaxInt); end; end; He probado ha ponerle solo Delim2, a quitar el Pos, pero de estas formas no compila. También con AnsiPos pero hace lo mismo. Debo declarar simplemente Delim2 de otro modo para que pare ahí? Gracias otra vez. |
#4
|
||||
|
||||
Hola Jovalca.
Para mas de dos valores te sugiero otra opción que sólo requiere un delimitador. Continuando la línea, un ejemplo usando los valores de cuatro Edits:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Guardar y Cargar Contenido del ListBox | FrianxD | C++ Builder | 10 | 29-08-2017 19:48:41 |
Como guardar y cargar los datos de un RichEdit sin perder los Atributos? | pmcastilla | Varios | 4 | 10-10-2007 15:09:48 |
listbox cargar un txt | DM2005 | Varios | 1 | 05-07-2006 19:59:25 |
Cargar datos en Listbox | Delphos | Firebird e Interbase | 5 | 22-06-2005 00:20:42 |
Tiempo para cargar datos en bd | jsc | Firebird e Interbase | 1 | 26-03-2004 10:00:31 |
|