Newsgroup: it.comp.lang
Titolo: [CONFRONTO] Quale linguaggio?

Ho la necessità di fare leggere un DB formato da nominativi e poco
altro ad un cliente che ha una rete formata da un server linux e
client misti linux/windows.
Premetto che io di linux non so nulla. Pensavo che la soluzione poteva
essere fare qualcosa leggibile attraverso un browser. Io conosco ASP,
ma sui PC linux penso non funzioni. Inoltre anche sulle macchine Win
sarebbe necessario installare un PWS.
Cosa mi suggerite?
L'archivio per il momento è in ASCII, ma potrei, eventualmente
trasformarlo in qualche altro formato.
Grazie
Ciao

 Cosa mi suggerite?
La realizzazione di un'applicazione web mi pare una buona idea, visti
i vincoli che hai enumerato. Se dovessi farlo io credo che scriverei
qualcosa in Perl, avvalendomi dell'ottimo modulo Class::DBI [1] e del
Template Toolkit [2,3]. Il tutto supponendo di poter leggere i dati
da qualcosa che si possa interfacciare a DBI (ad esempio un database
MySQL, ed e` un task facile passare da un file di testo ad una tabella
SQL).
I moduli che cito forniscono astrazioni di livello piuttosto elevato,
al punto che posso darti un'idea di come si lavora con un esempio 
piccolo, se vuoi banale, ma completo. 
0. Immaginiamo di avere una tabella di nominativi fatta cosi`:
     CREATE TABLE clienti (
        id int unsigned not null auto_increment,
        nome varchar( 50 ),
        cognome varchar( 50 ),
        indirizzo varchar( 256 ),
        primary key( id )
     );
1. Per prima cosa si prepara una classe (chiamamola Olmof::DBI, 
   ad esempio) nella quale definiamo i dati per la connessione al DB.
     package Olmof::DBI;
     use base 'Class::DBI'; # la superclasse e` Class::DBI
     Olmof::DBI->set_db( Main => 'dbi:mysql:olmof'
                                , 'login'
                                , 'password' );
2. Ora scriviamo la classe vera e propria, le cui istanze 
   rappresenteranno i record della tabella:
     package Olmof::Cliente;
     use base 'Olmof::DBI';
     use strict;
     use warnings;
 
     Olmof::Cliente->table('clienti');
     Olmof::Cliente->columns( All => qw/ id 
                                         nome
                                         cognome
                                         indirizzo
                                       / );
3. Basta. Class::DBI provvede automaticamente a generare i metodi
   per il fetch e lo store di record, gli accessor/mutator per 
   ogni campo, un metodo search() per impostare criteri di 
   selezione, e cosi` via.
Vediamo di usare la classe appena creata per fare qualcosa di utile.
   #!/usr/bin/perl
 
   use strict;
   use warnings;
   use Olmof::Cliente;
   use Template;
   my $template = Template->new(); 
   my $clienti = Olmof::Cliente->retrieve_all();
 
   $template->process( 'list.tt2', { clienti => $clienti } );
Abbiamo finito presto anche questa volta. Manca soltanto il 
template 'list.tt2', al quale abbiamo passato l'iteratore 
$clienti, che fornira` uno alla volta tutti gli oggetti di classe
Olmof::Cliente, dei quali potremo chiamare i metodi che ci piacciono.
I template sono scritti con una sintassi simile a quella del Perl,
ma semplificata.
   [% WHILE (c = clienti.next) %]
     [% 
c.id
 %]
     [% c.nome %]
     [% c.cognome %]
     [% c.indirizzo %]
   [% END %]
Spero che questo brevissimo esempio si possa rivelare utile.
A disposizione su it.comp.lang.perl, eventualmente.
a presto,
S.
[1] 
http://search.cpan.org/~tmtm/Class-DBI-0.96/lib/Class/DBI.pm
[2] 
http://search.cpan.org/~abw/Template-Toolkit-2.13/lib/Template.pm
[3] 
http://www.oreilly.com/catalog/perltt/
-- 
Stefano Rodighiero      |  
http://larsen.perlmonk.org
mailto:
lar...@perl.it
   |  
http://www.perl.it