• Domingo 28 de Abril de 2024, 22:35

Autor Tema:  Problema con TListView  (Leído 1269 veces)

TListView

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Problema con TListView
« en: Lunes 24 de Agosto de 2009, 12:07 »
0
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.

lair

  • Miembro MUY activo
  • ***
  • Mensajes: 213
  • Nacionalidad: mx
    • Ver Perfil
Re: Problema con TListView
« Respuesta #1 en: Lunes 24 de Agosto de 2009, 17:23 »
0
coloca tu codigo para poder ayudarte mejor :beer:

TListView

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Problema con TListView
« Respuesta #2 en: Miércoles 26 de Agosto de 2009, 13:20 »
0
//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.