الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال عن Fseek

بدأه clrscr_funct في 12 فبراير 2009 · 4 رد · 936 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه

  1.  
  2. struct clr
  3. {
  4. int i,j;
  5. };
  6. struct clr q;
  7.  

ادا قمنا بكتابة 50 سجل في ملف

واردنا ان نقوم بقراءة السجل الاخير هل نقوم بكتابة

fseek(f,-1,2)

ام

fseek(f,-sizeof q,2);

اجوا ان يتم شرح الجواب وشكرا مقدما

تم تعديل هذه المشاركة بواسطة Xacker في 12 فبراير 2009 في 06:03

#2

مش عارف سجل يعني إيه هل يعني بايت؟

لكن إذا كتبت كلمة arabteam2000 داخل ملف text.txt

هذا المثال سيقرأ آخر حرف

#include <stdio.h>
int main() {
  char buffer[12];
  FILE *f; 
  f = fopen("test.txt", "r"); 
  fseek (f , 11 , SEEK_SET);
  fgets(buffer, 2, f);
  printf("last character is: %s",buffer);		
  fclose(f);
  return 0;
}

المثال سهل جدا وأعتقد انه مش محتاج شرح

rasool4k.gif

[وسط]mimetex.cgi?MSN:root@root-shell.net.

[/وسط]

#3

البارمتر الاوسط = طول السجل × ترتيبة.

في مثالك يكون:

  1. fseek(f,sizeof(q)*49,SEEK_SET);
  2.  

سجل 50 موقعه =49

tvquran_6.gif

#4

لم انتبه انك استخدمت SEEK_END .

اذا كنت تريد استخدامه فهو بنفس الطريقه لكن اشارة سالب

اذا اردت السجل خمسين من سجلات عددها خمسين

  1. fseek(f,-(sizeof(q)*50),SEEK_END);
  2.  

واذا ارد العنصر رقم واحد من سجلات عددها خمسين

  1. fseek(f,-(sizeof(q)*50*50),SEEK_END);
  2.  

tvquran_6.gif

#5

شكرا لكم على الاجابة يااخوة وجزاكم الله خيرا :lol:

مواضيع مشابهة