🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.perl
4 messages
4 total messages Started by Robert Wysocki Thu, 11 Jul 2013 19:29
Ze sciezek do struktury html
#51437
Author: Robert Wysocki
Date: Thu, 11 Jul 2013 19:29
14 lines
426 bytes
Bry,

Cos mi dzis myslenie nie idzie, moze bedziecie miec jakies pomysly;
mam wiele scalarow postaci:
'grupa/podgrupa/host/wykres.png'
z tym, ze podgrup moze byc [0,inf)

Chce na podstawie tych sciezek wygenerowac zagniezdzona strukture (html)
taka, ze grupa zawiera wszystkie swoje hosty i podgrupy, podgrupa zawiera
wszystkie swoje hosty i podgrupy itd a kazdy host zawiera swoje wykresy.

Jakies pomysly na algorytm?

R.
Re: Ze sciezek do struktury html
#51438
Author: "Stachu 'Dozzie'
Date: Thu, 11 Jul 2013 20:13
67 lines
1494 bytes
On 2013-07-11, Robert Wysocki <rmwpl.spam@gmail.com> wrote:
> Bry,
>
> Cos mi dzis myslenie nie idzie, moze bedziecie miec jakies pomysly;
> mam wiele scalarow postaci:
> 'grupa/podgrupa/host/wykres.png'
> z tym, ze podgrup moze byc [0,inf)
>
> Chce na podstawie tych sciezek wygenerowac zagniezdzona strukture (html)
> taka, ze grupa zawiera wszystkie swoje hosty i podgrupy, podgrupa zawiera
> wszystkie swoje hosty i podgrupy itd a kazdy host zawiera swoje wykresy.
>
> Jakies pomysly na algorytm?

1. Rozbiæ skalar.
2. Rozbity skalar umie¶ciæ w drzewiastej strukturze danych.
  * wêze³ odpowiadaj±cy wykresowi to li¶æ
  * wêze³ odpowiadaj±cy podgrupie ma dwa pola: listê hostów i hasz grup
3. Powtarzaæ.

Co¶ w tym stylu:
#v+
#!/usr/bin/perl

use warnings;
use strict;

my @data = <DATA>;
chomp @data;

my $root_struct = {
  hosts  => [],
  groups => {},
};

for my $d (@data) {
  my @parts = split m[/], $d;
  my $host = pop @parts;

  my $where = $root_struct;
  for my $p (@parts) {
    $where->{groups}{$p} ||= { hosts => [], groups => {} };
    $where = $where->{groups}{$p}
  }
  push @{ $where->{hosts} }, $host;
}

__DATA__
server/mysql/wrmysql01
server/mysql/wrmysql02
server/mysql/krmysql01
server/pgsql/krpgsql01
server/pgsql/krpgsql02
server/www/apache/wawww01
server/www/apache/wawww02
server/www/nginx/wawww03
server/www/gdproxy01
server/www/gdproxy02
server/www/gdproxy03
server/wrgeneric01
server/wrgeneric02
server/wrgeneric03
#v-

--
Secunia non olet.
Stanislaw Klekot
Re: Ze sciezek do struktury html
#51439
Author: Robert Wysocki
Date: Thu, 11 Jul 2013 20:37
12 lines
421 bytes
Dnia Thu, 11 Jul 2013 20:13:24 +0000, Stachu 'Dozzie' K. napisał(a):

> 1. Rozbić skalar.
> 2. Rozbity skalar umieścić w drzewiastej strukturze danych.
>   * węzeł odpowiadający wykresowi to liść * węzeł odpowiadający
>   podgrupie ma dwa pola: listę hostów i hasz grup
> 3. Powtarzać.

Bardzo fajne rozwiazanie, wielkie dzieki.
Gdy patrze na kod, to sie zastanawiam, dlaczego sam na to nie wpadlem :)

R.
Re: Ze sciezek do struktury html
#51440
Author: "Stachu 'Dozzie'
Date: Thu, 11 Jul 2013 20:54
21 lines
809 bytes
On 2013-07-11, Robert Wysocki <rmwpl.spam@gmail.com> wrote:
> Dnia Thu, 11 Jul 2013 20:13:24 +0000, Stachu 'Dozzie' K. napisa³(a):
>
>> 1. Rozbiæ skalar.
>> 2. Rozbity skalar umie¶ciæ w drzewiastej strukturze danych.
>>   * wêze³ odpowiadaj±cy wykresowi to li¶æ * wêze³ odpowiadaj±cy
>>   podgrupie ma dwa pola: listê hostów i hasz grup
>> 3. Powtarzaæ.
>
> Bardzo fajne rozwiazanie, wielkie dzieki.
> Gdy patrze na kod, to sie zastanawiam, dlaczego sam na to nie wpadlem :)

Mo¿e nie robi³e¶ takich cyrków z perllol? Ja mam tendencjê do
przesuwania z³o¿ono¶ci programu z instrukcji do struktur danych.
Kiedy¶ mnie nawet który¶ z ch³opaków (niestety nie pamiêtam który, a nie
mogê siê dokopaæ) po perlgolfie skomplementowa³, ¿e go zmusi³em do
doczytania o strukturach.

--
Secunia non olet.
Stanislaw Klekot
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads