Club Delphi  
    FTP   CCD     Enlaces   Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Desplegado
  #1  
Antiguo 15-04-2008
tonyskl tonyskl is offline
Miembro
 
Registrado: oct 2007
Posts: 18
tonyskl Va por buen camino
Question Comparar dos String

Buenas,

tengo el siguiente problema...

estoy intentando comparar dos strings de la siguiente manera y no obtengo el resultado esperado:

...
s1 := 'ABE.P'
s2 := 'ABG'

CompareText(s1, s2)
...

En este caso en concreto me esta diciendo que s1 es mas grande que s2.

Pero yo quiero que me haga la comparacion alfabeticamente, es decir que me diga que s1 es mas pequeña que s2.

También lo he intentado directamente con:

...
s1 := 'ABE.P'
s2 := 'ABG'

s1 < s2
...

Muchas GRACIAS!!!
Responder Con Cita
  #2  
Antiguo 15-04-2008
Avatar de egostar
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.295
egostar Va por buen camino
Hola tonyskl

Creo que es un problema de concepto, esto no tiene que ver con una comparación literal de las cadenas, mas bien tiene que ver con la manera como los ordenas dentro de una lista, puedes hacer esto, a ver que te parece

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  Lista : TStringList;
begin
  Lista := TStringList.Create;
  Lista.Add('ABZ');
  Lista.Add('ABG');
  Lista.Add('ABH');
  Lista.Add('ABE.P');
  Lista.Add('ABJ');
  Lista.Sorted := True; //Esto ordena la lista en forma ascendente.
  ListBox1.Items.AddStrings(Lista);
  Lista.Free;
  ShowMessage(ListBox1.Items.Strings[ListBox1.Items.Count-1]);
end;

Salud OS
__________________

Nuestra naturaleza está en movimiento. El reposo absoluto es la muerte”
– Blaise Pascal.
Responder Con Cita
  #3  
Antiguo 15-04-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.196
duilioisola Va por buen camino
A que te refieres con "alfabeticamente".
Teoricamente, s1 < s2 funciona correctamente.

Código Delphi [-]
s1 := 'ABE.P'
s2 := 'ABG'
if (s1 < s2) then
   showmessage ('S2 es más grande')
else
   showmessage ('S1 es más grande');
Responder Con Cita
  #4  
Antiguo 15-04-2008
tonyskl tonyskl is offline
Miembro
 
Registrado: oct 2007
Posts: 18
tonyskl Va por buen camino
Buenas egostar,

Gracias por tu respuesta.

Creo que la solución que das no me vale para mi caso particular.

Digamos que tengo exactamente lo mismo que tu, ¿ok? es decir una lista ordenada, y por otro lado tengo un string (que no quiero meter en esa lista) y quiero saber alfabeticamente en que posición iria...

¿Como lo podría hacer? ¿Lo puedo saber de una forma directa? ¿Tengo que hacerme una función y mirar caracter por caracter?

Gracias!
Responder Con Cita
  #5  
Antiguo 15-04-2008
tonyskl tonyskl is offline
Miembro
 
Registrado: oct 2007
Posts: 18
tonyskl Va por buen camino
Madre mia mi cabeza...

Tanto programar no es bueno.

Lo estaba haciendo bien pero me hice un lio...

GRACIAS!!!
Responder Con Cita
  #6  
Antiguo 15-04-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
enecumene Va por buen camino
Cita:
Empezado por tonyskl Ver Mensaje
Madre mia mi cabeza...

Tanto programar no es bueno.

Lo estaba haciendo bien pero me hice un lio...

GRACIAS!!!
Vamos Hombre, tómese un descanso y bébese una fría, cuando uno llega a ese punto debe hacerlo, te lo digo por experiencia, mucho código en la cabeza no es nada bueno, fíjese en lo que le paso a Delphius, ya no es Delphius, sino, Delphius y NewDelphius.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #7  
Antiguo 15-04-2008
Avatar de egostar
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.295
egostar Va por buen camino
Cita:
Empezado por tonyskl Ver Mensaje
Buenas egostar,

Gracias por tu respuesta.

Creo que la solución que das no me vale para mi caso particular.

Digamos que tengo exactamente lo mismo que tu, ¿ok? es decir una lista ordenada, y por otro lado tengo un string (que no quiero meter en esa lista) y quiero saber alfabeticamente en que posición iria...

¿Como lo podría hacer? ¿Lo puedo saber de una forma directa? ¿Tengo que hacerme una función y mirar caracter por caracter?

Gracias!
A que te refieres con la posición en la que iria.....

Será que quieres hacer esto???

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  Lista : TStringList;
  Cadena: String;
begin
  Cadena := 'ABF';
  Lista := TStringList.Create;
  Lista.Add('ABG');
  Lista.Add('ABH');
  Lista.Add('ABE.P');
  Lista.Add('ABJ');
  Lista.Add(Cadena);
  Lista.Sorted := True; //Esto ordena la lista en forma ascendente.
  ShowMessage('La cadena : '+Cadena+' es la # '+inttostr(Lista.IndexOf(Cadena)+1)+
              ' de '+inttostr(Lista.Count)+' items!');
  Lista.Free;
end;

Salud OS
__________________

Nuestra naturaleza está en movimiento. El reposo absoluto es la muerte”
– Blaise Pascal.
Responder Con Cita
Respuesta


Herramientas
Desplegado

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
Comparar una cadena String con un directorio dicatek Internet 2 22-03-2008 20:01:05
Comparar String con Constante brandolin Varios 1 08-06-2007 05:46:05
comparar un string con un rango de valores locorez Varios 2 09-01-2006 15:54:43
Comparar String davidgaldo Varios 1 30-04-2004 10:29:53
Comparar dos variables string, bien facil... emeceuy Varios 8 09-02-2004 21:12:04


La franja horaria es GMT +2. Ahora son las 17:25:14.


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