rubrica
Gestione di una piccola rubrica con i comandi del dos.
Francesco Melis su uictech, 16\10\2014, h. 14.48.

Piccole utilit con i comandi del Dos.
Per le piccole esigenze di gestione casalinga di una rubrica di
nominativi con indirizzi e numeri di telefono  possibile evitare di
installare programmi aggiuntivi per questo scopo, usando gli strumenti
che ci offre il Dos.
Sottopongo quindi alla vostra attenzione la gestione di una rubrica
costruita e gestita esclusivamente con i comandi del Dos.
Si potrebbero anche scrivere i comandi direttamente dal prompt del Dos
ma se questi li inseriamo in un file batch le cose diventano molto pi
comode.
Di seguito quindi descrivo una (lunga) procedura didattica per la
generazione di una rubrica. Di seguito star a voi estrapolare i punti
che poi serviranno per essere operativi nella pratica.
Per forza di cose la descrizione che far di seguito sar dettagliata, e
forse ridondante per qualcuno, ma poi la gestione in pratica sar una
cosa semplicissima.

Per prima cosa apriamo il prompt del Dos nella finestra nella quale
intendete crearvi la vostra rubrichetta.
A tale scopo da risorse del computer ci posizioniamo nella
visualizzazione ad elenco che contiene il nome della cartella nella
quale volete creare, e gestire, la vostra nuova rubrichetta.
Selezioniamo il nome della cartella se gi non lo avete fatto.
Premiamo shift men applicazione e scendiamo con la freccia gi fino
alla voce "Apri finestra di comando qui" e diamo invio.
Ora ci troviamo nella finestra del Dos, in attivit nella cartella
scelta, con il cursore posizionato sul prompt.
Creiamo un file rubrica.txt, se gi non ne avete uno gi pronto,
digitando dal prompt: notepad rubrica.txt
Si aprir il blocco note familiare di Windows, proprio lui, che vi
avvertir, in una finestrella di dialogo e con un "Boing!", che il file
non esiste e se volete crearlo.
Premiamo il pulsante ok per crearlo.
Digitiamo quindi un po' di nominativi con indirizzi, numeri di telefono
e quant'altro purch ogni nominativo con le sue informazioni sia scritto
tutto su una riga.
Inoltre, suggerisco, di cominciare con il cognome ed il nome, giusto per
dare un po' di coerenza alla rubrica ed anche perch le fasi successive
di ordinamento alfabetico della rubrica lavorerebbero in modo coerente
se cominciamo con il cognome ed il nome.
Dopo aver scritto qualche nominativo chiudete il blocco note con alt F4
e confermate il salvataggio.

Se volete, per fare gli esperimenti, e per avere un'idea di come
andrebbero scritti i records, potete incollare qualche nominativo che ho
scritto a caso incollando i nomi fittizi elencati di seguito

Neri Aldo via Cellini 1 Firenze telefono 11111 tecnico informatico
Rossi Mario via Buonarroti 2 Roma telefono 22222 idraulico
Bianchi Antonio via Tiziano 3 Trieste telefono 33333 elettricista
Zevi Bruno via Tintoretto 4 Roma telefono 44444 muratore e idraulico ma
solo il fine settimana
Bruni Claudio via Leonardo 5 Roma telefono 55555 Copisteria cara come il
fuoco
Bruni Antonello via Borromini 6 Rieti telefono 66666 Pizza a domicilio
Rossi Marcello via Raffaello 7 Viterbo telefono 77777 Accompagni a 8
euro l'ora
Capatosta Gennaro via Veronese 8 Napoli telefono 88888 piccoli lavori di
ristrutturazione
Ventresca Pasquale via Botticelli 9 Napoli telefono 99999 imbianchino
Papaleo Adriano via Guercino 10 Bologna telefono 101010 imbianchino

Tutti i nominativi che inserirete nella vostra rubrica, uno per riga,
possono essere scritti anche con altri editor di testo, se preferite.
E' importante, e comodo, che i nominativi possano essere scritti, cos
come vi pervengono, inserendo nella prima riga del file, o anche alla
fine se preferite. Ovviamente se inserite un nuovo record in testa al
file, alla fine della scrittura delle informazioni di quel nominativo
dovrete dare invio altrimenti vi trovereste due nominativi sulla stessa
riga. Viceversa se scrivete il record in coda sarebbe bene, prima di
cominciare a scrivere le informazioni, dare invio per andare a capo per
far si che il nuovo record si trovi su una nuova riga.
La cosa importante  che non vi dovete curare assolutamente
dell'ordinamento. Quindi, nel file, scrivete i records a caso, per
esempio in testa al file appena aperto.

Ora il file rubrica.txt  pronto per essere gestito. Nulla toglie,
ovviamente, che, se anzich nominativi ci mettete autori e titoli di
canzoni o libri, la cosa funziona ugualmente.

