التابع IO.read‎ في روبي

من موسوعة حسوب
< Ruby‏ | IO
مراجعة 07:08، 22 ديسمبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (مراجعة وتدقيق.)

يقرأ التابع read ملفًا محددًا بعد فتحه ثم يغلقه قبل إعادة الناتج.


البنية العامة

read(name, [length [, offset]] [, opt] ) string

المعاملات

name‎

اسم الملف المراد القراءة منه. إن كان name يبدأ بمحرف الأنبوب ("|")، فستُنشَأ عملية فرعية (subprocess) بطريقة مشابهة للتابع Kernel.open، ثم ستعاد مُخرجاتها.

length‎

عدد صحيح يمثل عدد البايتات المراد قراءتها من الملف. القيمة الافتراضية لهذا المعامل هي القراءة حتى نهاية الملف.

offset‎

عدد صحيح يمثل إزاحة موضع المؤشر في الملف إلى المكان الذي يراد بدء القراءة منه.

opt‎

كائن من النوع Hash يقبل المفاتيح التالية:

  • encoding: - سلسلة نصية أو ترميز يحدد ترميز السلسلة النصية المقروءة من الملف. سيتم تجاهل ‎:encoding إذا تم تمرير المعامل length. انظر صفحة التابع Encoding.aliases للتعرف على الترميزات الممكنة.
  • mode: - سلسلة نصية أو عدد صحيح يحدد المعامل mode (وضع الفتح) لأجل استخدامه من قبل الدالة open()‎ عند فتح الملف المراد قراءته. ينبغي أن يبدأ بالوضع "r" (وضع القراءة)، وإلا سيتسبب في حدوث خطأ. انظر صفحة new للحصول على قائمة من الأوضاع الممكنة.
  • ‎:open_args - مصفوفة تحدد الوسائط الممررة إلى التابع open()‎ على هيئة مصفوفة. لا يمكن استخدام هذا المفتاح جنبًا إلى جنب مع المفتاحين ‎:‎encoding أو ‎:mode.

القيمة المعادة

تعاد سلسلة نصية تحوي البيانات التي قُرأَت من الملف ذي الاسم name.

أمثلة

مثال على استخدام التابع read‎:

IO.read("testfile")              #=> "This is line one\nThis is line two\nThis is line three\nAnd so on...\n"
IO.read("testfile", 20)          #=> "This is line one\nThi"
IO.read("testfile", 20, 10)      #=> "ne one\nThis is line "
IO.read("binfile", mode: "rb")   #=> "\xF7\x00\x00\x0E\x12"‎

انظر أيضًا

  • التابع readlines: يقرأ ملفًا بأكمله سطرًا سطرًا ثم يعيد تلك الأسطر في مصفوفة.
  • التابع write: يفتح ملفًا محدَّدًا ويكتب فيه السلسلة النصية المُمرَّرة إليه ثم يغلقه ويعيد عدد البايتات التي كتبها. 

مصادر