Gambas-it

Gambas3 => Programmazione => Topic aperto da: allegfede - 09 Marzo 2018, 18:42:56

Titolo: costruire un testo da dati in DB con eleganza
Inserito da: allegfede - 09 Marzo 2018, 18:42:56
CDT devo fare il file di configurazione di un programma linux (un demone ceh viene avviato all'avvio del computer), prendendo i parametri da un database.

C'e' un modo elegante per generare file di testo che non siano la pur efficente generazione riga per riga dello stesso?

Classi parser di qualche tipo che possano essere "istruite"? SED?

molto generico capisco .....
Titolo: Re:costruire un testo da dati in DB con eleganza
Inserito da: Gianluigi - 09 Marzo 2018, 22:48:18
molto generico capisco .....

Appunto  >:(

Non potresti essere un tantinello più preciso?
Ad esempio:
Devi ricavare i dati da un campo text di una tabella? Se si, come devi ordinarli, con quale criterio?
Titolo: Re:costruire un testo da dati in DB con eleganza
Inserito da: allegfede - 21 Marzo 2018, 18:24:47
ti copio incollo un file di configurazione compilato a mano.

Codice: [Seleziona]
general {
    dabmode 1
    nbframes 0
    syslog false
    tist true
    managementport 12720 ; 12720 per avere la gui che si interfaccia al mux
}

remotecontrol {
    telnetport 12721 ; la 12722 server a zeromq RC per avere le statistiche dalla GUI
    zmqendpoint "tcp://lo:12722"
}

ensemble {
    id 0x4fff ; you can also use decimal if you want
    ecc 0xe0  ;this is for italy by etsi papers .....
    local-time-offset auto  ; automatically calculate from system local time
                            ; or
    label "ODR_toscana-test"
    shortlabel "ODR_tosc"
}

services {
    srv-antennaradioesse { label "ANTENNA.R.ESSE" ;era ANTENNARADIOESSE, ma incompatibile con A.R.ESSE
     shortlabel "A.R.ESSE"
   id 0xa000
  }

    srv-controradio { label ".CONTRORADIO." ; era CONTRORADIO , ma incompatibile con CONTROR.
        shortlabel "CONTROR."
  id 0x5a73
}

    srv-novaradio { label "NOVARADIO ARCI"
    shortlabel "NOVARDIO"
    id 0x5063
     }

    srv-radio3network { label "Radio 3 Network"
        shortlabel "Radio 3" ; in realta' non hanno deciso lo short? rds?
  id 0xfffe
}

    srv-radioalleluia { label "RADIO ALLELUIA" ; in realta' non si sa esattamente
  shortlabel "ALLELUIA" ; ANCHE QUESTO NON SI SA ESATTAMENTE

  }

    srv-radiodiffusionepistoia { label "R.DIFFUSIONE.PT"
        shortlabel "R.DIF.PT"
  id 0x50c8
}

    srv-radiofirenze { label "RADIO FIRENZE"
       shortlabel "RFIRENZE"
       id 0x50a8
  }

    srv-radioincontrivaldichiana { label "RadioIncontriBlu"
         shortlabel "Incontri"
   id 0x548f
}

    srv-radiorosa { label "WWW.RADIOROSA.IT" ; era www.radiorosa.it , ma incompatibile con *ROSA*.
    shortlabel ".ROSA."
    id 0x5428
     }

    srv-radiosiena { label "RADIO.SIENA" ; era Radio Siena ma incompatibile con R:SIENA
     shortlabel "R.SIENA" ; ipotizzato
     id 0x5ac0
    }

    srv-radiosiena2 { label "Radio Siena 2"
      shortlabel "Siena 2"
      id 0xffaa      
     }

    srv-radiotoscana { label "RADIO TOSCANA"
       shortlabel "RTOSCANA"
       id 0x5aa7
      }

}

subchannels {
    sub-antennaradioesse {
        type dabplus
inputfile "tcp://*:9000"
        bitrate 64
protection 2
id 1
        zmq-buffer 40
        zmq-prebuffering 20
    }

    sub-controradio {
        type dabplus
        inputfile "tcp://*:9001"
        bitrate 64
protection 2
        id 2
        zmq-buffer 40
        zmq-prebuffering 20
    }

    sub-novaradio {
        type dabplus
inputfile "tcp://*:9002"
        bitrate 64
protection 2
id 3
        zmq-buffer 40
        zmq-prebuffering 20
    }

    sub-radio3network {
        type dabplus
        inputfile "tcp://*:9003"
        bitrate 64
protection 2
        id 4
        zmq-buffer 40
        zmq-prebuffering 20
    }

    sub-radioalleluia {
        type dabplus
inputfile "tcp://*:9004"
        bitrate 64
protection 2
id 5
        zmq-buffer 40
        zmq-prebuffering 20
    }

    sub-radiodiffusionepistoia {
        type dabplus
        inputfile "tcp://*:9005"
        bitrate 64
protection 2
        id 6
        zmq-buffer 40
        zmq-prebuffering 20
    }

    sub-radiofirenze {
        type dabplus
inputfile "tcp://*:9006"
        bitrate 64
protection 2
id 7
        zmq-buffer 40
        zmq-prebuffering 20
    }

    sub-radioincontrivaldichiana {
        type dabplus
        inputfile "tcp://*:9007"
        bitrate 64
protection 2
        id 8
        zmq-buffer 40
        zmq-prebuffering 20
    }

    sub-radiorosa {
        type dabplus
inputfile "tcp://*:9008"
        bitrate 64
protection 2
id 9
        zmq-buffer 40
        zmq-prebuffering 20
    }

    sub-radiosiena {
        type dabplus
        inputfile "tcp://*:9009"
        bitrate 64
protection 2
        id 10
        zmq-buffer 40
        zmq-prebuffering 20
    }

    sub-radiosiena2 {
        type dabplus
inputfile "tcp://*:9010"
        bitrate 64
protection 2
id 11
        zmq-buffer 40
        zmq-prebuffering 20
    }

    sub-radiotoscana {
        type dabplus
        inputfile "tcp://*:9011"
        bitrate 64
protection 2
        id 12
        zmq-buffer 40
        zmq-prebuffering 20
    }

}

components {
   
    comp-antennaradioesse {
type 0
service srv-antennaradioesse
        subchannel sub-antennaradioesse
;figtype 0x2 ;questo per lo stream dello slideshow ?
    }

    comp-controradio {
service srv-controradio
        subchannel sub-controradio
        ;figtype 0x2 ;questo per lo slideshow ?
    }

    comp-novaradio {
service srv-novaradio
        subchannel sub-novaradio
;figtype 0x2 ;questo per lo stream dello slideshow ?
    }

    comp-radio3network {
service srv-radio3network
        subchannel sub-radio3network
        ;figtype 0x2 ;questo per lo slideshow ?
    }

    comp-radioalleluia {
service srv-radioalleluia
        subchannel sub-radioalleluia
;figtype 0x2 ;questo per lo stream dello slideshow ?
    }

    comp-radiodiffusionepistoia {
service srv-radiodiffusionepistoia
        subchannel sub-radiodiffusionepistoia
        ;figtype 0x2 ;questo per lo slideshow ?
    }

    comp-radiofirenze {
service srv-radiofirenze
        subchannel sub-radiofirenze
;figtype 0x2 ;questo per lo stream dello slideshow ?
    }

    comp-radioincontrivaldichiana {
service srv-radioincontrivaldichiana
        subchannel sub-radioincontrivaldichiana
        ;figtype 0x2 ;questo per lo slideshow ?
    }

    comp-radiorosa {
service srv-radiorosa
        subchannel sub-radiorosa
;figtype 0x2 ;questo per lo stream dello slideshow ?
    }

    comp-radiosiena {
service srv-radiosiena
        subchannel sub-radiosiena
        ;figtype 0x2 ;questo per lo slideshow ?
    }

    comp-radiosiena2 {
service srv-radiosiena2
        subchannel sub-radiosiena2
;figtype 0x2 ;questo per lo stream dello slideshow ?
    }

    comp-radiotoscana {
service srv-radiotoscana
        subchannel sub-radiotoscana
        ;figtype 0x2 ;questo per lo slideshow ?
    }

}


outputs {
    ; Output RAW ETI NI to standard output
    ;stdout "fifo:///dev/stdout?type=raw"

    ; ZeroMQ output example
    ; Listen on all interfaces, on port 9100
    ;zmq  "zmq+tcp://*:9100"

    ; to send output to farsite cards Raw
    ; farsync "raw://sync0"

    ;to output to ETI file (abilita il throttle per non avere un file corrotto)
    ;file "file:///var/odrmux_out/testout.eti?type=raw"
   
    ;file "file:///var/odrmux_out/testout.eti?type=framed" ;NOT standard
    ;file "file:///var/odrmux_out/testout.eti?type=streamed" ;NOT standard

    ; Throttle output to real-time (one ETI frame every 24ms)
    ;throttle "simul://"

    edi {
destinations {
   
  ; multicast {
  ; destination "224.20.10.1"
  ;  source "192.168.0.107"
  ;  ttl 1
  ;  sourceport 14000
  ;  }
   
     unicast {
    ;destination "192.168.0.151"
destination "127.0.0.1"
    sourceport 14000
        ttl 1
              }
}
chunk_len 207
port 4100
        ;ttl 1
enable_pft true
tagpacket_alignment 8
dump false
verbose false
fec 2
    }


;net_udp "udp://192.168.1.4:1234"
;zmq "zmq+tcp://*:9100"
throttle "simul://"
}

Come vedete, ci sono dei "blocchi" ben definiti, e dei valori associati a specifici "campi", che sono diversi da emittente ad emittente.
Dovrei rifarne uno a partire da valori che possono cambiare, memorizzati in un DB.

Alla piu' brutta mi faccio tiga per riga, ma sono sicuro che c'e' qualche strumento informatico piu' agevole (..... che poi e' lo stesso blocco mentale che ho con l'html :-( )
Titolo: Re:costruire un testo da dati in DB con eleganza
Inserito da: vuott - 21 Marzo 2018, 18:29:48
Appunto  >:(

Non potresti essere un tantinello più preciso?


Gianluigi, non sapevi  :-\ che c'è il premio anche per questo nuovo indovinello ?
Titolo: Re:costruire un testo da dati in DB con eleganza
Inserito da: Gianluigi - 21 Marzo 2018, 18:38:44

Gianluigi, non sapevi  :-\ che c'è il premio anche per questo nuovo indovinello ?

Veramente no  :-\ ma approfitto per farti i complimenti, nell'altro hai vinto tu (Confezione di vino dopg e salsicce di porco)  :ok:
Titolo: Re:costruire un testo da dati in DB con eleganza
Inserito da: vuott - 21 Marzo 2018, 18:56:01
Confezione di vino dopg e salsicce di porco

Cioè... due cose che non posso neppure toccare !    :hard:
Titolo: Re:costruire un testo da dati in DB con eleganza
Inserito da: Gianluigi - 21 Marzo 2018, 19:00:33
Peccato  :'(

Allora che le mandi pure a me, anche io non posso ma a volte faccio strappi alla regola  ;D

Lato lavoro:
allegfede,
guarda un po questa discussione (http://www.gambas-it.org/smf/index.php?topic=6061.msg42952#msg42952) se per caso può aiutarti  :-\

 :ciao: :ciao: