Tema: Ayudaaaa
Ver Mensaje Individual
  #1  
Antiguo 12-01-2006
aoiTo aoiTo is offline
Miembro
 
Registrado: jul 2004
Ubicación: Cádiz - España
Posts: 21
Reputación: 0
aoiTo Va por buen camino
Ayudaaaa

buenas a tod@s, necesito ayuda con el siguiente codigo.Tengo el siguiente .h:

#ifndef _TALBUM_
#define _TALBUM_

typedef struct{
AnsiString Album;
AnsiString Grupo;
AnsiString Estilo;
AnsiString Cover;
int Formato;
}tAlbum;

tAlbum *Catalogo;

#endif

Y ahora el siguiente trozo de codigo:

void __fastcall TfrmCMusica::FormActivate(TObject *Sender)
{
int i=0,j;
AnsiString disco;

if(!access("album.txt",0)){
memoAux->Lines->LoadFromFile("album.txt");
i = memoAux->Lines->Count;
}

//Reservamos memoria para el vector
Catalogo=(tAlbum*)malloc(sizeof(tAlbum)*i);

//Inicializamos el vector con los discos que ya tenemos guardados
for(j=0;j<i;j++){
disco = memoAux->Lines->operator [](j);
Catalogo[j].Album = disco.SubString(1,disco.Pos(":")-1);
disco.Delete(1,disco.Pos(":"));

Catalogo[j].Grupo = disco.SubString(1,disco.Pos(":")-1);/* aki me falla*/
disco.Delete(1,disco.Pos(":"));

Catalogo[j].Estilo = disco.SubString(1,disco.Pos(":")-1);
disco.Delete(1,disco.Pos(":"));
Catalogo[j].Formato= disco.ToInt();
}

}

donde esta indicado me falla al ejecutar y no se pork sera, es como si tuviera k reservar memomria para un AnsiString, pero no tiene sentido, pork es como si tuviera k reservar memoria para un int(o eso creo yo).

Otra cosa es k si en el .h en vez de declarar Catalogo como un puntero a un tAlbum lo declaro como un array de 20(por ejemplo) funciona perfectamente, el problema esta en k no puedo saber el tamaño del vector.

A ver si me puede ayudar alguien, y gracias de antemano.
Responder Con Cita