Forum Doku Wiki Blog

Forumsarchiv 2007, November
Perl sort hexnumber

archivierte Beiträge lesen

  1. (PERL) Perl sort hexnumber von Alinghi, 25. 11. 2007, 13:17

Perl sort hexnumber

Der folgende Beitrag wurde am 25. 11. 2007, 13:17 Uhr von Alinghi veröffentlicht.

Hi zusammen,

kann mir jemand verraten, wie ich hexadezimal sortieren kann mit perl?

Quasi sowas wie hier ...
# sort numerically ascending
@articles = sort {$a <=> $b} @files;
... bloss eben mit hexzahlen.

Danke.

ciao,
Alinghi

Perl sort hexnumber

Der folgende Beitrag wurde am 25. 11. 2007, 13:27 Uhr von Sven Rautenberg veröffentlicht.

Moin!

> kann mir jemand verraten, wie ich hexadezimal sortieren kann mit perl?

Genauso wie Dezimalzahlen: Als Zahl. Mach aus dem Hex eine Integer, der sortiert sich dann fast von selbst. Und für die Ausgabe formatierst du ihn mit printf als Hex.

 - Sven Rautenberg
--
"Love your nation - respect the others."

Perl sort hexnumber

Der folgende Beitrag wurde am 25. 11. 2007, 13:32 Uhr von Alinghi veröffentlicht.

Hi,
> Moin!
>
> > kann mir jemand verraten, wie ich hexadezimal sortieren kann mit perl?
>
> Genauso wie Dezimalzahlen: Als Zahl. Mach aus dem Hex eine Integer, der sortiert sich dann fast von selbst. Und für die Ausgabe formatierst du ihn mit printf als Hex.

my @alp_sorted = sort { lc($a) cmp lc($b) } @unsorted;

So tut es auch. Danke

ciao,
Alinghi

Perl sort hexnumber

Der folgende Beitrag wurde am 25. 11. 2007, 23:11 Uhr von MudGuard veröffentlicht.

Hi,


my @unsorted = ( "10", "A", "A0" );

> my @alp_sorted = sort { lc($a) cmp lc($b) } @unsorted;

==> @alp_sorted ist ("A", "A0", "10") bzw. dezimal (10, 160, 16).

Deine Methode funktioniert nur, wenn Deine Strings alle dieselbe Stellenzahl haben (also im Beispiel ("10", "0a", "A0") statt ("10", "a", "a0"))

cu,
Andreas
--
Warum nennt sich Andreas hier MudGuard?
O o ostern ...

Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.

Perl sort hexnumber

Der folgende Beitrag wurde am 25. 11. 2007, 18:15 Uhr von Horst veröffentlicht.

Hallo,
>
> kann mir jemand verraten, wie ich hexadezimal sortieren kann mit perl?

hex() ist Dein Freund:

    hex EXPR
    hex     Interprets EXPR as a hex string and returns the corresponding
            value. (To convert strings that might start with either 0, 0x,
            or 0b, see the oct entry elsewhere in this document.) If EXPR is
            omitted, uses "$_".

                print hex '0xAf'; # prints '175'
                print hex 'aF';   # same

            Hex strings may only represent integers. Strings that would
            cause integer overflow trigger a warning.

so also
sort { hex($a) <=> hex($b) } @hexn_array

Viele Grüße,
Horst Haselhuhn

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4