Generiamo ora, in automatico, un altro file chiamato rubricaordinata.txt
che conterr i records contenuti nel file rubrica.txt ma ordinati. Sar
su questo file che poi andremo a fare, comodamente, le ricerche.
Quindi, riepilogando, i nuovi nominativi vanno inseriti nel file
rubrica.txt, mentre la ricerca andr fatta nel file ordinato
rubricaordinata.txt.
Vedremo poi, come, attraverso l'uso di files batch, potremo
automatizzare di molto le procedure.

Digitiamo dal prompt del dos il comando:
sort  simbolo di minore  rubrica.txt  simbolo di maggiore  rubricaordinata.txt

Spiegazione: viene usato il comando sort che effettua ordinamenti su
stringhe di dati. La sort prende in input il file rubrica.txt e
restituisce in output il file rubricaordinata.txt ordinato
alfabeticamente. Il ridirezionamento dei dati in input viene effettuato
per mezzo del simbolo di minore e quello in output dal simbolo di maggiore.

Provate ad aprire il file rubricaordinata.txt con il comando:
type rubricaordinata.txt | more
oppure, anche, se preferite, con:
notepad rubricaordinata.txt
e vedrete che il file riporta correttamente i nominativi ordinati in
ordine alfabetico.

Passiamo ora alla fase di ricerca dei nominativi.
Il comando dos da dare :
find /I "nominativo_da_cercare" rubricaordinata.txt | more
nel quale la stringa da cercare va racchiusa obbligatoriamente fra
virgolette alte (shift 2).

Spiegazione: il comando find trova la stringa nominativo_da_cercare
racchiusa tra virgolette alte nel file rubricaordinata.txt e visualizza
i risultati una pagina alla volta. La ricerca  insensibile alle
maiuscole/minuscole.

Come anticipato prima vediamo ora come, con l'uso dei files batch, le
procedure diventino molto pi semplici e pratiche.
Con un file batch possiamo astrarre dai dettagli dei comandi del Dos che
a qualcuno potrebbero risultare arcani e ridurre cos la complessit.
Il file batch trova.bat, che citer pi avanti, in effetti fa il grosso
del lavoro ed in pi semplifica l'uso della rubrica.
L'inserimento andr fatto sempre nel file rubrica.txt con lo strumento
che pi vi aggrada, per esempio il blocco note, senza curarsi
dell'ordinamento.
La ricerca verr fatta con il file batch trova.bat, (che operativamente
lavora in maniera invisibile all'utente sullo stesso file rubrica.txt in
quanto verranno creati dei files temporanei che riscrivono alla fine il
file rubrica.txt con gli stessi dati ordinati).

La sintassi  semplicissima, dovrete scrivere al prompt dei comandi:
trova "nominativo_da_cercare"
Con la stringa di ricerca racchiusa fra virgolette alte e verranno
visualizzati, uno per riga, ordinati, tutti i record che contengono la
stringa di ricerca.
Per esempio se digitate: trova "rossi"
trover tutti i nominativi di cognome Rossi con tutte le informazioni
relative uno per riga.
L'output sar:
---------- RUBRICA.TXT
Rossi Marcello via Raffaello 7 Viterbo telefono 77777 Accompagni a 8
euro l'ora.
Rossi Mario via Buonarroti 2 Roma telefono 22222 idraulico

se digitate: trova "rossi mario" trover solo le informazioni relative
al nominativo Rossi Mario.
L'output sar.
---------- RUBRICA.TXT
Rossi Mario via Buonarroti 2 Roma telefono 22222 idraulico

Nota bene: se si fa una ricerca con il parametro "Bianchi" trover:
---------- RUBRICA.TXT
Bianchi Antonio via Tiziano 3 Trieste telefono 33333 elettricista
Papaleo Adriano via Guercino 10 Bologna telefono 101010 imbianchino
Ventresca Pasquale via Botticelli 9 Napoli telefono 99999 imbianchino

Nella risposta compaiono anche i records di Papaleo e Ventresca poich
in essi compare la parola "imbianchino" che contiene come sottostringa
"bianchi".

File batch: Per creare il file batch trova.bat potete copiare ed
incollare le righe seguenti in un file di testo creato con il blocco
note e chiamarlo trova.bat. Il file batch dovr risiedere nella stessa
cartella ove si trova la rubrica.

@echo off
cls

REM Gestione rubrica - Francesco Melis (2014)

if not exist rubrica.txt goto errore1
sort  simbolo di minore  rubrica.txt  simbolo di maggiore  rubricaordinata.txt
copy rubricaordinata.txt rubrica.txt  simbolo di maggiore  nul
del rubricaordinata.txt  simbolo di maggiore  nul
if %1$==$ goto errore2
find /I %1 rubrica.txt | more
goto fine

:errore1
echo Attenzione il file rubrica.txt non esiste!
goto fine

