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//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TStrings *lista;
bool error=false;
//Pido memoria para la lista
try{
lista=new TStringList;
}catch(std::bad_alloc){
error=true;
}
if(!error){
if(FileExists("nationality.lst")){ //Compruebas si existe
//Lleno la lista desde el archivo
try{
lista->LoadFromFile("nationality.lst");
}catch(std::bad_alloc){
error=true;
}
}else{
try{
//Lleno la lista con las cadenas deseadas
lista->Add("¡Viva España!");
lista->Add("Marruecos");
lista->Add("Gibraltar");
//Guardo la lista en el archivo
lista->SaveToFile("nationality.lst");
//Limpio la lista
lista->Clear();
//Lleno la lista desde el archivo
lista->LoadFromFile("nationality.lst");
}catch(std::bad_alloc){
error=true;
}
}
if(!error){
//Le meto toda la lista de strings obtenida al combobox
try{
ComboBox1->Items->AddStrings(lista);
}catch(std::bad_alloc){
error=true;
}
//Coloco el primero como seleccionado si se añadio alguno
if(ComboBox1->Items->Count > 0)
ComboBox1->ItemIndex=0;
}
delete lista; //Libero la memoria ocupada por la lista
}
if(error)
ShowMessage("No hay memoria suficiente");
}
//---------------------------------------------------------------------------
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.