School-Coding-Cpp/sfusi/RIASSUNTO GENERALE FILE.txt

104 lines
4.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

ARRAY:
- Struttura omogenea (contiene elementi dello stesso tipo) e finita (ha una dimensione definita)
STRUCT:
- Struttura non omogenea (può contenere elementi di tipi diversi) e finita (ha una dimensione definita)
FILE:
- Struttura omogenea (inteso come una sequenza di byte o strutture dello stesso tipo) e (virtualmente) infinita (la dimensione può crescere nel tempo fino ai limiti del file)
File di Testo:
- Contengono sequenze di caratteri (stringhe)
- Sono facilmente leggibili (contengono lettere, numeri e segni di punteggiatura)
- Possono essere letti e modificati facilmente con un editor
- Occupano molto spazio su disco
- Possono essere di tipo .html, .xml, .xsl, .txt, etc.
File Binari:
- Contengono sequenze di byte o di strutture
- Non è possibile saltare in una posizione specifica (vengono quindi lette tutte le righe del file)
- Non sono leggibili direttamente dalluomo
- Possono essere di tipo .doc, .xls, .ppt, .bin, .dat, .exe, etc.
File BMP
- Sono File Binari che memorizzano immagini raster
- Contengono una testata con le informazioni sullimmagine (dimensioni, profondità di colore, etc.)
- I dati dellimmagine descrivono ogni pixel (posizione e colore)
- Occupano molto spazio su disco non essendo compressi (o comunque vengono compressi in modo semplice)
- Vengono utilizzati per immagini ad alta qualità e fedeltà visiva
- Lestensione tipica è .bmp
La testa dei File BMP è composta da:
- BITMAPFILEHEADER
o È la prima struttura del File BMP
o Contiene informazioni generali come il tipo del file (char bfType[2]), la dimensione totale del file (int bfSize), loffset dove iniziano i dati dellimmagine (pixel) (int bfOffBits), e contiene anche due byte riservati, ovvero che sono nulli (int bfReserved)
- BITMAPINFOHEADER
o Viene subito dopo la prima testata
o Specifica i dettagli come la larghezza e laltezza dellimmagine, il numero di bit per pixel, il metodo di compressione, la dimensione dei dati dellimmagine, la risoluzione e la palette dei colori usata dallimmagine
FILE * fopen(const char * filename, char * mode);
filename: nome del file
mode: r (sola lettura del file; il file deve esistere)
w (sola scrittura del file; se il file non esiste lo crea, se esiste lo svuota)
a (scrive nel file a partire dalla fine; se il file non esiste lo crea)
r+ (legge/aggiorna il file; posso aprire il file in lettura, e nel caso modificarlo)
w+ (scrive/aggiorna il file; se il file esiste non lo svuota)
a+ (scrive a partire dalla fine/aggiorna il file)
mode può concludersi specificando il tipo di file su cui si sta lavorando:
- t (text): specifica che il file su cui si sta lavorando è un File di Testo (se non viene specificato è di default)
- b (binary): specifica che il file su cui si sta lavorando è un File Binario
int fclose(FILE * file);
- Non si può fare la fclose() di un puntatore nullo (restituisce 0 oppure -1 se in errore)
int fputc(char ch, FILE * fp);
- Scrittura del carattere chr su fp (file di testo)
char * fgets(char * str, int size, FILE * fp);
- Lettura di una stringa str da fp (file di testo)
int fputs(char * str, FILE * fp);
- Scrittura di una stringa str su fp (file di testo)
int fscanf(FILE * fp, const char * format, ...);
- Lettura formattata da fp (file di testo), restituisce il numero di elementi letti
int fprintf(FILE * fp, const char * format, ...);
- Scrittura formattata su fp (file di testo), restituisce il numero di elementi scritti
void rewind(FILE * fp);
- Riposizionamento all'inizio (azzeramento posizione testina di lettura/scrittura), ignorata in caso di file aperto
int fflush(FILE * fp);
- Forza la scrittura dei dati bufferizzati sullo stream. Se fp vale NULL, forza tutti i buffer aperti in scrittura. Restituisce 0/EOF (ma normalmente non si chiama mai)
int rename(char * old, char * new);
- Rinomina un file
int remove(char * filename);
- Cancella il file filename (restituisce 0 se l'operazione è riuscita)
void perror(char * str);
- Stampa il messaggio con la descrizione dell'errore dell'ultimo errore che c'è stato
size_t fread(void * ptr, size_t size, size_t count, FILE * fp);
- Leggi su un File Binario
size_t fwrite(const void * ptr, size_t size, size_t count, FILE * fp);
- Scrive su un File Binario
int fseek(FILE * fp, long offset, int origin);
origin:
o SEEK_SET (sposta la posizione del puntatore allinizio del file)
o SEEK_CUR (sposta la posizione del puntatore alla posizione corrente)
o SEEK_END (sposta la posizione del puntatore alla fine del file)
offset è il numero di byte da spostare rispetto a origin
long ftell(FILE * fp);
- Restituisce la posizione corrente del puntatore di lettura/scrittura in un file. Può essere usata per determinare la dimensione del file o per verificare la posizione nel file durante la lettura/scrittura.