Hola!
Tenemos un fichero de texto. Hemos volcado los datos a una lista y queremos visualizar en el tlistview los objetos que tenemos dentro de la lista, pero no nos sale.
| |||
Problema con TListView Hola! Tenemos un fichero de texto. Hemos volcado los datos a una lista y queremos visualizar en el tlistview los objetos que tenemos dentro de la lista, pero no nos sale. |
| |||
Respuesta: Problema con TListView //leer y escribir ficheros void Cancion::LeerCancionDesdeFichero(ifstream &fichero) //(ficheros de texto) { char buffer[200]; fichero.getline(buffer,sizeof(buffer)); codigo=atoi(buffer); fichero.getline(buffer,sizeof(buffer)); titulo=string(buffer); fichero.getline(buffer,sizeof(buffer)); interprete=string(buffer); fichero.getline(buffer,sizeof(buffer)); album=string(buffer); fichero.getline(buffer,sizeof(buffer)); anyo=atoi(buffer); fichero.getline(buffer,sizeof(buffer)); genero=string(buffer); fichero.getline(buffer,sizeof(buffer)); duracion=float(atoi(buffer)); //esta bien el casting?? } void Cancion::EscribirCancionEnFichero(ofstream &fichero) //(ficheros de texto) { fichero<<codigo<<endl; fichero<<titulo<<endl; fichero<<interprete<<endl; fichero<<album<<endl; fichero<<anyo<<endl; fichero<<genero<<endl; fichero<<duracion<<endl; } int Contenedor::EscribirListaEnFichero() { ofstream fichero; fichero.open("Datos.dat"); if (!fichero) return 1; list<Cancion>::iterator it; for (it=lista.begin();it!=lista.end();it++) (*it).EscribirCancionEnFichero(fichero); fichero.close(); return 0; } int Contenedor::LeerDelFichero() { ifstream fichero; fichero.open("Datos.dat"); if(!fichero) return 1; //devuelve 1 si ha habido problemas al abrir el fichero. Cancion c; c.LeerCancionDesdeFichero(fichero); while (!fichero.eof()) { lista.push_back(c); c.LeerCancionDesdeFichero(fichero); } fichero.close(); return 0; } //--------------------------------------------------------------------------- __fastcall TFListado::TFListado(TComponent* Owner) : TForm(Owner) { Contenedor contenedor; contenedor.LeerDelFichero(); if (!(contenedor.GetTamanyo() == 0)) { contenedor.OrdenarPorCodigo(); RecargarLista(); } } //--------------------------------------------------------------------------- //kreo k ai k acer FormClose para hacer q pregunte si //queremos k guarde los datos al darle a la x void TFListado::RecargarLista() { Cancion c; Contenedor contenedor; char* cadena; for (int i=0;i<contenedor.GetTamanyo();i++) { c=contenedor.BuscarCancionPorPosicion(i); LVlistado->Items->Add()->Caption=c.GetCodigo(); cadena=strdup(c.GetTitulo().c_str()); LVlistado->Items->Add()->SubItems->Add(cadena); cadena=strdup(c.GetInterprete().c_str()); LVlistado->Items->Add()->SubItems->Add(cadena); cadena=strdup(c.GetAlbum().c_str()); LVlistado->Items->Add()->SubItems->Add(cadena); cadena=strdup(c.GetGenero().c_str()); LVlistado->Items->Add()->SubItems->Add(cadena); if (c.GetDuracion() == 0) LVlistado->Items->Add()->SubItems->Add (""); else LVlistado->Items->Add()->SubItems->Add (c.GetDuracion()); if (c.GetAnyo() == 0) LVlistado->Items->Add()->SubItems->Add (""); else LVlistado->Items->Add()->SubItems->Add (c.GetAnyo()); } } No se si hace falta algo más. |