:errore2
echo Attenzione! manca il nominativo da cercare...
echo Sintassi: trova "nominativo_da_cercare"
***
d.

era un poco che dovevo rispondere a questo messaggio ma per mancanza di
tempo non lo ho mai fatto!
posso capire che costruire una cosa come la tua possa essere una cosa
interessante, ma anche forse pi che altro un divertimento!
per io mi meraviglio di una cosa, di cui ti faccio una domandina breve
breve:
ma perch non usare la rubrica di windows?
nella rubrica di windows si possono scrivere indirizzi, numeri telefonici di
rete fissa e cellulari, si possono mettere perfino i compleanni, oppure
anche i promemoria, ma cosa vogliamo di pi?
credo che usare la rubrica di windows, io a dire il vero non la uso pi, ma
la usavo moltissimo anni addietro e andava proprio a dovere!
piuttosto direi che dare una chiara spiegazione del funzionamento della
rubrica di windows potrebbe essere interessante!
:fine
la tua  una osservazione pertinente.
Certo, se l'obbiettivo  solo quello della gestione della rubrichetta
telefonica, allora la rubrica di Windows va pi che bene. Anzi,
l'esercizio di farla in Dos appare proprio come una mera elucubrazione
mentale e null'altro.
Tra le righe nel mio post ho scritto, e lasciato intendere, per, che
nel file di testo si poteva inserire qualunque informazione, anche la
pi eterogenea, in modo da rendere lo strumento un po' pi versatile.
La rubrica di Windows, come noto, ti limita all'inserimento delle voci
previste dai campi del programma e non c' possibilit di generalizzare
l'archivio della rubrica per farne un microdatabase pi generale per
scopi pi generali. La mia idea invece era quella di disporre di uno
strumento un po' pi elastico.
Diciamo anche che la mia proposta  partita come una descrizione di
archivio molto semplice, lasciandone intravedere comunque le
possibilit, per saggiare un po' l'interesse alla cosa. In effetti non
ho, per non appesantire troppo il post, che gi lo era abbastanza, fatto
cenno al fatto che, sempre usando esclusivamente i comandi del Dos, si
sarebbero potute fare anche interrogazioni del tipo:
"Trovare tutti gli idraulici o gli imbianchini"
Oppure:
"Trovare tutti i nominativi di Roma abitanti sulla via Appia"
Cosa non possibile con la rubrica di windows perch nel campo di ricerca
puoi inserire solo il nome o il cognome. Anzi, se la rubrica  ordinata
per cognome e si vuole fare una ricerca per nome occorre dapprima
alterare l'ordine impostando prima la visualizzazione del nome e poi del
cognome. E comunque non si pu, che io sappia, ricercare con criteri
diversi da questi.

In effetti, io, per i miei scopi personali, gestisco l'archivio dei miei
files, compresi i brani musicali, proprio con un archivio in Dos fatto
pi o meno in questa  maniera.
Il mio archivio che  un po' pi sofisticato di questo che ho proposto,
perch nella mia proposta volevo mantenere un profilo di semplicit, in
effetti consente di fare cose di questo tipo:
1) trovare tutti i records che contengono almeno una parola fra quelle
immesse come parametri al file batch Trova. Cio fa una ricerca con l'OR
dei parametri per cui la ricerca restituisce risultati se esistono
records che contengono una o pi delle parole immesse a parametro.
Esempio:
Trovare tutti i records dei brani di Celentano, Mina, Tenco.
La ricerca mi restituisce quindi tutti i brani in archivio di Celentano,
di Mina, di Tenco o perlomeno di quegli autori citati e presenti
nell'archivio.
2) Inoltre la ricerca mi consente anche di fare l'AND dei parametri cio
mi trova tutti i records che contengono simultaneamente tutti i
parametri immessi.
Per esempio posso fare ricerche del tipo:
Trovare tutti i brani di Jimi Hendrix suonati a Woodstock.
Lui mi trova non tutti i brani di Hendrix, ma solo quelli che Lui ha
suonato a Woodstock.
Oppure potrei chiedere:
Trovare tutti i brani di Mietta e Minghi nei quali essi hanno suonato
insieme ma non i singoli brani di Mietta o di Minghi. (Per inciso, per
difendere la mia reputazione, n Mietta, n Minghi, albergano nelle mie
collezioni che comprendono solo Rock dal 1964 al 1980).
Oppure potrei chiedere ancora:
Trovare tutti, e soli, gli idraulici di Roma abitanti sulla via Appia.
Non qualunque idraulico ma solo quelli di Roma e che abitino sulla via
Appia.

Conclusione:
L'obbiettivo era quello di proporre per gradi, incrementalmente, lo
strumento pi sofisticato, ma evidentemente il Dos non interessa pi.

P.S.
La voglia mi  calata per cui non  mia intenzione ritornare sull'argomento.
