File ad accesso diretto funzioni Hash Parte1. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Documenti analoghi
File ad accesso diretto funzioni Hash Parte3. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

ListView. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Diagramma delle classi

La nostra interfaccia avrà l aspetto seguente:

Le liste. Prof. Francesco Accarino IIS Sesto San Giovanni Via Leopardi 132

File e Stream. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

SEGNALAZIONI DI VIGILANZA

Uso di classi e oggetti. Prof. Francesco Acarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

E9 Esercizi sul Capitolo 9 Array

E17 Esercizi sugli Array in Java

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso

CORSO ACCESS PARTE IV

Introduzione a C# Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Gestione SentieriWeb

MDG Enpals Spettacolo MANUALE D USO E INSTALLAZIONE

Basi di Dati. Applicazioni web in PHP per l interrogazione di basi di dati. Esercitazione n. 5

PROGRAMMAZIONE A MODULI IN C++ MEDIANTE CODEBLOCKS

Corso di Access. Prerequisiti. Modulo L2 A (Access) Le query

INSERIRE I DATI NEL DATABASE

Corso sul PACCHETTO OFFICE. Modulo Access

NOVITA ACR COMANDI IN GESTIONE LIBRETTO

PULSE Manuale Operativo Studio Pag. 1 INDICE

MANUALE PER IL REDATTORE DELL UFFICIO STAMPA

ESERCIZIO 1 ESERCIZIO 1

14Ex-Cap11.qxd :20 Pagina Le macro

WORD PROCESSING.

Contenuti Guida Registrazione Utenti Inserimento Articoli con immagini e Video Gestione Album e Foto Inserire Sponsor Gestione contenuti in evidenza

4. Accesso diretto per gli archivi con record a lunghezza costante

Avviate Specifi dall icona presente sul vostro Desktop.

Relazioni. Microsoft Access. Relazioni. Relazioni

La nostra finestra dovrebbe essere come mostra la figura: Diamo innanzitutto un occhiata alle componenti principali di input/output:

Corso di Access Modulo L2 A (Access) I tipi di query

RadioButton E CheckBox. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Corso sul linguaggio Java

INSTALLAZIONE SOFTWARE HARLEY_DAVIDSON DEMO DEALERS

Corso di Access. Prerequisiti. Modulo L2A (Access) Struttura delle tabelle

Definire una chiave primaria. Microsoft Access. Definire una chiave primaria. Definire una chiave primaria. Definire una chiave primaria

MANUALE UTENTE. Redatto a cura di

C3 IL DBMS MICROSOFT ACCESS

SPAC Automazione 2019 Creazione di un Blocco componente (Madre/Elemento), Riferimento di Registrazione e Blocco Cartiglio con Custom Blk Suite

TAVOLE DI SVILUPPO DI KUNO BELLER

interfacce grafiche con C# Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

LE MASCHERE. Maschera standard. Maschera semplice. Questa maschera però non consente di nascondere alcuni campi e visualizza i record uno ad uno.

Magazzino: software di gestione di un database di strumenti musicali

Microsoft Access. Nozioni di base. Contatti: Dott.ssa Silvia Bonfanti

Gestione Conto Sociale 2017

Corso di Informatica. Access. Struttura tabella. Tabelle - esempi 11/01/2008

Utilizzo delle Maschere in Microsoft Access

Gestione versamento TFR a fondo pensione aperto

UnivAQ - Corso ECDL - Elaborazione Testi Maria Maddalena Fornari

ListBox e ComboBox. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Guida all utilizzo del programma SCL+ Nozioni base

Relazioni e tabelle. Introduzione alle Basi di Dati Relazionali. Relazioni uno a uno. Esempio

Area Sistemi di Elaborazione Microinformatica

MODULO 5 - USO DELLE BASI DI DATI 2 FINALITÁ

Corso di Access. Modulo L2 A (Access) 1.4 Le maschere

Esercizio 1. Tavola ordinata in memoria centrale

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

ACCESS. Database: archivio elettronico, dotato di un programma di interfaccia che facilita la registrazione e la ricerca dei dati.

jquery Mobile: La gestione delle liste

Connesione ad un Database Access con PHP. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

utente=admin.fe password=admin.fe Il sistema presenta le funzioni minime disponibili:

Gestione Vaccinazioni Modulo SOLE

Guida IBM Watson IoT

Fondamenti di Informatica T-1

I DATABASE CREAZIONE DI UNA RUBRICA: Definiamo i campi della tabella. ID Cognome Nome Etc.

Database Modulo 5 IMPOSTARE UNA TABELLA E AGGIORNARE UN DATABASE

Trasformare array paralleli in array di record

Corso di Basi di Dati Prime nozioni relative all utilizzo del DBMS MySQL

INTRODUZIONE AI DBMS. Inoltre i fogli elettronici. Mentre sono poco adatti per operazioni di. Prof. Alberto Postiglione

INTRODUZIONE AI DBMS

Iscrizione on line al Congresso Nazionale ANMCO

WordPress: come rendere dinamici Header e Sidebar del template?

Corso di Access. Prerequisiti. Modulo L2 A (Access) 1.5 Report. Utilizzo di un DBMS Concetti generali sui DB Interfaccia utente

Trasformare array paralleli in array di record

L INTERFACCIA GRAFICA DI EXCEL

Laboratorio n 6 del Ing. Dario Cogliati

Plantview Usernames

Fatturazione Elettronica (documento aggiornato al 03/01/2019)

Trasformare array paralleli in array di record

Architetture Italiane

Basi di dati Applicazioni web in PHP per l interrogazione di basi di dati Laboratorio #5

PowerFATT Gestione delle fatture, preventivi e ddt

Guida utente per l accreditamento al sistema di invio notifiche web SEVESO III.0 di uno stabilimento successivo al primo

