PDA

View Full Version : ویرایش



ammarkarimi
جمعه 18 دی 1388, 20:41 عصر
کد ویراسش در زبان سی چه طور است؟
رکورد ها را در فایل باینر ی به صورت زیر ذخیره می کنم

fwrite(@b,sizeof(struct book),1,fp)

حالا برای ویرایش چه کدی را بنویسم؟؟؟؟

ammarkarimi
جمعه 18 دی 1388, 20:49 عصر
یا یک برنامه به زبان سی (نه سی پلاس پلاس) که که یه ساختار رو در یک فایل ذخیره کنه ونشان بده و....
البته من فقط پاک کردن رکورد از فایل و ویرایش آن را می خواهم

tdkhakpur
جمعه 18 دی 1388, 20:54 عصر
برای پاک کردن شما باید از ساختار ایندکس برای رکوردها استفاده میکردید تا با حذف ایندکس رکورد شما هم حذف میشد.
ولی برای ویرایش باید بوسیله fseek به ابتدای محل رکورد خودتان رفته و کد زیر را برای ثبت انجام دهید.


fwrite(&b,sizeof(struct book),1,fp)

ammarkarimi
جمعه 18 دی 1388, 20:58 عصر
چطور با fseek به ابتدای رکورد بروم؟

ammarkarimi
جمعه 18 دی 1388, 21:04 عصر
برای ویرایش چطور به ابتدای رکورد مورد نظر بروم؟
چطور با fseek یک رکورد به عقب بازگردم؟؟؟؟؟؟

tdkhakpur
جمعه 18 دی 1388, 22:26 عصر
ببینید این کار شماس که رکورد را پیدا کنید مطمئنا وقتی رکورد را پیدا کردید اشاره گر فایل به آخر رکورد اشاره دارد که می توانید با کد زیر به ابتدای رکورد بروید.


unsigned long offset;
offset = ftell(fp);
fseek(fp, offset-sizeof(rec),0);

rec ساختار رکورد شماست.

ammarkarimi
شنبه 19 دی 1388, 13:21 عصر
سپاسگزار
درست شد