الساعة الآن 01:17 AM


أهلا وسهلا بك فى منتديات جامعة الإمام محمد بن سعود الإسلامية.

إذا كانت هذه زيارتك الأولى للملتقى تأكد من زيارة صفحة المساعدة ; كما يجب عليك التسجيل للمشاركة فى أنشطة الملتقى والكتابة فى أقسامه . نتمنى لك تصفحاً سعيداً..إدارة الملتقى

سجل دخولك الأن









NOTICE | تنبيـــه :- هذا الموضوع قديم تم انشائه قبل 1443 يوم مضى , قد تكون مشاركتك هنا غير مجدية يُفضل انشاء موضوع جديد ان تطلب الامر.
النتائج 1 إلى 4 من 4
  1. #1
    الصورة الرمزية ||..ĤmŠ..||
    تاريخ التسجيل : Sep 2011
    الجنس :
    عدد الكتب في مكتبتي : 0
    التقييم : 54

    بياناتى الأكاديمية

    التخصص

    :دراسات المعلومات

    الكلية

    : كلية علوم الحاسب والمعلومات

    المستوى

    : الثالث

    التفاعل

    مواضيعى

    : 86

    مشاركاتى

    : 86

    مقالات المدونة :

    ممكن شرح Random-Access Files


    لاهنتو احد يشرح لنا
    Random-Access Files
    في هذي الشريحتين

    كود PHP:
    [LEFT]
    ostream member function write
    If the stream is associated with a filethe writing is at the “put” file-position pointer
    First argument
    const char pointing to bytes in memory
    Second argument
    A size_t specifying the number of bytes to write
    Example
    outFile
    .writereinterpret_cast< const char * >( &object ), sizeof( object ) );
    Copies data directly from memory into file
    .......................................
    Opening for input and output in binary mode
    Use an fstream object
    Combine file
    -open modes ios::inios::out and ios::binary
    Separate each open mode from the next with the bitwise inclusive 
    OR operator (|)
    Use function 
    seekp to set the “put” file-position pointer to the specific position
    Example calculation
    n – 1 ) * sizeofClientData )
    Byte location for nth ClientData record
    Use function write to output the data[/LEFT
    reinterpret_cast >> ايش مهمتها

  2. #2
    جامعي نشيط
    الصورة الرمزية ||..ĤmŠ..||

    تاريخ التسجيل : Sep 2011
    عدد الكتب في مكتبتي : 0
    الجنس :
    معدل تقييم المستوى : 7
    التقييم : 54

    بياناتى الأكاديمية

    نظام الدراسة

    :

    التخصص

    : دراسات المعلومات

    الكلية

    : كلية علوم الحاسب والمعلومات

    المستوى

    : الثالث

    التفاعل

    مواضيعى

    : 86

    مشاركاتى

    : 86

    مقالات المدونة :


    :frown-new: مع نفسي

  3. #3
    الطيب
    الصورة الرمزية Mr.Unix

    تاريخ التسجيل : Apr 2012
    عدد الكتب في مكتبتي : 0
    الجنس : ذكر
    معدل تقييم المستوى : 5
    التقييم : 50

    بياناتى الأكاديمية

    نظام الدراسة

    :

    التخصص

    : حاسبات ونظم معلومات

    الكلية

    : غير منتسب للجامعة

    المستوى

    : خرّيج

    التفاعل

    مواضيعى

    : 4

    مشاركاتى

    : 4

    مقالات المدونة :


    بسم الله
    ايش معني Random Access File
    هو الملف اللي ممكن ان حنا نكتب او نسجل(Write) او نقرأ او نسترد(Read)
    البيانات (Data) بطريقة عشوائية (Random) وعشوائي معناه ان حنا ممكن نقرأ من نصف الملف(File) او من أوله
    أو من اخره اومن اي مكان وايضا ممكن نكتب فيه بنفس الطريقة بخلاف الملف التسلسلي (Squencial)اللي لازم نقرأه من اوله او نكتب
    من أوله وعشان كدة البيانات اللي في الملف التسلسلي بتدمر مع كل عملية كتابة جديدة!!!؟
    والملف العشوائي لدية خاصية تسمي (File-Position pointer) وهو رقم يحدد الموقع الذي سيتم منه القراءة او الكتابة علي الملف
    فمثلا لو كان هناك ملف حجمه 120 كيلو بايت(KBytes) واردنا ان نقرأ من عند (Byte) رقم 100 فلابد من وضع المؤشر(File Position Pointer)
    عند البايت رقم 100 وهكذا بالنسبة لعملية الكتابة...
    واذا اردنا ان نفتح ملف من اجل كتابة البيانات علي هيئة characters فيمكننا استخدام Class ostream
    والتي من اعضاءها الfunction
    write كما هي موجودة في الكتابة حقك وتسخدم هذه الدالة او الطريقة في كتابة البيانات علي الملف
    وهي تستقبل 2 باراميترز او ارجيومنتس(arguments) كما موجود بالتالي
    write( reinterpret_cast< const char * >( &object ), sizeof( object ) )
    reinterpret_cast هي مستخدمة في لغة السي بلس بلس كتكنيك لتحويل من نوع بيان الي نوع اخر فنوع البيان اللي موجود
    هو البيان (object) واللي تم تحويله عن طريق هذا التكنيك الى نوع بيان اخر وهو char * او نص وهي طريقه تشبه كثيرا عملية التحويل
    في البيانات الاولية زي تحويل ا int الي double ----
    اما اذا اردنا فتح الملف من اجل القراءة والكتابة فنستخدم ال class fstream
    وان شاء الله احاول اكمل مرة تانية

    عرض التوقيع
    ***وما توفيقي الا بالله عليه توكلت واليه انيب***
    Java is good, C# is better , C++ is the base, Visual Basic is simple, But C is the origin of modern Programming Languages
  4. #4
    الطيب
    الصورة الرمزية Mr.Unix

    تاريخ التسجيل : Apr 2012
    عدد الكتب في مكتبتي : 0
    الجنس : ذكر
    معدل تقييم المستوى : 5
    التقييم : 50

    بياناتى الأكاديمية

    نظام الدراسة

    :

    التخصص

    : حاسبات ونظم معلومات

    الكلية

    : غير منتسب للجامعة

    المستوى

    : خرّيج

    التفاعل

    مواضيعى

    : 4

    مشاركاتى

    : 4

    مقالات المدونة :


    بسم الله
    وفي الا fstream طريقة او دلة (function) تسمي (open) والبروتوتايب حقها كالتالي
    void open ( const char * filename,
    ios_base::openmode mode = ios_base::in | ios_base::out );
    وكما هو واضح ان هذه الدالة تأخذ 2 باراميترز الاول اسم الملف -- والثاني نظام فتح الملف
    وهو in لجعل الملف جاهز للقراءة اي اننا سنقرأ او نسترد البيانات من الملف
    والثاني out لجعل الملف جاهز للكتابة
    اما binary فهي لجعل الملف فو هيئة بيانات اوليه وليست نص او ذلك والبيانات الاولية في السي بلس بلس زي
    ال int, double, float..
    وهناك ايضا انظمة اخري لفتح الملفات مثل
    app
    trunc
    ate
    ================================================== ===
    مهم جدا لتوضيح file-position pointer
    اولا افترض معي ان الحرف مثلا "u" او الحرف "n" او اي حرف اخر سواء كان الحرف ( حرف "i" - او رمز"&" - او رقم "7")
    يمكن تخزينة في جهاز الكمبيوتر علي حجم 2 بايت (bytes) يعني انا لو عندي هاردديسك (harddisk) - القرص الصلب - مساحته مثلا وليس
    حقيقة نصف جيجا يعني الهاردديسك ده يساوي حوالي 536870912 بايت يعني احنا نقدر نكتب علي الهاردديسك ده كام حرف الحرف بيساوي
    2 بايت يبقي ممكن نقول ان حجم اهارد 536870912 تقسيم 2 مساحة تخزين الحرف يبقى نقدر نكتب علي الهاردديسك حوالي 268435456 حرف
    ......... اذا قدرت تستوعب كمل
    فمثلا اذا اردنا ان حنا نكتب اسم مثلا داخل الملف اللي الوجود علي الهاردديسك فمثلا الملف نفترض ان حنا ما كتبنا عليه شئ يعني مساحته 0 بايت
    يعني الهاردديسك لسه فارغ لسه مساحته 536870912 بايت
    والاسم اللي حنا عايزين نكتبه مثلا unix في ملف جديد علي الهارد بنسميه مثلا "names.txt" فاحنا نقول ان حجم الحرف قلنا 2 بايت يعني unix بتساوي 4 احرف ضرب 2 يبقي unix ممكن تخزينها
    في حوالي 8 بايت يبقي المساحة الفارغة علي الهاردديسك بتساوي 536870912 طرح 8 حجم الملف اللي مكتوب به كلمة unix
    يقي تساوي 536870904 دي المساحة الفارغة + مساحة الملف "names.txt" اللي هي 8 = ايش؟ = 536870912 طيب اظن كده اوكيه لو اوكيه ؟ تابع
    طيب انا عايز اكتب علي نفس الملف مثلا اسم تاني غير unix مثلا اكتب Windows l فازاي احدد للداله موقع البايت اللي من بعده سيتم
    كتابة اسم جديد
    في هذه الحالة نستخدم دالة اخري تسمي seekp وهذه الدالة تأخذ fباراميتر من نوع long -- وهو الذي يحدد عملية الكتابة التالية - يعني اي عملية كتابة جديدة
    ستبدأ من عند هذا الرقم وهذا الرقم طبعا هو عدد البايت
    يعني زي ما قلنا مثلا في المثال السابق unix اخذت 8 بايت يبقي لما احب اكتب اسم جديد اللي هو Windows من غير ما ادمر كلمة unix
    لابد ان اوجه موقع مؤشر الملف الي المكان الصحيح في الملف ويتم ذلك عن طريق الدالة seekp
    ففي المثال حقنا مثلا نقول (8)seekp ليش 8 ??
    وبعدين نكتب علي الملف كلمة Windows .....
    وان شاء الله المرة القادمة اعطي الاكواد حق المثال اللي قلناه --- هيكون افضل

    عرض التوقيع
    ***وما توفيقي الا بالله عليه توكلت واليه انيب***
    Java is good, C# is better , C++ is the base, Visual Basic is simple, But C is the origin of modern Programming Languages

معلومات الموضوع

الأعضاء الذين يشاهدون هذا الموضوع

الذين يشاهدون الموضوع الآن: 1 (0 من الأعضاء و 1 زائر)

مواقع النشر (المفضلة)

مواقع النشر (المفضلة)

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •