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

من موسوعة حسوب
< Ruby‏ | IO
اذهب إلى التنقل اذهب إلى البحث
ط (تدقيق)
 
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby IO]]
 
[[تصنيف: Ruby IO]]
ينفذ التابع <code>each_line</code> الكتلة المعطاة على كل سطر في [[Ruby/IO|مجرى د/خ]]، حيث تُفصل الأسطر بالوسيط <code>sep</code> (انظر فقرة البنية العامة).  
+
ينفذ التابع <code>each_line</code> الكتلة المعطاة على كل سطر في [[Ruby/IO|المجرى]] الذي استدعي معه.  
  
يجب أن يكون [[Ruby/IO|مجرى د/خ]] مفتوحًا في وضعية القراءة أو سيُرفع استثناء <code>IOError</code>.
+
يجب أن يكون [[Ruby/IO|المجرى]] مفتوحًا في وضعية القراءة، وإلا سيُطلق الاستثناء <code>[[Ruby/IOError|IOError]]</code>.
  
في حال لم تُعطى أي كتلة، فسيُعاد كائن من الصنف [[Ruby/Enumerator|Enumerator]] بدلاً من ذلك.
+
في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف <code>[[Ruby/Enumerator|Enumerator]]</code> بدلًا من ذلك.
 
 
راجع صفحة <code>[[Ruby/IO/readlines|readlines]]</code> لمزيد من التفاصيل حول <code>getline_args</code>.
 
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">each_line(sep=$/ [, getline_args])  {|line| block } → ios
 
<syntaxhighlight lang="ruby">each_line(sep=$/ [, getline_args])  {|line| block } → ios
سطر 17: سطر 15:
 
==المعاملات==
 
==المعاملات==
 
===<code>sep‎</code>===
 
===<code>sep‎</code>===
فاصل
+
محرف يمثِّل الفاصل بين الأسطر. القيمة الافتراضية هي: <code>/$</code>.
 
===<code>limit‎</code>===
 
===<code>limit‎</code>===
عدد صحيح يمثل الحد الأٌقصى.
+
عدد صحيح يمثل الحد الأٌقصى للأسطر التي ستطبق عليها العملية.
  
==القيمة المُعادة==
+
=== <code>getline_args</code> ===
يعيد التابع <code>each</code> [[Ruby/IO|مجرى د/خ]] الذي استُدعي معه، وفي حال لم تُعطى أي كتلة، فسيُعاد كائن من الصنف <code>[[Ruby/Enumerator|Enumerator]]</code> 
+
راجع صفحة <code>[[Ruby/IO/readlines|readlines]]</code> لمزيد من التفاصيل حول هذا المعامل.
  
 +
==القيمة المعادة==
 +
يعاد [[Ruby/IO|المجرى]] المعطاة بعد تمرير كل سطر من أسطره إلى الكتلة <code>block</code>، أو يعاد كائن من الصنف <code>[[Ruby/Enumerator|Enumerator]]</code> في حال لم تُعطَ أية كتلة. 
 
==أمثلة==
 
==أمثلة==
 
مثال على استخدام التابع <code>each_line‎</code>:
 
مثال على استخدام التابع <code>each_line‎</code>:
 
<syntaxhighlight lang="ruby">f = File.new("testfile")
 
<syntaxhighlight lang="ruby">f = File.new("testfile")
f.each {|line| puts "#{f.lineno}: #{line}" }‎</syntaxhighlight>الناتج:<syntaxhighlight lang="ruby">1: This is line one
+
f.each {|line| puts "#{f.lineno}: #{line}" }‎</syntaxhighlight>ناتج تنفيذ هذه الشيفرة هو:<syntaxhighlight lang="text">1: This is line one
 
2: This is line two
 
2: This is line two
 
3: This is line three
 
3: This is line three
 
4: And so on...‎</syntaxhighlight>
 
