Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-09-2008
[David] David is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Málaga
Posts: 417
Poder: 21
David Va por buen camino
Smile Convertir una cadena de palabras separadas por # en array

hola

tengo un String, de este tipo:

uno#dos#tres

donde he puesto uno, dos y tres, puede haber otros caracteres.

El caso es que quiero una instrucción que me devuelva, 3 grupos uno para cada número.

Por ejemplo:

cad[0] := uno;
cad[1] := dos;
cad[2] := tres;

Un saludo
Responder Con Cita
  #2  
Antiguo 10-09-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
Código Delphi [-]
listbox1.items.delimiter:='#';
listbox1.items.delimitertext:=TuString;
Responder Con Cita
  #3  
Antiguo 10-09-2008
[David] David is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Málaga
Posts: 417
Poder: 21
David Va por buen camino
pero no quiero usar ningún componente, algo así pero sin un componente.
Responder Con Cita
  #4  
Antiguo 10-09-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
pues entonces create una función que recorra la cadena con un while y con un if preguntando por el caracter delimitador, cuando lo encuentre vas metiendo los "cachos" de cadena en donde tu quieras, vease un TStringList.... no se no se me ocurre más cositas...
Responder Con Cita
  #5  
Antiguo 10-09-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola david, si no quieres usar ningun componente entonces usa un StringList y aplicas lo que te ha indicado tpc_ip.

Código Delphi [-]
var
 sl : TStringList;
begin
 sl := TStringList.Create;
 sl.delimiter:='#';
 sl.delimitedtext:='uno#dos#tres';
 
 for i:=0 to sl.Count-1 do
  showmessage(sl[i]);

Si no quieres usar un StringList entonces tendras que hacerlo con las funciones copy y pos.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.

Última edición por Caro fecha: 10-09-2008 a las 13:45:48.
Responder Con Cita
  #6  
Antiguo 10-09-2008
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Solo una aclaración no es delimitertext es delimitedtext

PD: Si el texto contiene espacios o tabulaciones el TStringList no funcionara, al menos en algunas versiones de delphi que no tienen la propiedad StrictDelimiter
Responder Con Cita
  #7  
Antiguo 10-09-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por seoane Ver Mensaje
Solo una aclaración no es delimitertext es delimitedtext
Yo me he copiado directamente lo que tenía el amigo tcp , la verdad no me he dado cuenta de ese detallito.

Cita:
Empezado por seoane Ver Mensaje
PD: Si el texto contiene espacios o tabulaciones el TStringList no funcionara, al menos en algunas versiones de delphi que no tienen la propiedad StrictDelimiter
En ese caso entonces podríamos utilizar la función ExtractStrings y le indicamos que ignore el espacio y el tabulador en el parseo de la cadena.

Código Delphi [-]
var
 cadena : String;
 i : Integer;
 sl : TStringList;
begin
 sl := TStringList.Create;
 ExtractStrings(['#'], [#32,#9], PCHAR(cadena), sl);
 for i:=0 to sl.Count-1 do
  showmessage(sl[i]);

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #8  
Antiguo 10-09-2008
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por Caro Ver Mensaje
En ese caso entonces podríamos utilizar la función ExtractStrings
No la conocía, parece que delphi tiene funciones para todo
Responder Con Cita
  #9  
Antiguo 10-09-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
hola,
lo mismo sin usar objetos...

Código Delphi [-]
var
        s : array of string;
        txt : string;
        i,j : integer;
begin
        txt := 'uno#dos#tres#cuatro';
        setlength(s,1);

        i := 1;
        j := 0;
        while i < length(txt) + 1 do
        begin
                if txt[i] = '#' then
                begin
                        setlength(s,length(s) + 1);
                        inc(j);
                end
                else
                s[j] := s[j] + txt[i];

                inc(i);
        end;

        for i := 0 to length(s) - 1 do showmessage(s[i]);
        setlength(s,0);
end;

Última edición por coso fecha: 10-09-2008 a las 15:31:50.
Responder Con Cita
  #10  
Antiguo 10-09-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
Cita:
Yo me he copiado directamente lo que tenía el amigo tcp , la verdad no me he dado cuenta de ese detallito
es que no puede ser que en el foro no se pueda compilar sería muy útil
Responder Con Cita
  #11  
Antiguo 10-09-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
¿un compilador en linea? pues seria interesante, si...
Responder Con Cita
  #12  
Antiguo 10-09-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
bueno entre Roman, caro, al gonzalez, marcos, dec, Neftali, tu mismo.....y un larguisimo etc ya sois el mejor compilador en linea que puedo tener
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Convertir numero en cadena rex JAVA 7 25-10-2007 03:28:11
Convertir a binario cadena de caracteres wgfs Varios 0 28-10-2006 00:58:28
Convertir de String a un Array albertoP Internet 3 27-04-2006 22:20:50
Convertir una cadena Ganduke Varios 6 28-12-2005 14:03:16
Leer palabras de una cadena Tecnic2 OOP 2 08-07-2005 17:04:36


La franja horaria es GMT +2. Ahora son las 14:04:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi