/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
Datastruktur til sorteret præsentation på ~
Fra : Steen Suder


Dato : 03-02-08 10:55

Jeg har nogle data - ca. 3-400 poster - med ca. seks felter i hver. Disse
ligger i en flad tekstfil.

De bruges naturligvis af det relaterede system, men præsenteres lige så ofte
på webside. Alt er PERL eller shell (på Linux).
Nu har brugerne af systemet ytret ønske om at kunne sortere kolonnerne på
websiden for bedre at kunne finde den ønskede post.

Jeg forestiller mig noget, hvor jeg parser mine tekstdata ind i "noget"/en
struktur, der gør det nemt at bede om at få data ud sorteret på en specifik
kolonne stigende eller faldende f.eks.

Findes der "noget PERL", der kan gøre det nemt for mig at lave dette nummer?
(Uden at jeg skal til at rode med RDBMS som MySQL etc.)


NB
Jeg har været vant til at klare mig uden "ekstern" kode, hvorfor jeg ikke er
så godt kendt med div. udvidelsesmoduler.


--
Steen Suder
Prøv at forestille dig, at du er en anden, og læs så din artikel igennem
inden du sender den. Alle har interesse i, at du staver og formulerer
dig, så godt du kan. På den måde forstås det lettere, hvad du skriver.

 
 
Thorbjørn Ravn Ander~ (03-02-2008)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 03-02-08 11:10

Steen Suder <sfs_news_spam@suder.dk> writes:

> Jeg forestiller mig noget, hvor jeg parser mine tekstdata ind i "noget"/en
> struktur, der gør det nemt at bede om at få data ud sorteret på en specifik
> kolonne stigende eller faldende f.eks.

Kunsten er at lave en sort på den ønskede nøgle. I Perl kaldes det
"Schwartzian transformation".

Kort forklaring her:
http://perl.plover.com/TPC/1998/Hardware-notes.html#Schwartzian_Transform
--
Thorbjørn Ravn Andersen

Michael Zedeler (03-02-2008)
Kommentar
Fra : Michael Zedeler


Dato : 03-02-08 11:12

Steen Suder wrote:
> Jeg har nogle data - ca. 3-400 poster - med ca. seks felter i hver. Disse
> ligger i en flad tekstfil.
>
> De bruges naturligvis af det relaterede system, men præsenteres lige så ofte
> på webside. Alt er PERL eller shell (på Linux).
> Nu har brugerne af systemet ytret ønske om at kunne sortere kolonnerne på
> websiden for bedre at kunne finde den ønskede post.
>
> Jeg forestiller mig noget, hvor jeg parser mine tekstdata ind i "noget"/en
> struktur, der gør det nemt at bede om at få data ud sorteret på en specifik
> kolonne stigende eller faldende f.eks.
>
> Findes der "noget PERL", der kan gøre det nemt for mig at lave dette nummer?
> (Uden at jeg skal til at rode med RDBMS som MySQL etc.)

Ja. sort kan sortere lister efter udtryk du selv vælger. F. eks.:

@a = (
   { key => 1, value => 'b'},
   { key => 3, value => 'd'},
   { key => 2, value => 'c'},
   { key => 0, value => 'a'}
);

print
   join( ", ",
      map { $_->{value} }
         sort { $a->{key} <=> $b->{key} } @a
   ), "\n";

Så mit forslag er at læse hele filen ind i en datastruktur som f. eks.
kunne være en liste med hash-referencer og dernæst køre sort på den. Det
burde ikke tage lang tid hvis filen ikke er større.

Se under "sort" på perlfunc-manual-siden.

Mvh. Michael.

Hans Jørgen Jakobsen (03-02-2008)
Kommentar
Fra : Hans Jørgen Jakobsen


Dato : 03-02-08 12:53

On Sun, 03 Feb 2008 10:55:02 +0100, Steen Suder wrote:
> Jeg har nogle data - ca. 3-400 poster - med ca. seks felter i hver. Disse
> ligger i en flad tekstfil.
>
> De bruges naturligvis af det relaterede system, men præsenteres lige så ofte
> på webside. Alt er PERL eller shell (på Linux).
> Nu har brugerne af systemet ytret ønske om at kunne sortere kolonnerne på
> websiden for bedre at kunne finde den ønskede post.
>
> Jeg forestiller mig noget, hvor jeg parser mine tekstdata ind i "noget"/en
> struktur, der gør det nemt at bede om at få data ud sorteret på en specifik
> kolonne stigende eller faldende f.eks.
>
> Findes der "noget PERL", der kan gøre det nemt for mig at lave dette nummer?
> (Uden at jeg skal til at rode med RDBMS som MySQL etc.)
>
>
> NB
> Jeg har været vant til at klare mig uden "ekstern" kode, hvorfor jeg ikke er
> så godt kendt med div. udvidelsesmoduler.

Ud over mulighedden for server side sortering findes der flere javascript
moduler der kan klare sortering af tabeller ud fra kolonner i browseren.
Prøv at google "javascript html table sort".

På et tidspunkt prøvede jeg en. Den blev dog lidt langsom med en tabel med
5-7000 elementer. Det største problem var dog at ville være brug for noget
custom sortorder på 2 af kolonnerne.
/hjj
>
>

Søg
Reklame
Statistik
Spørgsmål : 177416
Tips : 31962
Nyheder : 719565
Indlæg : 6407859
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste