Keresés

Új hozzászólás Aktív témák

  • Mijo

    tag

    válasz Dumas #46 üzenetére

    Szia!
    Milyen struktúrában található az adatod?

    Tömb esetén mondjuk legyen ilyen:

    $data = [
    [ 'A', '2012.08.24. 10:00' ],
    [ 'B', '2012.08.24. 08:00' ],
    [ 'C', '2012.08.24. 12:00' ],
    ];

    Ezután szépen átalakítjuk:

    my @sorted = sort { $a->[1] cmp $b->[1] } @$data;

    Ez alap esetben szövegeket hasonlít össze, ha nem ilyen szép az időformátumod akkor érdemes egy függvényhívással ilyenre alakítani, ami a fenti linken a map { } @data rész lenne.

    my @sorted = map { $_->[1] } # visszavesszük az eredeti rekordot
    sort { $a->[0] cmp $b->[0] } # rendezünk timstamp szerint
    map { [ make_timestamp( $_->[1] ), $_ ] } # elkészítjük a [ timestamp, [eredeti rekord] ] struktúrát
    @$data; # bemenet

    Remélem ennek segítségével sikerül megoldani, de kérdezz bátran, ha elakadasz!
    Üdv: Mijo

    ''Mit csinálnak a Windows gépek klaszterben? Hát egymás reset gombjait nyomkodják mikor másik elszáll...'' by Xebi@sg.hu

  • Mijo

    tag

    válasz Dumas #48 üzenetére

    Szia!

    Ha ilyen bonyolult az adatok kinyerése, talán inkább előbb írjad ki egy fájlba, majd a Tie::File modullal nyisd meg a fájlt, és rendezd a fenti módszerrel. Lehet egy kis tesztelést igényel, hogy mekkora cache-t kapjon a modul, hogy a jellemzően előforduló fájlmérettel gyorsan megbírkózzon, és ne kelljen a vinyóra pakolni folyamatosan.
    Amit még tehetsz, hogy egyből Tie::File-ba pakolod az adatokat, majd a végén rendezel újabb megnyitás nélkül.

    Üdv: Mijo

    ''Mit csinálnak a Windows gépek klaszterben? Hát egymás reset gombjait nyomkodják mikor másik elszáll...'' by Xebi@sg.hu

Új hozzászólás Aktív témák