Formazione a Supporto dell Inserimento Lavorativo. Elementi di Word avanzato. Docente Franchini Gloria

Guida per l utilizzo della WEB COMMUNITY

Raccolta e memorizzazione dei dati immessi nei moduli dai visitatori

Parte 3 Manuale amministratori

SPAC Start Impianti 18 - Nuova Commessa - - Inserimento Planimetria e Simboli -

03FYZ TECNICHE DI PROGRAMMAZIONE Esercitazione di Laboratorio 03 es.1 23 Marzo 2016

Documento di Analisi. Mockup

SUE sistema informativo Uffici Esportazione

INTRODUZIONE ALLE BASI DATI RELAZIONALI

Cosa sono le maschere

Inserire record. Microsoft Access. Inserire/modificare record. Inserire record. Cancellare record. Inserire/modificare record

Laboratorio di Basi di Dati

Transcript:

File ad accesso diretto funzioni Hash Parte1 Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Esercitazione: Si vuole sviluppare una applicazione come quella mostrata nella figura in cui viene gestito un archivio di dipendenti contenete per ogni dipendente i campi mostrati. L applicazioni permetterà di svolgere sull archivio le operazioni mostrate nel menu della figura. Se l archivio non è stato ancora creato nel menu sarà attivata la sola voce di menu Crea Archivio altrimenti saranno attivate tutte le altre 2

Interazione tra gli oggetti che andremo a implementare Archivio Come si vede da questa figura l utente interagisce con l interfaccia grafica che a sua volta usa due classi. La prima Dipendente contiene gli attributi e i metodi per gestire le informazioni di un singolo dipendente. Mentre la classe Dipendenti gestisce tutte le operazioni sull archivio 3

La classe Dipendente Come si vede dall ADT della classe Dipendente osservando i suoi attributi e i due costruttori essa ha gli attributi Cognome nome e stipendio che caratterizzano un dipendente e un quarto attributo posizione che si riferisce alla posizione del record all interno dell archivio. I campi aliquota e stipendio netto sono campi calcolati e come tali non andrebbero memorizzati nell archivio ma calcolati appunto dai metodi dell oggetto come mostrato nel frammento di codice seguente: 4

Noi invece adotteremo il seguente tracciato record memorizzando in esso anche i campi calcolati a puro scopo esercitativo Cognome 19 Caratteri 19 + 1 =20 + Nome 14 Caratteri 14 +1 =15 + Stipendio Double 64 bit (8 byte) 8+ aliquota 32 bit (4byte) 4+ Stipendio netto 64 bit (8 byte) Quindi ogni registrazione nell archivio occuperà 55 byte = 55 8+ 5

La classe Dipendenti Stringa contenente il nome del file BinaryReader BinaryWriter FileStream Numero dipendenti che l archivio può contenere Numero di record inseriti Utilizzato per creare l archivio quando esso non è stato creato Utilizzato per aprire l archivio quando esso già esiste Infatti all avvio l applicazione, nel codice associato all evento Load andremo a testare se l archivio è già esistente, in questo caso sarà chiamato il costruttore senza parametri e si abiliteranno le altre voci di menu altrimenti si abilita solo la voce crea, ed in risposta al click su di essa si chiamerà il costruttore con numero di record 6

Il codice da inserire nel gestore dell evento Load del form è il seguente. Mediante la proprietà getnumdip sappiamo se l archivio esiste o deve essere ancora creato agendo di conseguenza sulle voci di menù La variabile mioarchivio è dichiarata a livello di classe nel Form1 e conterrà il reference all oggetto dipendenti attraverso il quale svolgere le varie operazioni sull archivio. I due metodi enablemenuoperation e disblemenuoperation li creeremo noi in Form1. Scrivendo tante: nomevoce.enabled = true; nomevoce.enabled = false; In base a cosa esideriamo 7

Un estratto della classe dipendenti in cui si vede come opera il costruttore della classe. Se il file esiste inizializza la variabile numero Dipendenti e conta in esso i numeri di record realmente inseriti per controllare in seguito gli inserimenti. Osservando il codice si nota come se il file esiste si scorre l archivio spostandosi di record in record semplicemente spostando il cursore di 55 byte in avanti. A questo proposito è opportuno sottolineare che in fase di creazione dell archivio esso viene riempito di trattini. Quindi se un record inizia con un carattere diverso da trattino contiene dei dati. 8

Ecco quindi cosa accadrà all inizio. Il nostro archivio sarà creato inserendo 55 per ogni record. Il carattere lo utilizzeremo anche per cancellare logicamente un record e per verificare se un record è vuoto. Ovviamente un cognome inizia con un carattere diverso da 9

Ed ecco come si presenta il nostro archivio appena creato quando è vuoto utilizzando il visualizzatore binario di file Fhred. 5*55=275 byte 10

Vediamo ora come implementare le altre voci di menu iniziando dalla funzione Nuovo Dipendente Creo un dipendente con i dati, calcolo mediante le funzioni di Hash la posizione relativa del record utilizzando il cognome inserito, invoco il metodo inserisci di mioarchivio passandogli la posizione e il dipendente 11

12

13

Visualizzazione dell archivio 14

Diamo un occhiata alla funzione resettalistaview Se guardiamo il codice notiamo che alla listview è stato aggiunta una colonna nascosta nella quale sarà memorizzata la posizione di ciascun record contenuto nell archivio. Questo sotterfugio ci semplifica di molto le operazioni di cancellazione e modifica perché come abbiamo già visto nelle precedenti esperienze l utente selezionerà un intera riga e quindi grazie al valore del campo nascosto contenuto in essa possiamo trovare automaticamente la posizione del record nell archivio. Campo nascosto 15