الفرق بين المراجعتين ل"Ruby/IO/gets"

من موسوعة حسوب
< Ruby‏ | IO
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>IO.gets‎</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method [[تصنيف: Ruby IO]...')
 
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby IO]]
 
[[تصنيف: Ruby IO]]
يقرأ التابع <code>gets</code> "السطر" الموالي من [[Ruby/IO|مجرى د/خ]]. السطور مفصولة بواسطة <code>sep</code>. إن كان الفاصل يساوي <code>nil</code>، فسيقرأ المحتويات بالكامل، أما إن كان الفاصل معدوم الطول، فستُقرؤ فقرة في كل مرة من مجرى الإدخال (تُفصل الفقرات بسطرين منفصلين). يجب أن يكون المجرى مفتوحًا في وضعية القراءة أو سيُرفع استثناء <code>IOError</code>. سيُعاد السطر المقروء، وستُعين قيمته إلى <code>$_</code>. ستعاد القيمة <code>nil</code> إن تم استُدعي التابع <code>gets</code> عند نهاية الملف.  إن كان الوسيط الأول عددًا صحيحًا أو إن أعطي الوسيط الاختياري الثاني، فلن تكون [[Ruby/String|السلسلة النصية]] المعادة أطول من القيمة المحددة من حيث عدد البايتات (bytes).
+
يقرأ التابع <code>gets</code> السطر التالي من [[Ruby/IO|مجرى د/خ]]. السطور مفصولة بالوسيط <code>sep</code> (انظر فقرة البنية العامة). إن كان الفاصل يساوي <code>nil</code>، فسيقرأ المحتويات بالكامل، أما إن كان معدوم الطول، فستُقرؤ فقرة في كل مرة من مجرى الإدخال (تُفصل الفقرات بسطرين منفصلين).  
  
 +
يجب أن يكون المجرى مفتوحًا في وضعية القراءة أو سيُرفع استثناء <code>IOError</code>.
  
 +
سيُعاد السطر المقروء، وستُحال قيمته على المتغير ‎<code>$_‎</code>. أو ستعاد القيمة <code>nil</code> إن استُدعي التابع <code>gets</code> عند نهاية الملف. 
  
إن كان [[Ruby/IO|مجرى د/خ]] <code>[[Ruby/IO|IO]]</code> يحتوي على حروف متعددة البايتات، فستعيد <code>gets(1)</code> الحرف بالكامل:
+
إن كان الوسيط الأول عددًا صحيحًا أو إن أعطي الوسيط الاختياري الثاني، فلن تكون [[Ruby/String|السلسلة النصية]] المعادة أطول من القيمة المحددة من حيث عدد البايتات.<syntaxhighlight lang="ruby">File.new("testfile").gets  #=> "This is line one\n"
 +
$_                          #=> "This is line one\n"
 +
File.new("testfile").gets(4)#=> "This"‎</syntaxhighlight>إن كان [[Ruby/IO|مجرى د/خ]] يحتوي على حروف متعددة البايتات، فستعيد <code>gets(1)</code> الحرف بالكامل.
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">gets(sep=$/ [, getline_args])  → string or nil
 
<syntaxhighlight lang="ruby">gets(sep=$/ [, getline_args])  → string or nil
سطر 15: سطر 19:
 
===<code>sep‎</code>===
 
===<code>sep‎</code>===
 
فاصل
 
فاصل
===<code>getline_args‎</code>===
 
 
===<code>limit‎</code>===
 
===<code>limit‎</code>===
عدد صحيح يمثل الحد الأٌقصى
+
عدد صحيح يمثل الحد الأٌقصى لعدد البايتات المقروءة.
 
==القيمة المُعادة==
 
==القيمة المُعادة==
 +
سيُعاد السطر المقروء، أو ستعاد القيمة <code>nil</code> إن استُدعي التابع <code>gets</code> عند نهاية الملف. 
 +
 
==أمثلة==
 
==أمثلة==
 
مثال على استخدام التابع <code>gets‎</code>:
 
مثال على استخدام التابع <code>gets‎</code>:
<syntaxhighlight lang="ruby">File.new("testfile").gets   #=> "This is line one\n"
+
<syntaxhighlight lang="ruby"># الحروف الروسية تأخذ بتتين
$_                          #=> "This is line one\n"
+
File.write("testfile", "\u{442 435 441 442}")
File.new("testfile").gets(4)#=> "This"</syntaxhighlight>
+
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"
 +
</syntaxhighlight>
 
==انظر أيضا==
 
==انظر أيضا==
* التابع <code>[[Ruby/IO/getc|getc]]</code>: يقرأ  [[Ruby/String|سلسلة نصية]] مُؤلفة من حرف واحد من [[Ruby/IO|مجرى د/خ]] <code>ios</code>. ويُعيد <code>nil</code> إن استُدعي عند نهاية الملف.
+
* التابع <code>[[Ruby/IO/getc|getc]]</code>: يقرأ  [[Ruby/String|سلسلة نصية]] مُؤلفة من حرف واحد من [[Ruby/IO|مجرى د/خ]]
* التابع <code>[[Ruby/IO/inspect|inspect]]</code>: يُعيد  [[Ruby/String|سلسلة نصية]] تصف [[Ruby/IO|مجرى د/خ]] الذي استُدعي معه <code>[[Ruby/IO|IO]]</code>.
+
* التابع <code>[[Ruby/IO/inspect|inspect]]</code>: يُعيد  [[Ruby/String|سلسلة نصية]] تصف [[Ruby/IO|مجرى د/خ]] الذي استُدعي معه.
 
==مصادر==
 
==مصادر==
 
*[http://ruby-doc.org/core-2.5.1/IO.html#method-i-gets قسم  التابع gets‎ في الصنف IO‎ في توثيق روبي الرسمي.]
 
*[http://ruby-doc.org/core-2.5.1/IO.html#method-i-gets قسم  التابع gets‎ في الصنف IO‎ في توثيق روبي الرسمي.]

مراجعة 14:15، 13 نوفمبر 2018

يقرأ التابع 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"

انظر أيضا

مصادر