4: And so on...‎</syntaxhighlight>
==انظر أيضا==
+
==انظر أيضًا==
* التابع <code>[[Ruby/IO/each_codepoint|each_codepoint]]</code>: ينفذ الكتلة المعطاة، مع تمرير الرمز العددي (Integer ordinal) لكل حرف من الحروف الموجودة في مجرى د/خ، مع تمرير رمز اليونيكود (codepoint) كوسيط.
+
*التابع <code>[[Ruby/IO/each|each]]</code>: ينفذ الكتلة المعطاة على كل سطر في [[Ruby/IO|المجرى]] الذي استُدعي معه.
 
+
*التابع <code>[[Ruby/IO/each byte|each_byte]]</code>: يستدعي الكتلة المعطاة على كل بايت (0..255) في [[Ruby/IO|المجرى]] الذي استدعي معه.
* التابع <code>[[Ruby/IO/each char|each_char]]</code>: يستدعي الكتلة المعطاةة على كل حرف في مجرى د/خ
+
*التابع <code>[[Ruby/IO/each char|each_char]]</code>: يستدعي الكتلة المعطاة على كل محرف في [[Ruby/IO|المجرى]] الذي استدعي معه.
* التابع <code>[[Ruby/IO/each byte|each_byte]]</code>: يستدعي  الكتلة المعطاة على لكل بايت (0..255) في [[Ruby/IO|مجرى د/خ]] 
+
*التابع <code>[[Ruby/IO/each codepoint|each_codepoint]]</code>: يمرر كل عدد من الأعداد الترتيبية (Integer ordinal) لكل محرف من المحارف الموجودة في [[Ruby/IO|المجرى]] الذي استدعي معه إلى الكتلة المعطاة.
 
 
 
==مصادر==
 
==مصادر==
*[http://ruby-doc.org/core-2.5.1/IO.html#method-i-each_line قسم التابع each_line‎ في الصنف IO‎ في توثيق روبي الرسمي.]
+
*[http://ruby-doc.org/core-2.5.1/IO.html#method-i-each_line قسم التابع each_line‎ في الصنف IO‎ في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 09:26، 22 ديسمبر 2018

ينفذ التابع each_line الكتلة المعطاة على كل سطر في المجرى الذي استدعي معه.

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

في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف Enumerator بدلًا من ذلك.

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

each_line(sep=$/ [, getline_args])  {|line| block }  ios
each_line(limit [, getline_args]){|line| block }  ios
each_line(sep, limit [, getline_args]) {|line| block }  ios
each_line(...) an_enumerator

المعاملات

sep‎

محرف يمثِّل الفاصل بين الأسطر. القيمة الافتراضية هي: /$.

limit‎

عدد صحيح يمثل الحد الأٌقصى للأسطر التي ستطبق عليها العملية.

getline_args

راجع صفحة readlines لمزيد من التفاصيل حول هذا المعامل.

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

يعاد المجرى المعطاة بعد تمرير كل سطر من أسطره إلى الكتلة block، أو يعاد كائن من الصنف Enumerator في حال لم تُعطَ أية كتلة. 

أمثلة

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

f = File.new("testfile")
f.each {|line| puts "#{f.lineno}: #{line}" }

ناتج تنفيذ هذه الشيفرة هو:

1: This is line one
2: This is line two
3: This is line three
4: And so on...‎

انظر أيضًا

  • التابع each: ينفذ الكتلة المعطاة على كل سطر في المجرى الذي استُدعي معه.
  • التابع each_byte: يستدعي الكتلة المعطاة على كل بايت (0..255) في المجرى الذي استدعي معه.
  • التابع each_char: يستدعي الكتلة المعطاة على كل محرف في المجرى الذي استدعي معه.
  • التابع each_codepoint: يمرر كل عدد من الأعداد الترتيبية (Integer ordinal) لكل محرف من المحارف الموجودة في المجرى الذي استدعي معه إلى الكتلة المعطاة.

مصادر