------------------------- FORMATO DEL FILE DI INPUT DI RUBRICA ITALIANA ------------------------- Il formato dei dati di imput e un file plain-text in cui i campi sono divisi dal carattere di tabulazione, il testo inserito fra apici e i records salvati su diverse linee. La prima riga non contiene un records ma solo le intestazioni dei campi ("cod"\t"nome"\t"cognome"...\n) questa riga e` per ora obbligatoria. Attualmente Rubrica Italiana e` predisposta per ignorare il case (maiuscola/minuscola) dell'intestazione dei campi. Occorre fare attenzione che ogni intestazione di campo sia unica indifferentemente dalle minuscole/maiuscole. Le successive righe contengono i dati ma esistono degli obblighi: - il primo campo, che chiamero` codice o id_number, deve essere nella forma "#nnn" [1], dove nnn sono tre cifre decimali; - il carattere # non deve essere utilizzato da nessuna parte eccetto che per aprire un codice [2]; - il carattere " deve essere utilizzato solo per aprire e chiudere il contenuto dei campi, mai al loro interno; - il codice numerico deve essere unico per ogni records in quanto lo identifichera` durante l'elaborazione del programma; - un campo che si desidera vuoto deve essere segnalato come "_" [3]. Il carattere " (doppio apice) č sostituito in input da tastiera in '' (doppio apostrofo) questo impedisce di corrompere il database in maniera accidentale [4]. Il carattere # (cancelletto) č sostituito in input da tastiera in spazio questo impedisce di corrompere il database in maniera accidentale. Il carattere # (cancelletto) pur non esendo utilizzabile nei nomi dei campi od all'interno di essi č perņ č utilizzabile nella sequenza a meno di conversione opportuna (e automatica). Il carattere % pur essendo un codice che delimita i campi puņ essere utilizzato senza problemi dalla versione 0.32 in poi. L'ultima riga serve per formattare la visualizzazione della scheda. Questa riga e` per il momento obbligatoria ed unica [5]. La sintassi e' piuttosto facile, ma e' altrettanto facile NON vedere gli errori di battitura Se qualcosa non funziona ricontrollate attentamente ciņ che avete scritto in quella riga. La sintassi e` riportata in questo esempio: #seq: "nome: %nome%\ncognome: %cognome%" La composizione dei caratteri e` la seguente: \n andata a capo '' carattere " =||= carattere # Attualmente solo la composizione di \n e` funzionalmente gli altri caratteri non possono ancora essere scritti pena il non funzionamento. Inoltre la stringa inserita fra le freccie ->#seq: "<- e` utilizzata da Rubrica Italiana per riconoscere i propri files: se tale stringa viene alterata Rubrica Italiana si rifiutera` di aprire il file. [1] Il codice di tre cifre (numeriche 1...9) e` attualmente una condizione necessaria al funzionamento. [2] in futuro questa limitazione vera` assotigliata nel senso che il carattere # potra` comparire nel testo se opportunamente inserito: ad esempio usando la composizione \#. [3] in futuro si vedra` di utilizzare la forma "". [4] in futuro i doppi apostrofi '' verranno visualizzati come " doppio apice. [5] in futuro si permettera` di inserire piu` formattazioni per poter scegliere mediante menu` quella piu` appropriata. ------------------------------------ FORMATO DI ELABORAZIONE IN MEMORIA DI RUBRICA ITALIANA ------------------------------------ Il formato di elaborazione dati in memoria e` lo stesso di quello del file fatto salvo per il fatto che: - Al momento del caricamento della rubrica: 1. tutti i '\t' vengono sostituiti con '\0' 2. le stringhe codice, cognome e nome vengono terminate con '\0' sostituendo il '"' finale. - Al momento della presentazione su video 1. tutte le stringhe vengono terminate con '\0' sostituendo il '"' finale. Il buffer immagine del file rubrica e` una memoria sequenziale. Ogni nominativo e' caricato in una struttura del tipo: numero : contiene il numero (unico) di codice codice : puntatore (carattere) al # del codice del nominativo (inizio) nome : puntatore (carattere) al nome cognome: puntatore (carattere) al cognome next : puntatore (struttura) al nominativo successivo. Le strutture servono per l'allocazione dinamica delle informazioni in fase di lettura del file. Ognuna di queste strutture viene agganciata ad un vettore, l'ordine di aggancio e` controllato dall'utente in base al nome, cognome.