Jump to content


Photo

[RESUELTO] Delimiter y DelimitedText [ListBox]


  • Please log in to reply
11 replies to this topic

#1 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 11 January 2011 - 09:46 AM

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
  • 4483 posts
  • LocationVenezuela

Posted 11 January 2011 - 10:01 AM

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
  • 7419 posts
  • LocationRepública Dominicana

Posted 11 January 2011 - 10:08 AM

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
  • 14448 posts
  • LocationMéxico

Posted 11 January 2011 - 10:16 AM


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
  • 7419 posts
  • LocationRepública Dominicana

Posted 11 January 2011 - 10:17 AM

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
  • 7419 posts
  • LocationRepública Dominicana

Posted 11 January 2011 - 10:38 AM

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
  • 6295 posts
  • LocationArgentina

Posted 11 January 2011 - 11:07 AM

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
  • 7419 posts
  • LocationRepública Dominicana

Posted 11 January 2011 - 11:17 AM

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
  • 6295 posts
  • LocationArgentina

Posted 11 January 2011 - 11:25 AM

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
  • 7419 posts
  • LocationRepública Dominicana

Posted 11 January 2011 - 11:29 AM

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
  • 6295 posts
  • LocationArgentina

Posted 11 January 2011 - 11:34 AM

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 posts

Posted 11 January 2011 - 12:16 PM

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

Saludos
  • 0




IP.Board spam blocked by CleanTalk.