QLDBASE scritto da: Hans-Gerd Peerenboom Im Muhren 44 5401 Spay am Rhein tel. 02628/2619 GERMANIA versione italiana: Giuseppe Zanetti, via Vergani, 11 35031 Abano Terme (PD) ITALIA E-mail: (InterNet): beppe@alessia.dei.unipd.it IL PROGRAMMA DBASE III Nel mondo dei computers MS-DOS la serie di programmi dBase, ha costituito un nuovo standard fino dall' uscita della prima versione, che girava sotto CP/M ed e' disponibile per il QL con gli opportuni emulatori. Per rendersi conto dell' importanza di dB III, basti pensare che la maggioranza dei programmi per PC che gestiscono archivi e' scritta in clipper, che altro non e' che il compilatore per questo linguaggio. A dire il vero dB non e' l'unico linguaggio di interrogazione di archivi disponibile sui personal computers, ma c'e' anche SQL, che e' lo standard di interrogazione piu' grandi sistemi di banche dati, tuttavia non e' ancora ampiamente diffuso a causa dell' iniziale osticita' del linguaggio. Questo programma nasce dal bisogno di leggere dati trasferiti da un personal computer e di trasportarli in Archive. La struttura di un file di dBase e' descritta in un interessante articolo di Peter Mandrella (vedere bibliografia a fine testo), in cui descrive ampiamente come leggere, scrivere e manipolare files in DB3. In questa sede ci limitiamo ad osservare l' header del file, poiche' e' qui' che sono contenute le informazioni piu' interessanti per l'utente, per ulteriori informazioni rimando all' articolo citato o ad uno dei molti testi reperibili sull' argomento. STRUTTURA DELL' HEADER DI UN FILE DB3 Byte nr. Contenuto 1 chr$(3); identifica ogni file DB3 2,3,4 ultimo accesso al file: anno, mese giorno 5,6,7,8 numero di records in archivio 9,10 lunghezza dell' header 11,12 lunghezza dei dati 13-32 (non utilizzati) da 32 in poi definizione dei campi ultimo byte header: chr$(13) Dopo l'header seguono i dati, dopo l' ultimo dato il file termina con un carattere di EOF (End Of File) == chr$(26) La definizione dei dati consiste in: Lunghezza del campo * definizione del campo la definizione del campo consiste in ogni caso di 32 bytes: 10 bytes nome del campo (chr$(0) se vuoto) 1 byte vuoto (chr$(0)) 1 byte per il tipo di dato C per dati "carattere" N per dati numerici D per date (anno,mese,giorno) L per condizioni logiche (vero o falso) 4 bytes vuoti (chr$(0)) 1 byte lunghezza del campo in ogni caso, anche se il campo e' vuoto se il campo e' maggiore della massima lunghezza consentita, i caratteri in sovrappiu' saranno persi in Archive cio' non accade, perche' usa un metodo "dinamico" di archiviazione delle stringhe. 1 byte numero di cifre decimali: per dati numerici in Archive i numeri vengono memorizzati come sequenze ASCII 14 bytes vuoti (chr$(0)) Una volta conosciuta la struttura dei dati, e' facile trasferirli da dB3 ad Archive o in FlashBack. IL PROGRAMMA QLDBASE Il programma QLDBASE_exe legge dati in formato DB e li trasforma in dati esportabili in archive (_exp). Prima dovete trasferire i dati in formato PC con una apposita utility, ad esempio Xover, MultiDiskOver, AtariDos o l' ottimo ATRdevice (che e' di pubblico dominio). Il programma e' scritto in C e compilato con il compilatore della Computer One (C1), ma occorrono i patch di Carsten Koch. NON HO POTUTO TRADURRE in italiano i messaggi del programma poiche' non dispongo di suddetti patch, percui la ricompilazione sarebbe risultata assai problematica. Il lavoro di conversione viene svolto dal programma in due fasi: - Nella prima fase viene analizzato l'header del file e nel frattempo viene preparato l' header per Archive. - Nella seconda parte vengono scanditi i record dell' archivio, si possono solamente visualizzare o anche convertire in un file _exp. In questa fase i campi numerici, data e logici vengono convertiti nella corrispettiva rappresentazione ASCII. NB: i campi dBase "MEMORY" non vengono manipolati correttamente. Ora il file risultante puo' essere importato in Archive o in Easel. COME USARE IL PROGRAMMA Il programma viene lanciato con "exec_w QlDbase_exe" e per prima cosa richiede il nome di un file dB3, sul quale verranno applicate tutte le ulteriori operazioni. Inserito il nome il programma legge l'header del file per verificare che sia effettivamente un file db3 e per ricrearsi in memoria la struttura dell' archivio. Se tutto e' proceduto in modo corretto, dovrebbe apparire il menu' principale, in cui sono disponibili alcune opzioni. 1. Cambiare archivio 2. Analizzare la struttura dell' archivio 3. Vedere i dati contenuti nell' archivio 4. Esportare dati ad Archive 9. Terminare il lavoro NOTE L' autore e' a disposizione di chi gli segnali eventuali malfunzionamenti del programma. Il programma e' estremamente LENTO, non preoccupatevi: e' tutto normale. Non ho potuto tradurre in italiano i messaggi del programma, poiche' non ho i patch per il compilatore della C1. Giuseppe Zanetti