با سلام
من وقتی تو یه فایل که بدین گونه باز شده :
fp=fopen("test.dat","wb
وقتی میخایم یه استراکچر رو توش ذخیره کنم
همیشه یه رکورد رو برنامه خودش اضافه میکنه
که مقدارش صفر است
چطور جلوی این کار رو بگیریم
با تشکر
با سلام
من وقتی تو یه فایل که بدین گونه باز شده :
fp=fopen("test.dat","wb
وقتی میخایم یه استراکچر رو توش ذخیره کنم
همیشه یه رکورد رو برنامه خودش اضافه میکنه
که مقدارش صفر است
چطور جلوی این کار رو بگیریم
با تشکر
اون قسمت از کد برنامه ات که استراکچر رو اضافه میکنه بزار تا بشه نظر داد.
[code]
#define maxsize 10
int con=0; //This is our counter for last structure node number
struct student
{
char name[20];
int grade[5];
}std[maxsize];
void save()
{
FILE *fp;
int i;
fp=fopen("test.dat","wb");
for(i=0;i<con;i++)
{
fwrite(&std[i],sizeof(struct student),1,fp);
}
clrscr();
gotoxy(25,10);
printf("Saved Successfuly");
fclose(fp);
getch();
}
[code/]
من که خطای خاصی نمیبینم.
ولی خیلی احتمالات میشه داد.
اگه کل برنامه رو بزاری بهتر میشه نظر داد.
البته اگه مایل بودی.
موفق باشید
فکر نکنم نیاز به کل برنامه باشه
چون که فقط تو این تابع و یه تابع دیگه با فایل کار میشه !
[code]
void load()
{
int i;
FILE *fp;
fp=fopen("test.dat","rb");
while(!feof(fp))
{
fread(&std[con],sizeof(struct student),1,fp);
con++;
}
gotoxy(30,26);
printf("Load Is Complete");
fclose(fp);
getch();
}
[/code[
سلام.نوشته شده توسط SIR_asad
اول یک سوال.
این یک رکورد اضافی آخر فایله یا اولش.
بعدشم توی این کد شما con رو صفر کردید و دیگر مقدار ندادید و بعد در شرط حلقه ازش استفاده کردید. چرا؟
درسته که فقط این دو روال به فایل دسترسی دارن ولی نحوه استفاده از این روال ها هم مهمه.فکر نکنم نیاز به کل برنامه باشه
چون که فقط تو این تابع و یه تابع دیگه با فایل کار میشه !
باید کل برنامه رو دید تا بشه نظر داد.بعدشم توی این کد شما con رو صفر کردید و دیگر مقدار ندادید و بعد در شرط حلقه ازش استفاده کردید. چرا؟
البته اگه Security برنامه در حدی باشه که بشه سورسش رو منتشر کرد !!!
موافقم !!!باید کل برنامه رو دید تا بشه نظر داد.
البته اگه Security برنامه در حدی باشه که بشه سورسش رو منتشر کرد !!!