DOMANDA USO FILE CSV IN C

Cioscos

Utente Attivo
926
95
CPU
AMD Ryzen 7 7800x3D
Dissipatore
DEEP COOL NEPTWIN White
Scheda Madre
GIGABYTE B650 GAMING X AX
HDD
1-2TB Seagate Barracuda 7200RPM - fanxiang S880 2TB PCIe 4.0 NVMe SSD M.2
RAM
CORSAIR VENGEANCE DDR5 32GB (2x16GB) 6400MHz CL36 CMH32GX5M2B6400C36W
GPU
MSI GeForce RTX 4080 Gaming X TRIO
Monitor
Samsung LS24AG30 1080p 144Hz
PSU
LC-POWER LC850P V3.0 850W 80+ Platinum
Case
NZXT H5 Flow
Periferiche
Logitech G502 (Mouse) - Tastiera Cooler Master SK653
Net
Openfiber 5Gbit/s
OS
Windows 11 Pro - 64bit
Salve! Per un progetto universitario dobbiamo creare una applicazione ma vabbè questo non è il punto. Dovremmo caricare dei vettori di tipo struct da file e aggiornare eventualmente dei file. Fino qui tutto ok se non fosse che specifica che i file devono essere o binari o di tipo .CSV che non abbiamo mai visto ne usato.
Qualcuno mi potrebbe spiegare come si gestiscono questi file in C? O se ci conviene usare i file binari?
 

BAT

Moderatore
Staff Forum
Utente Èlite
22,900
11,551
CPU
1-Neurone
Dissipatore
Ventaglio
RAM
Scarsa
Net
Segnali di fumo
OS
Windows 10000 BUG
un .csv è un semplce file di testo che puoi aprire con qualunque editor;
CSV sta per Comma Separated Values, ossia ci sono delle stringhe che rappresentano dai o campi/record, per esempio di un foglio elettronico o di un database;
il file è un semplice insieme di righe dove ciascuna riga rappresenta un record, i campi del record sono separati dal carattere virgola ",", esempio:

Nome,Cognome,Data,Tel
Pippo,Trombetta,2000-01-01,0123456789
Paperino,Paolino,1934-01-01,98765432


da codice si scandiscono con un semplice ciclo che termina alla fine del file.
 

Cioscos

Utente Attivo
926
95
CPU
AMD Ryzen 7 7800x3D
Dissipatore
DEEP COOL NEPTWIN White
Scheda Madre
GIGABYTE B650 GAMING X AX
HDD
1-2TB Seagate Barracuda 7200RPM - fanxiang S880 2TB PCIe 4.0 NVMe SSD M.2
RAM
CORSAIR VENGEANCE DDR5 32GB (2x16GB) 6400MHz CL36 CMH32GX5M2B6400C36W
GPU
MSI GeForce RTX 4080 Gaming X TRIO
Monitor
Samsung LS24AG30 1080p 144Hz
PSU
LC-POWER LC850P V3.0 850W 80+ Platinum
Case
NZXT H5 Flow
Periferiche
Logitech G502 (Mouse) - Tastiera Cooler Master SK653
Net
Openfiber 5Gbit/s
OS
Windows 11 Pro - 64bit
un .csv è un semplce file di testo che puoi aprire con qualunque editor;
CSV sta per Comma Separated Values, ossia ci sono delle stringhe che rappresentano dai o campi/record, per esempio di un foglio elettronico o di un database;
il file è un semplice insieme di righe dove ciascuna riga rappresenta un record, i campi del record sono separati dal carattere virgola ",", esempio:

Nome,Cognome,Data,Tel
Pippo,Trombetta,2000-01-01,0123456789
Paperino,Paolino,1934-01-01,98765432


da codice si scandiscono con un semplice ciclo che termina alla fine del file.
Intanto grazie per la risposta. Il problema è che ho notato che i .CSV non hanno l'EOF. Quindi sono più problematici da gestire rispetto ai .txt Confermi?
 

BAT

Moderatore
Staff Forum
Utente Èlite
22,900
11,551
CPU
1-Neurone
Dissipatore
Ventaglio
RAM
Scarsa
Net
Segnali di fumo
OS
Windows 10000 BUG
si, mi pare di ricordare chel'EOF non c'è,
in quel caso devi acquisire ciascuna riga come se fosse un unico elemento e la fine arriva quando l'ultima riga acquisita è NULL
 
Ultima modifica:
  • Mi piace
Reazioni: Cioscos

Cioscos

Utente Attivo
926
95
CPU
AMD Ryzen 7 7800x3D
Dissipatore
DEEP COOL NEPTWIN White
Scheda Madre
GIGABYTE B650 GAMING X AX
HDD
1-2TB Seagate Barracuda 7200RPM - fanxiang S880 2TB PCIe 4.0 NVMe SSD M.2
RAM
CORSAIR VENGEANCE DDR5 32GB (2x16GB) 6400MHz CL36 CMH32GX5M2B6400C36W
GPU
MSI GeForce RTX 4080 Gaming X TRIO
Monitor
Samsung LS24AG30 1080p 144Hz
PSU
LC-POWER LC850P V3.0 850W 80+ Platinum
Case
NZXT H5 Flow
Periferiche
Logitech G502 (Mouse) - Tastiera Cooler Master SK653
Net
Openfiber 5Gbit/s
OS
Windows 11 Pro - 64bit
si, mi pare di ricordare chel'EOF non c'è,
in quel caso devi acquisire ciascuna riga come se fosse un unico elemento e la fine arriva quando l'ultima riga acquisità è NULL
Ah ok, grazie mille allora.
 

rctimelines

Utente Èlite
5,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3
Si, come ti ha detto @BATT00cent i file .CVS sono decisamente banali e facilmente gestibili anche attraverso un editor, se dovesse servire metterci mano.. aldilà del nome, che indica la virgola originariamente quale separatore dei campi, ci sono varianti che consentono di usare altri caratteri. È un formato usato per trasferire database o fogli di calcolo.. si adattano perfettamente ad una lettura sequenziale che termina intrinsecamente anche se non trova un carattere eof, che comunque puoi sempre facilmente aggiungere, se proprio ti dovesse servire!

Inviato dal mio Nexus 5 utilizzando Tapatalk
 
  • Mi piace
Reazioni: Cioscos

Andretti60

Utente Èlite
6,440
5,091
I file CVS non hanno EOF?
E dove lo avete sentito :)
Un file che non abbia una fine io non lo ho ancora visto... e probabilmente non lo vedrò mai.
Una file CVS non è altro che un banale file di testo, niente di più. Ogni riga rappresenta un record i cui campi sono separati da una virgola (nella versione standard, ma si può usare qualsiasi terminatore si voglia purché non faccia parte del testo, uno molto comune è il TAB). Esistono librerie che permettono di leggerli e memorizzare i campi in un recordset come fosse un database, o lo si può leggere banalmente con qualsiasi libreria di IO presente nel linguaggio di programmazione preferito. A volte non c’è neanche di scrivere nessuna linea di codice (!) per esempio usando Excel che è capace di importare nativamente file in questo formato.
 
  • Mi piace
Reazioni: rodhellas e Mursey

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili