Ir al contenido


Foto

[RESUELTO] Delimiter y DelimitedText [ListBox]


  • Por favor identifícate para responder
11 respuestas en este tema

#1 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 11 enero 2011 - 09:46

A ver, quiero que alguien me explique el funcionamiento de estas propiedades, se supone que separa un string dependiendo del delimiter, pero no logro obtener ese valor delimitado, si pueden con ejemplos mejor.

Saludos
  • 0

#2 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 11 enero 2011 - 10:01

No se si exista una función que haga eso, pero hay muchas opciones para hacerlo, esta es mi propuesta :p



delphi
  1. function ContarLetras(cadena:string;caracter:char):integer;
  2. var
  3. lineas: TStringList;
  4. begin
  5. lineas := TStringList.Create;
  6. Lineas.StrictDelimiter := true;
  7. Lineas.Delimiter := Caracter;
  8. Lineas.DelimitedText := cadena;
  9. result := Lineas.Count-1;
  10. lineas.Free;
  11. end;
  12.  
  13. procedure TForm1.Button1Click(Sender: TObject);
  14. begin
  15.   ShowMessage(inttostr(ContarLetras('Returns the index value of a substring.','e')));
  16. end;



Salud OS


  • 0

#3 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 11 enero 2011 - 10:08

Ah vaya, dejame confirmar si el listbox tiene la propiedad StrictDelimiter, en unos momentos le confirmo.

Salduos.
  • 0

#4 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.469 mensajes
  • LocationMéxico

Escrito 11 enero 2011 - 10:16


No se si exista una función que haga eso, pero hay muchas opciones para hacerlo, esta es mi propuesta :p



delphi
  1. function ContarLetras(cadena:string;caracter:char):integer;
  2. var
  3. lineas: TStringList;
  4. begin
  5. lineas := TStringList.Create;
  6. Lineas.StrictDelimiter := true;
  7. Lineas.Delimiter := Caracter;
  8. Lineas.DelimitedText := cadena;
  9. result := Lineas.Count-1;
  10. lineas.Free;
  11. end;
  12.  
  13. procedure TForm1.Button1Click(Sender: TObject);
  14. begin
  15.   ShowMessage(inttostr(ContarLetras('Returns the index value of a substring.','e')));
  16. end;



Salud OS


Ah si, cuando quise matar moscas a cañonazos :p :D :D :D

Salud OS
  • 0

#5 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 11 enero 2011 - 10:17

Pues no, no lo tiene, me costará pasar el valor primero a un StringList antes de..., mientras, no hay otra opción mejor??.
  • 0

#6 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 11 enero 2011 - 10:38

Ah putadas, que re-wey soy, no me había fijado de que se trataba de una función, eso me debe servir perfctamente, ya les comento de nuevo :p
  • 0

#7 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.301 mensajes
  • LocationArgentina

Escrito 11 enero 2011 - 11:07

Ummm....  ^o| tengo entendido que la propiedad StrictDelimiter fue introducida en la clase TStrings en una versión posterior a D7  ;)

Básicamente la idea es:
1) En la propiedad Delimiter colocar el carácter delimitador.
2) En la propiedad DelimiterText el texto a partir.
3) Listo... ya tienes en la propiedad Strings la cadena partida.

Saludos,
  • 0

#8 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 11 enero 2011 - 11:17

Eso acabo de confirmar amigo Delphius en D7 no existe esa propiedad y así mismo como lo comentas no me funciona desde el ListBox, tendré que pasarlo antes por un Stringlist antes de intoriducirlo al Listbox, ya comento los resultados.
  • 0

#9 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.301 mensajes
  • LocationArgentina

Escrito 11 enero 2011 - 11:25

Eso acabo de confirmar amigo Delphius en D7 no existe esa propiedad y así mismo como lo comentas no me funciona desde el ListBox, tendré que pasarlo antes por un Stringlist antes de intoriducirlo al Listbox, ya comento los resultados.


Pos... si que está raro  ^o| , porque a mi me funciona:



delphi
  1. procedure TForm1.bnPartirClick(Sender: TObject);
  2. const
  3.   Text = 'hola$Fernando$esto$debería$funcionar';
  4. begin
  5.   lbxListado.Items.Delimiter := '$'; //delimitador
  6.   lbxListado.Items.DelimitedText := Text; // el texto a partir
  7. end;



En el ListBox lbxListado aparece el texto partido:

hola
Fernando
esto
debería
funcionar


Saludos,
  • 0

#10 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 11 enero 2011 - 11:29

Pues ya lo probé, el problema mío era que utilizaba la propiedad Add, luego me doy cuenta de que no era necesario ya que delimitedText lo hace automáticamente, gracias por aclararmelo amigo Delphius. (y)

Saludos.
  • 0

#11 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.301 mensajes
  • LocationArgentina

Escrito 11 enero 2011 - 11:34

gracias por aclararmelo amigo Delphius. (y)

Saludos.

No tienes que agradecérmelo. Hoy por ti, mañana por mi.  :)
Además, mejor ni te digo los intentos que hice hace tiempo para aprender a usar estas dos propiedades. Me inventé cada rueda  :D

Saludos,
  • 0

#12 andres1569

andres1569

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 431 mensajes

Escrito 11 enero 2011 - 12:16

Sólo aclarar que las propiedades Delimiter y DelimiterText se introdujeron en Delphi 6.

Saludos
  • 0




IP.Board spam blocked by CleanTalk.