Retroceder   Foros del Web > Programación para sitios web > Perl y CGI
Crea un nuevo usuario o inicia sesión utilizando tu cuenta de Facebook
Connect with Facebook

Respuesta
 
Herramientas Desplegado
Antiguo 17-ago-2008, 19:39   #1 (permalink)
charlygarcia ha deshabilitado el karma
 
Fecha de Ingreso: octubre-2007
Mensajes: 48
charlygarcia está desconectado
Organizacion de un arreglo por un campo?

Hola a todos
Muy agradecido por todo lo que me ayudan y enseñan

Tengo una duda

Tengo un archivo de la siguiente manera

1::carlos::10000::NULL::
2::pedro::20000::NULL::
3::marcos::210000::NULL::
4::david::1000::NULL::
5::Michael::150000::NULL::
6::George::17200::NULL::
7::Javier::18000::NULL::

Necesito mostrarlos en una tabla HTML, pero necesito que salgan ordenados por la tercer columna de menor a mayor, mejor dicho deberia quedar asi:


4::david::1000::NULL::
1::carlos::10000::NULL::
6::George::17200::NULL::
7::Javier::18000::NULL::
2::pedro::20000::NULL::
5::Michael::150000::NULL::
3::marcos::210000::NULL::

con sql seria facil, pero usando archivos planos y teniendo en cuenta que el valor de la tercer columna se guarda como texto como lo deberia hacer ???

muchas gracias por la colaboracion:
  Responder Citando
Antiguo 18-ago-2008, 04:20   #2 (permalink)
Colaborador
jferrero se está portando bien
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 373
jferrero está desconectado
Respuesta: Organizacion de un arreglo por un campo?

Usando una transformada de Schwartz ( http://en.wikipedia.org/wiki/Schwartzian_transform ):

Código:
#!/usr/bin/perl
use strict;

my @fichero = qw(
    1::carlos::10000::NULL::
    2::pedro::20000::NULL::
    3::marcos::210000::NULL::
    4::david::1000::NULL::
    5::Michael::150000::NULL::
    6::George::17200::NULL::
    7::Javier::18000::NULL::
);

my @ordenado =
    map  { $_->[0]                 }
    sort { $a->[1] <=> $b->[1]     }
    map  { [ $_, (split '::')[2] ] }
    @fichero;

print "$_\n" for @ordenado;

__END__
  Responder Citando
Antiguo 20-ago-2008, 15:36   #3 (permalink)
charlygarcia ha deshabilitado el karma
 
Fecha de Ingreso: octubre-2007
Mensajes: 48
charlygarcia está desconectado
Respuesta: Organizacion de un arreglo por un campo?

gracias por la ayuda

la trasnformada es muy buena y la estoy usando bien, muchisisisisimas gracias jferrero
pero esta pregunta se debe a que una cosa es la organizacion por cadena y otra como numero,

Pues 10 es menor que 100 en numeros pero no sabria si "10" es menor que "100" y yo necesito organizar la salida del arreglo por el valor numerico
algo asi como

select * from tabla order by sueldo; //del sql

Esto funcionaria con perl ?

Muchas gracias por la ayuda.

Carlos
  Responder Citando
Antiguo 22-ago-2008, 08:06   #4 (permalink)
Colaborador
jferrero se está portando bien
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 373
jferrero está desconectado
Respuesta: Organizacion de un arreglo por un campo?

Si quieres hacer una ordenación alfabética, en lugar de numérica, cambia '<=>' por 'cmp'.
  Responder Citando
Respuesta
No hay votos aún.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code está Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado
Trackbacks está Desactivado
Pingbacks está Desactivado
Refbacks está Desactivado



La zona horaria es GMT -6. Ahora son las 17:17.
Políticas de Uso de Foros del Web


Message Board Statistics

SEO by vBSEO 3.3.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100