التابع IO.read
في روبي
يقرأ التابع 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
: يفتح ملفًا محدَّدًا ويكتب فيه السلسلة النصية المُمرَّرة إليه ثم يغلقه ويعيد عدد البايتات التي كتبها.