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
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."
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
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.
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