Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/11/2015, 11:43
aguml
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 3 meses
Puntos: 3
Respuesta: Decidme que tengo mal :,(

Ufff tiene muchos fallos. Pon como es el archivo para poder ayudarte mejor y tener una idea de lo que quieres hacer porque veo que usas fseek hasta en la sopa y no le veo sentido alguno.

Edito:
Te pongo un ejemplo usando lo que C++Builder pone a tu alcance para facilitarte las cosas:
Código C++:
Ver original
  1. //---------------------------------------------------------------------------
  2.  
  3. #include <vcl.h>
  4. #pragma hdrstop
  5.  
  6. #include "Unit1.h"
  7. //---------------------------------------------------------------------------
  8. #pragma package(smart_init)
  9. #pragma resource "*.dfm"
  10. TForm1 *Form1;
  11. //---------------------------------------------------------------------------
  12. __fastcall TForm1::TForm1(TComponent* Owner)
  13.    : TForm(Owner)
  14. {
  15. }
  16. //---------------------------------------------------------------------------
  17.  
  18. void __fastcall TForm1::FormCreate(TObject *Sender)
  19. {
  20.    TStrings *lista;
  21.    bool error=false;
  22.  
  23.    //Pido memoria para la lista
  24.    try{
  25.       lista=new TStringList;
  26.    }catch(std::bad_alloc){
  27.       error=true;
  28.    }
  29.  
  30.    if(!error){
  31.       if(FileExists("nationality.lst")){ //Compruebas si existe
  32.          //Lleno la lista desde el archivo
  33.          try{
  34.             lista->LoadFromFile("nationality.lst");
  35.          }catch(std::bad_alloc){
  36.             error=true;
  37.          }
  38.       }else{
  39.          try{
  40.             //Lleno la lista con las cadenas deseadas
  41.             lista->Add("¡Viva España!");
  42.             lista->Add("Marruecos");
  43.             lista->Add("Gibraltar");
  44.             //Guardo la lista en el archivo
  45.             lista->SaveToFile("nationality.lst");
  46.             //Limpio la lista
  47.             lista->Clear();
  48.             //Lleno la lista desde el archivo
  49.             lista->LoadFromFile("nationality.lst");
  50.          }catch(std::bad_alloc){
  51.             error=true;
  52.          }
  53.       }
  54.  
  55.       if(!error){
  56.          //Le meto toda la lista de strings obtenida al combobox
  57.          try{
  58.             ComboBox1->Items->AddStrings(lista);
  59.          }catch(std::bad_alloc){
  60.             error=true;
  61.          }
  62.  
  63.          //Coloco el primero como seleccionado si se añadio alguno
  64.          if(ComboBox1->Items->Count > 0)
  65.             ComboBox1->ItemIndex=0;
  66.       }
  67.       delete lista; //Libero la memoria ocupada por la lista
  68.    }
  69.  
  70.    if(error)
  71.       ShowMessage("No hay memoria suficiente");
  72. }
  73. //---------------------------------------------------------------------------

Es algo basico pero creo que hace lo que quieres y controlo solo los errores que se puedan producir por falta de memoria pero si hay otro tipo de error no lo estoy controlando.

Última edición por aguml; 04/11/2015 a las 13:45