Sigo sin entender el error...
Esto es lo que declaro en el Form1: Es decir, si se elije esta opcion...
////////////////////////////////////////// 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(); if (strcmp(Reg.ApeNom,"")!=g) { cont++; Arr[cont]=Reg; } } cont--; } ///////////////////////////////////////// void Apellido() { int i,j,P; Verificar(P); if (P!=1) { Aseguados=fopen("C:\\Asegurados.dat","a+b"); Form1->Hide(); Form7->Label1->Caption=("Ingrese Apellido a buscar"); Form7->Edit1->Text; Form7->Edit1->Clear(); Form7->Edit1->Visible=true; Form7->Show(); Form7->Edit1->SetFocus(); i=0; Ap(Arre,i); Ordenar(Arre,i); Mostrar(Arre,i); fclose(Asegurados); } } ///////////////////////////////////////////// Y en el Form7, que es donde se va a producir la busqueda.... if (Form1->RadioGroup1->ItemIndex==4) { Edit1->Clear(); Edit1->Visible = true; Edit1->Enabled = true; Form7->Edit1->Clear(); Form7->Show(); if (Form7->Edit1->Text=="-1") ShowMessage ("No se acepta campo vacío. Ingrese una opcion"); else { AnsiString g; g=Form7->Edit1->Text; strcpy(nom,g.c_str()); while (!(feof(Asegurados))&& (i<=tam)) { fread(&Reg,sizeof(Reg),1,Asegurados); if (nom==Reg.ApeNom) { i=i+1; Arre[i]=Reg; } } if (i>0) { if (i>1) i--; Ordenar(Arre,i); Muestra (Arre,i); Form7->Edit1->Clear(); } ////////////////////////////////////////////////// Por que...al cambiar del Form1 al Form7, es dcir en ese cambio de ventana me dice que no se puede convertir String en Double...Sigo sin entender....Algiuen detecta mi error?????Desde ya...muchas gracias |
Código:
void Ap (RegAgenda Arr[], int &cont) 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 Código:
if(AnsiString(Reg.ApeNom)!=g) Código:
Arr[cont]=Reg; Código:
memcpy(&Arr[cont],&Reg,sizeof(Reg)); |
La franja horaria es GMT +2. Ahora son las 16:55:35. |
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