Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-06-2006
Avatar de OSKR
OSKR OSKR is offline
Miembro
 
Registrado: nov 2004
Ubicación: San Cristóbal/Táchira/Venezuela
Posts: 389
Poder: 20
OSKR Va por buen camino
Código:
void Ap (RegAgenda Arr[], int &cont)
{ Agenda4=fopen("C:\\Asegurados.dat","a+b");
   fseek (Asegurados,0,SEEK_SET);//Busca el inicio del archivo
     cont=0;
     IniArre(Arr,tam);
     Ini_R(Reg);
    AnsiString g;
     while (!(feof(Asegurados)) && (cont<=tam))
           { fread(&Reg,sizeof(Reg),1,Asegurados);
              g=Form7->Edit1->Text.c_str(); //No es necesario esto ultimo
              if(strcmp(Reg.ApeNom,"")!=g)//Comparando un AnsiString con un
                                                    //número?
                { cont++;
                           Arr[cont]=Reg;
                }
   }
  cont--;
}
Esa estructura llamada Reg debería ser inicializada antes de escribir en ella con el fread, xq si esta fallase...como sabrías si escribió o no? al menos q lo iguales a un entero y ahí tendrás la cantidad de caracteres leídos,
Supón q nada se leyó....entonces Reg.ApeNom es nula, como está en una estructura y es un arreglo (no declarado como puntero...me imagino) entonces para saber si realmente hay algo allí sería
Código:
if(Reg.ApeNom[0]!=0) // o NULL o '\0'...igual
luego...si no es nula, puedes comparar con el AnsiString g así:
Código:
if(AnsiString(Reg.ApeNom)!=g)
ya q el operador == y el != están sobrecargados para el AnsiString
Código:
Arr[cont]=Reg;
Supongo q RegAgenda es una clase con el operador = sobrecargado para soportar estructuras como Reg, sino fuese así.....pues habría q copiar el contenido...y suponiendo q te fuera válido esa asignación yo lo haría así:
Código:
memcpy(&Arr[cont],&Reg,sizeof(Reg));
No he ojeado el resto del código, empieza por arreglar esta parte....otra cosa..con el Debugger puedes saber en q línea ocurrela excepción.
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad."
Simón Bolívar
(Carta al Coronel Inglés Patricio Cambell 05/08/1829).
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Entender lo que pasa con mis datos IVAND Conexión con bases de datos 6 03-02-2006 14:23:53
Entender una sentencia Renees Varios 5 02-09-2005 19:35:01
Otro error para conectarme como cliente, sigo son conectarme :( Lore Castillo Oracle 1 21-06-2005 02:16:14
sigo con MDI pablo OOP 2 27-02-2005 17:42:15
Sigo con mis preguntitas!!! Critter Varios 1 15-12-2004 21:44:05


La franja horaria es GMT +2. Ahora son las 22:29:29.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi