Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ordenar String (https://www.clubdelphi.com/foros/showthread.php?t=60047)

Neeruu 18-09-2008 04:50:31

Ordenar String
 
Hola a todos como estas???!!!

Tengo el siguiente inconveniente!!!

Tengo una tabla donde tengo un Codigo y una Descripcion , los dos del tipo string;


con estos datos:

1.1 xxxxxxx
1.1.1 xxxxxxx
1.1.2 xxxxxxx
1.1.3 xxxxxxx
....
1.1.10
1.1.11

El tema es que tengo que ordenarlos por codigo
y me ordena por ejemplo asi:

1.1
1.1.1
1.1.10
1.1.11
1.1.2

Cuando en realidad necesito que quede asi

1.1
1.1.1
1.1.2
1.1.3
...
1.1.9
1.1.10
1.1.11
1.1.12

Pero no se como hacer...
Ingresar una columma con un valor integer (llamemosle "Orden")puede ser pero hay que tener en cuenta que se puede presentar este caso


1.1
1.1.1
1.1.2
1.1.3
1.1.3.1 //Entrada Nueva
1.1.3.2 //Entrada Nueva
1.1.3.3 //Entrada Nueva
1.1.4
....

Y cada vez que inserto un fila en medio de mis datos tendre que cambiar la numeracion del campo orden


Alguien sabe como hacerlo....

Saluda Atte Neeruu!!!:)

Neftali [Germán.Estévez] 18-09-2008 09:23:59

Normalmente lo que se suele hacer es normalizar ese campo para conseguir:

1.1.00.0
1.1.01.0
1.1.02.2
1.1.03.0
....
1.1.10.0
1.1.11.0

(para conseguirlo debes tener siempre presente la combinación más grande)

Si ahora insertas:
1.1.3.1 //Entrada Nueva
1.1.3.2 //Entrada Nueva
1.1.3.3 //Entrada Nueva

que sería así:
1.1.03.1
1.1.03.2
1.1.03.3

Te lo insertaría correctamente.

A veces hacer estos cambios en el campo que se tiene no es posible; En ese caso lo que puedes hacer es crear otro campo que realmente te devuelva la ordenación correcta; Puede estar oculto y el usuario no debe enterarse ni que existe; Debes rellenarlo tú por código con el valor correcto.

Cuando rellenas 1.0, en tu campo pones 01.00.00.00
Cuando rellenas 1.1.3.2, en tu campo pones 01.01.03.02
...

Neeruu 18-09-2008 18:58:50

Ordenar String
 
Gracias Neftali!!!!!!

Muchas Gracias!!!!

Ya hice un fix, que me toma el campo codigo lo formatea y lo guarda en un campo orden, y quedo de 10!!!!


Saluda Atte Neeruu!!!:)


La franja horaria es GMT +2. Ahora son las 21:15:16.

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