Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-01-2008, 10:30   #1
steph82
Junior Member
 
Iscritto dal: Jan 2008
Città: Bergamo
Messaggi: 3
[C++] Problema programma

Salve a tutti sono nuovo di questo forum, ho un problema su un progetto in C++ che sto sviluppando per un esame di informatica.

Il progetto consiste nella gestione di album musicali con anche salvataggio e caricamento su file (io l'ho fatto in txt) da parte di una casa discografica. Ho creato una struttura dati dove all'interno sono presenti codice artista, titolo album, data uscita, prezzo vendita, canzoni contenute nell'album (che è quello che mi chiede il progetto).
Io riesco a salvare, caricare visualizzare tutti gli album che inserisco fino al prezzo di vendita.
Per inserire le canzoni, per ogni album, io ho usato un array multidimensionale con una dimensione fissa di 100 canzoni per ogni album, nella fase di visualizzazione (senza salvare) e salvataggio mi inserisce tutto correttamente, il problema si crea quando carico il file, se voglio visualizzare quello che ho salvato, il programma mi fa visualizzare il primo album salvato anche se nel file txt sono presenti altri file.

Per intenderci all'interno del file txt è gestito in questo modo dove le prime 5 righe del file sono impostate fisse:
------------------------------------------------------
CODICE |TITOLO ALBUM |DATA | PREZZO |
------------------------------------------------------
CANZONI CONTENUTE |
------------------------------------------------------

codice |titolo |02/02/2008|20.00 |

canzone1
canzone2
canzone3
...........
canzoneN
0

codice |titolo |23/03/2008|34.00 |

canzone1
canzone2
............
canzoneN
0

--------------------- E cosi via per tutti gli album che inserisco -----------

da notare che lo 0 in fondo alle canzoni serve a me per il fine inserimento delle canzoni stesse

Ora vi posto il codice di salvataggio file:

Quote:
int Salva(){

int i;

ALBNODO* b;

ofstream alb_fout;

//APERTURA FILES
alb_fout.open("ListaAlbum.txt");
//VERIFICA APERTURA
if(alb_fout.fail())
cout<<"Errore apertura dei files!!";

alb_fout<<"-----------------------------------------------------------"<<endl
<<"CODICE |TITOLO ALBUM |DATA |PREZZO |"<<endl
<<"-----------------------------------------------------------"<<endl
<<"CANZONI CONTENUTE |"<<endl
<<"-----------------------------------------------------------"<<endl<<endl;

//CICLO DI LETTURA DEI FILES
b=albhead;
while(b!=NULL){

//CODICE ARTISTA
b->ListaAlbum.CodiceArtista.st[10]='\0';
alb_fout<<b->ListaAlbum.CodiceArtista.st<<"|";
//TITOLO ALBUM
alb_fout<<b->ListaAlbum.TitoloAlbum.st<<"|";
//DATA USCITA
alb_fout<<setw(2)<<b->ListaAlbum.DataUscita.giorno.st<<"/";
alb_fout<<setw(2)<<b->ListaAlbum.DataUscita.mese.st<<"/";
alb_fout<<b->ListaAlbum.DataUscita.anno.st<<"|";
//PREZZO DI VENDITA
alb_fout<<b->ListaAlbum.PrezzoVendita.st<<"|"<<endl;
//CANZONI CONTENUTE
for(i=0;i<MAXCANZONI;i++){

alb_fout<<endl<<b->ListaAlbum.Canzoni[i].st;

if(b->ListaAlbum.Canzoni[i].st[0]=='0')
break;

}//end for

alb_fout<<"\n";

b=b->next;
}//end while

b=albhead;

//CHIUSURA FILES
alb_fout.close();

cout<<"\n-------------------------------------------------------------------------------"
<<"\n\t\t\tSALVATAGGIO ESEGUITO CON SUCCESSO!"
<<"\n--------------------------------------------------------------------------------";

return 0;
}//end Salva()
Ed ora il codice di apertura file:

Quote:
int CaricaFiles(){

int i,k;
char buffer[161];

ALBUM nuovo_alb;

ifstream alb_fin;

//APERURA FILES
alb_fin.open("ListaAlbum.txt");
//VERIFICA APERTURA
if(alb_fin.fail())
cout<<"Errore apertura dei files!!";

for(k=0;k<6;k++)
alb_fin.getline(buffer,160);

//CARICAMENTO DATI ALBUM
while(alb_fin.getline(buffer,160)){

//CODICE ARTISTA
strncpy(nuovo_alb.CodiceArtista.st,buffer,10);
nuovo_alb.CodiceArtista.st[10]='\0';
//TITOLO DELL?ALBUM
strncpy(nuovo_alb.TitoloAlbum.st,buffer+11,26);
nuovo_alb.TitoloAlbum.st[26]='\0';
//DATA DI USCITA
strncpy(nuovo_alb.DataUscita.giorno.st,buffer+38,2);
nuovo_alb.DataUscita.giorno.st[2]='\0';
strncpy(nuovo_alb.DataUscita.mese.st,buffer+41,2);
nuovo_alb.DataUscita.mese.st[2]='\0';
strncpy(nuovo_alb.DataUscita.anno.st,buffer+44,4);
nuovo_alb.DataUscita.anno.st[4]='\0';
//PREZZO DI VENDITA
strncpy(nuovo_alb.PrezzoVendita.st,buffer+49,9);
nuovo_alb.PrezzoVendita.st[9]='\0';
//CANZONI CONTENUTE
for(i=0;i<MAXCANZONI;i++){
if(nuovo_alb.Canzoni[i].st[0]=='0')
break;

alb_fin >> nuovo_alb.Canzoni[i].st;

}// fine for

albhead=alb_ins_testa(nuovo_alb);
}//end while

cout<<"\n--------------------------------------------------------------------------------"
<<"\t\tLista Album caricata correttamente!"
<<"\n--------------------------------------------------------------------------------";

//CHIUSURA FILES
alb_fin.close();

return 0;
}//end CaricaFiles()
Spero che riusciate a risolvere il mio problema, premetto che non sono una mago in c++ quindi moltissime cose sono ancora tabù.
rimango in attesa di vostri consigli grazie a tutti

P.S. nel caso non capiate il problema vi posto l'intero codice che permette di creare l'album. cos potete vedere l'errore che si va a crearsi.
Allegati
File Type: zip Album Completo.zip (4.0 KB, 1 visite)
steph82 è offline   Rispondi citando il messaggio o parte di esso
Old 07-01-2008, 10:44   #2
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
imho dovresti gestire il salvataggio su file binari che è moooolto meglio.
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 07-01-2008, 10:48   #3
steph82
Junior Member
 
Iscritto dal: Jan 2008
Città: Bergamo
Messaggi: 3
Come dovrei fare??? sai non sono molto esperto questo progetto è per un esame non è che lo faccio per lavoro ..
steph82 è offline   Rispondi citando il messaggio o parte di esso
Old 07-01-2008, 11:01   #4
vizzz
Senior Member
 
L'Avatar di vizzz
 
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
guarda se questo link può aiutarti:
http://www.codersource.net/cpp_file_io_binary.html
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
vizzz è offline   Rispondi citando il messaggio o parte di esso
Old 07-01-2008, 11:10   #5
steph82
Junior Member
 
Iscritto dal: Jan 2008
Città: Bergamo
Messaggi: 3
Ho visto il link, e più o meno dovrei aver capito ma però non saprei come poterlo adattare al mio programma, sono abbastanza ingnorante su queste cose e credimi è già bello che sono arrivato fino a questo punto..

Non riusciresti magari a spedirmi qualche modifica del codice che ho postato???
ho messo anche il collegamento su MSN, magari possiamo anche sentirci li se ti è più comodo

Lo so sto pressando ma fatto questo esame mi laureo..
steph82 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Tory Bruno ha lasciato la società...
L'immagine di Natale del telescopio spaz...
STMicroelectronics e SpaceX proseguono l...
Numeri da record, Xiaomi distribuisce ol...
BitLocker accelerato via hardware: Micro...
Blue Origin prosegue lo sviluppo dei lan...
Moore Threads: nuove GPU 15 volte pi&ugr...
Steam diventa esclusivamente 64-bit: Val...
La Corte Suprema restituisce a Elon Musk...
X lancia Creator Studio su mobile: nuovi...
Dieci anni fa SpaceX fece atterrare per ...
POCO M8 e M8 Pro arriveranno nel 2026: e...
Caos Formula 1: il motore Mercedes &egra...
Tariffe nazionali per le chiamate e gli ...
Tassa chilometrica non solo per elettric...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:47.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v