Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 25 Xml for dummies Parte 2

Slides:



Advertisements
Presentazioni simili
File Linguaggio C.
Advertisements

ESERCITAZIONE R 12,19 marzo 2012 Mario Mastrangelo
Argomenti della lezione
Accesso ai dati su file Lab. Sistemi Informativi Economico-Aziendali Accesso ai dati su file Localizzazione dei dati File system locali e distribuiti Protocolli.
Java Stream e File.
Java Stream e File. La classe File Per operare con lintero file java mette a disposizione la classe File Per utilizzare la classe File è necessario importare.
Programmazione con socket
Massa Laura Mela Enrica
29 febbraio 2008 Progettare tipi di dato astratti.
Operazioni di I/O da console e da file in C standard
1 System Call per Comunicazione tra Processi Pipe.
Mappare file in memoria
SC che operano su file (1)
Interfaccia del file system
INFORMATICA I file.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 15 Maggio 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 9 Maggio 2012.
Costruzione di Interfacce Lezione 11 Dal Java al C++ parte 2
11 Dicembre 2002Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 27 Xml for dummies Parte 2
Costruzione di Interfacce Lezione 6 Esercitazione Trasformazioni
Costruzione di Interfacce Lezione 4 Sistemi di riferimento e trasformazioni
25 Nov 2002Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 22 Estensioni Opengl, Multitexturing,
Costruzione di Interfacce Lezione 10 Dal Java al C++ parte 1
Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 26 XML read e write / Gl Selection e picking
Costruzione di Interfacce Lezione 4 Nozioni di geometria per la grafica
Costruzione di Interfacce Lezione 4 Geometria per la grafica
Costruzione di Interfacce Lezione 19 Qt Tutorial Designer
Costruzione di Interfacce Lezione 5 Trasformazioni Affini
Costruzione di Interfacce Lezione 12 C++STL
Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 25 Xml for dummies Parte 2
Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 30 MMeditor e collision detection
25 Nov 2002Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 21 Trackball
1 Costruzione di Interfacce Primi passi in OpenGL
2 Dicembre 2002Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 23 Scene Graphs, Object Loading
Costruzione di Interfacce Lezione 8 Rasterizzazione
Fisica Computazionale I - 51 OPERAZIONI DI INPUT/OUTPUT Le operazioni di input/output sono estremamente complesse perche' implicano una sostanziale interazione.
Introduzione agli stream e alle classi
Argomenti della lezione
Java Serialization.
Esercizio: Copiare un file in un nuovo file mediante le funzioni read e write.
1 File System ed Input/Output UNIX Implementazione del File System Caratteristiche del File System Unix/Linux System Call relative al File System Linput/output.
Fondamenti di Informatica A - Massimo Bertozzi TIPI DI DATO IN C++ What's in a name? That which we call a rose By any other name would smell as sweet.
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
Lezione IX Laboratorio di Programmazione. Le Classi Una classe C++ è definita come segue: class Nomeclasse { private: // metodi e attrib. visibili solo.
Lezione VIII Laboratorio di Programmazione. Streams formattati In C è sfruttata linformazione riguardo al tipo di un certo dato per impostare la formattazione.
Modulo 13: System call relative al File System
Altri comandi avanzati Salvatore Campagna Politecnico di Torino Dipartimento di Automatica.
1 Gestione dei File. 2 Perché i file? Sono strutture dati persistenti Sono solitamente memorizzati sui dischi –Si usano dall'interno dei programmi Realizzano.
Elementi di programmazione ad oggetti a. a. 2009/2010
BIOINFO3 - Lezione 271 PATH DEL FILE Bisogna fare molta attenzione al path del file da aprire. Per non sbagliare converrebbe passare sempre il path assoluto.
Corso JAVA Lezione n° 12 Istituto Statale di Istruzione Superiore “F. Enriques”
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
Pagine ASP parte 2 La gestione dei file Stefano Schacherl.
Il Sistema Operativo Il Sistema Operativo è costituito dall’insieme dei programmi necessari per far funzionare tutto l’hardware del calcolatore e per nascondere.
1 Il file system di Unix Caratteristiche generali dei FS comunemente usati da Unix/Linux.
25 Nov 2002Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 21 Trackball, Generazione TexCoords
1 Il file system di Unix Caratteristiche generali dei FS comunemente usati da Unix/Linux.
File binari Accesso a file con record di lunghezza costante Struct Persona { Int id; Char nome[50];// nome e cognome Double stipendio; }; Persona dipendente;
Arduino: introduzione alla programmazione
Lez. 9 (13/14)Elementi di Programmazione1 Lezione 9 Valutazione di espressioni File di testo sequenziali.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 21 Maggio 2014.
1 SC che operano su processi Getpid, fork, exec, wait, waitpid, exit, dup, dup2.
Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 1 Lezione 13 e 14 GESTIONE DEI FILE A) Nozioni sulla gestione dei.
1 Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( ) Laboratorio di programmazione Lezione 13 e 14 -
1 Chiamate di sistema Introduzione Errori : perror() Chiamate che lavorano su file.
1 Input / Output Spesso un programma deve acquisire dati da una sorgente esterna o inviare informazioni a una destinazione esterna. L’informazione può.
Lezione 14 Tecniche di I/O Avanzate Obiettivi di apprendimento: A.Come lavorare con stream binari B.Lavorare con I datalog files C.Vantaggi e svantaggi.
Compitino di Sistemi Operativi corsi A -C 19 Maggio 2003.
Transcript della presentazione:

Costruzione di Interfacce - Paolo Cignoni1 Costruzione di Interfacce Lezione 25 Xml for dummies Parte 2

Costruzione di Interfacce - Paolo Cignoni2 La classe CIMd2  Classe per caricare un oggetto quake2  Load(filename, texturename);  setAnim(start,end)  setFps()  Draw(doctime)  l’oggetto di solito e’ verticale sul piano xy con l’origine sotto i piedi.

Costruzione di Interfacce - Paolo Cignoni3 Leggere e scrivere file in QT  un file e’ considerato come un particolare device I/O  classe QIODevice (astratta)  un mezzo da cui o su cui si puo leggere/scrivere byte  La azioni importanti sono  open(int mode)/close()/flush()  at(Offset pos)  readBlock(char * data, Q_ULONG maxlen)/writeBlock()  readLine/getch/putch

Costruzione di Interfacce - Paolo Cignoni4 QIODevice  bool QIODevice::open ( int mode )  mode e’ una combinazione di  IO_Raw unbuffered file access  IO_ReadOnly  IO_WriteOnly  IO_ReadWrite  IO_Append  IO_Truncate  IO_Translate enables carriage returns and linefeed translation.

Costruzione di Interfacce - Paolo Cignoni5 Specializzazioni QIODevice  Qbuffer  buffer in memoria di char  QSocket e QSocketDevice  per l’accesso in rete.  QFile: quello che ci interessa  Come ci si scrive piu’ ad alto livello?

Costruzione di Interfacce - Paolo Cignoni6 QFile  Cose utili:  QDir per gestire dir,  sempre con lo ‘/’  utile per manipolare pathnames  QDir::setCurrent(QString) settare la dir corrente cui fanno riferimento i path specificati successivamente (se non assoluti)

Costruzione di Interfacce - Paolo Cignoni7 QTextStream  classe per leggere/scrivere testo su un QIODevice  QTextStream::QTextStream ( QIODevice * iod )  QTextStream::QTextStream ( QString * str, int filemode )  solito stile c++  << butta nello stream  >> legge dallo stream  flags e variabili per dire come si trasf i numeri  flags(int ) con valori tipo bin, oct, dec, fixedpos ecc.  precision(int )

Costruzione di Interfacce - Paolo Cignoni8 Esempio pratico // il costruttore di QFile non apre il file! QFile xfile("pippo.txt"); // cosi’ come quello di QDir non cambia dir. QDir xdir("tmptxt"); // fa riferimento al path corrente dell’app... xdir.mkdir(""); //...che adesso viene cambiato QDir::setCurrent(xdir.path()); // il file viene creato solo ora. xfile.open(IO_WriteOnly); QTextStream xstrm(&xfile); xstrm << "prova"; xfile.close();

Costruzione di Interfacce - Paolo Cignoni9 Dom model per XML  Interfaccia dom per accedere e modificare file xml  si costruisce una rappresentazione gerarchica (un albero!) del documento xml in memoria  si lavora sulla rappresentazione in memoria  leggere ~ attraversare e interpretare l’albero in mem con una qualche visita  scrivere ~ creare l’albero xml in memoria visitando nel giusto ordine le nostre strutture dati e poi invocare un metodo save

Costruzione di Interfacce - Paolo Cignoni10 QDomDocument  la classe che rappresenta l’intero documento  e’ la radice dell’albero xml permette l’accesso a tutti gli elementi dell’albero  e’ una specializzazione di QDomNode

Costruzione di Interfacce - Paolo Cignoni11 QDomNode  Classe base  QDomDocument  QDomElement  QDomAttr  metodi  accesso,inserzione/rimozione figli  che son sempre QDomNode  si puo’ sapere di che tipo e’  isDocument/ isElement/isAttribute

Costruzione di Interfacce - Paolo Cignoni12 QDomAttr  Attributo di un elemento  name()  value() QDomElement e = //... QDomAttr a = e.attributeNode( "href" ); // stampa " cout << a.value() << endl; // change the node's attribute a.setValue( " ); QDomAttr a2 = e.attributeNode( "href" ); // stampa " cout << a2.value() << endl;

Costruzione di Interfacce - Paolo Cignoni13 QDomElement  rappresenta un elemento  tagName() che puo essere cambiato  zero o piu’ attributes  QString attribute(name, defval)  QDomAttr attributeNode(name)

Costruzione di Interfacce - Paolo Cignoni14 QDomDocument  gli elementi non possono esistere scollegati da un QDomDocument  QDomDocument contiene i metodi per fabbricare gli elementi  I nodi hanno un owner che il doc che li ha creati  tutte le classi QDom sono solo references  saranno cancellati quando sono cancellati tutti gli oggetti che le riferiscono e il document che li possiede  si possono importare nodi da altri documenti  importNode(..)

Costruzione di Interfacce - Paolo Cignoni15 QDomDocument  per settare il contenuto di un doc  setContent  si puo usare in input  Qstring  QBytearray  QIODevice  Per salvare il contenuto di un doc  save(QTextStream) in uno stream  vale anche per singoli nodi  toString()

Costruzione di Interfacce - Paolo Cignoni16 QDomDocument QDomDocument doc( "mydocument" ); QFile file( "mydocument.xml" ); if ( !file.open( IO_ReadOnly ) ) return; if ( !doc.setContent( &file ) ) { file.close(); return; } file.close(); // print out the element names of all elements that are direct children // of the outermost element. QDomElement docElem = doc.documentElement(); // la radice QDomNode n = docElem.firstChild(); while( !n.isNull() ) { QDomElement e = n.toElement(); // try to convert the node to an element. if( !e.isNull() ) { cout << e.tagName() << endl; // the node really is an element. } n = n.nextSibling(); }

Costruzione di Interfacce - Paolo Cignoni17 QDomDocument doc( "MyML" ); QDomElement root = doc.createElement( "MyML" ); doc.appendChild( root ); QDomElement tag = doc.createElement( "Greeting" ); root.appendChild( tag ); QDomText t = doc.createTextNode( "Hello World" ); tag.appendChild( t ); QString xml = doc.toString();

Costruzione di Interfacce - Paolo Cignoni18 In pratica  Per salvare uno scene graph in xml?  aggiungere un metodo XMLWrite ad ogni nodo void CISGGroup::XMLWrite(FILE *fp) { fprintf(fp," \n"); iterator i; for(i=Sons.begin();i!=Sons.end();++i) (*i)->XMLWrite(fp); fprintf(fp," \n"); }