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

من موسوعة حسوب

يقرأ التابع gets السطر التالي من مجرى د/خ. السطور مفصولة بالوسيط sep (انظر فقرة البنية العامة). إن كان الفاصل يساوي nil، فسيقرأ المحتويات بالكامل، أما إن كان معدوم الطول، فستُقرؤ فقرة في كل مرة من مجرى الإدخال (تُفصل الفقرات بسطرين منفصلين).

يجب أن يكون المجرى مفتوحًا في وضعية القراءة أو سيُرفع استثناء IOError.

سيُعاد السطر المقروء، وستُحال قيمته على المتغير ‎$_‎. أو ستعاد القيمة nil إن استُدعي التابع gets عند نهاية الملف.

إن كان الوسيط الأول عددًا صحيحًا أو إن أعطي الوسيط الاختياري الثاني، فلن تكون السلسلة النصية المعادة أطول من القيمة المحددة من حيث عدد البايتات.

File.new("testfile").gets   #=> "This is line one\n"
$_                          #=> "This is line one\n"
File.new("testfile").gets(4)#=> "This"‎

إن كان مجرى د/خ يحتوي على حروف متعددة البايتات، فستعيد gets(1)‎ الحرف بالكامل.

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

gets(sep=$/ [, getline_args])   string or nil
gets(limit [, getline_args]) string or nil
gets(sep, limit [, getline_args])  string or nil

المعاملات

sep‎

فاصل

limit‎

عدد صحيح يمثل الحد الأٌقصى لعدد البايتات المقروءة.

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

سيُعاد السطر المقروء، أو ستعاد القيمة nil إن استُدعي التابع gets عند نهاية الملف.

أمثلة

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

# الحروف الروسية تأخذ بتتين
File.write("testfile", "\u{442 435 441 442}")
File.open("testfile") {|f|f.gets(1)} #=> "\u0442"
File.open("testfile") {|f|f.gets(2)} #=> "\u0442"
File.open("testfile") {|f|f.gets(3)} #=> "\u0442\u0435"
File.open("testfile") {|f|f.gets(4)} #=> "\u0442\u0435"

انظر أيضا

مصادر