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

من موسوعة حسوب
< Ruby‏ | IO
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>IO.each_line‎</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method تصنيف: Rub...')
 
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby IO]]
 
[[تصنيف: Ruby IO]]
ينفذ التابع <code>each_line</code> الكتلة المعطاة لكل سطر في [[Ruby/IO|مجرى د/خ]] <code>ios</code>، حيث تُفصل الأسطر بواسطة <code>sep</code>. يجب أن يكون [[Ruby/IO|مجرى د/خ]] <code>ios</code> مفتوحًا في وضعية القراءة أو سيُرفع استثناء <code>IOError</code>.
+
ينفذ التابع <code>each_line</code> الكتلة المعطاة على كل سطر في [[Ruby/IO|مجرى د/خ]]، حيث تُفصل الأسطر بالوسيط <code>sep</code> (انظر فقرة البنية العامة).  
  
في حال لم تُعطى أي كتلة، فسيُعاد كائن من الصنف enumerator بدلاً من ذلك.
+
يجب أن يكون [[Ruby/IO|مجرى د/خ]] مفتوحًا في وضعية القراءة أو سيُرفع استثناء <code>IOError</code>.
  
 +
في حال لم تُعطى أي كتلة، فسيُعاد كائن من الصنف [[Ruby/Enumerator|Enumerator]] بدلاً من ذلك.
  
 
+
راجع صفحة <code>[[Ruby/IO/readlines|readlines]]</code> لمزيد من التفاصيل حول <code>getline_args</code>.
<code>produces:</code>
 
 
 
<syntaxhighlight lang="ruby">1: This is line one
 
2: This is line two
 
3: This is line three
 
4: And so on...‎</syntaxhighlight>
 
 
 
راجع صفحة <code>[[Ruby/IO/readlines|::readlines]]</code> لمزيد من التفاصيل حول getline_args.
 
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">each_line(sep=$/ [, getline_args])  {|line| block } → ios
 
<syntaxhighlight lang="ruby">each_line(sep=$/ [, getline_args])  {|line| block } → ios
سطر 25: سطر 18:
 
===<code>sep‎</code>===
 
===<code>sep‎</code>===
 
فاصل
 
فاصل
===<code>getline_args‎</code>===
 
 
===<code>limit‎</code>===
 
===<code>limit‎</code>===
===<code>...‎</code>===
+
عدد صحيح يمثل الحد الأٌقصى.
 +
 
 
==القيمة المُعادة==
 
==القيمة المُعادة==
 +
يعيد التابع <code>each</code> [[Ruby/IO|مجرى د/خ]] الذي استُدعي معه، وفي حال لم تُعطى أي كتلة، فسيُعاد كائن من الصنف <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>
+
f.each {|line| puts "#{f.lineno}: #{line}" }‎</syntaxhighlight>الناتج:<syntaxhighlight lang="ruby">1: This is line one
 +
2: This is line two
 +
3: This is line three
 +
4: And so on...‎</syntaxhighlight>
 
==انظر أيضا==
 
==انظر أيضا==
* التابع <code>[[Ruby/IO/each_codepoint|each_codepoint]]</code>: يمرر  رقم <code>[[Ruby/Integer|Integer]]</code> كل حرف (Integer ordinal) في [[Ruby/IO|مجرى د/خ]] <code>ios</code>، مع تمرير رمز اليونيكود (codepoint) كوسيط. يجب أن يكون المجرى مفتوحًا في وضعية القراءة أو سيُرفع استثناء <code>IOError</code>.
+
* التابع <code>[[Ruby/IO/each_codepoint|each_codepoint]]</code>: ينفذ الكتلة المعطاة، مع تمرير الرمز العددي (Integer ordinal) لكل حرف من الحروف الموجودة في مجرى د/خ، مع تمرير رمز اليونيكود (codepoint) كوسيط.
* التابع <code>[[Ruby/IO/eof|eof]]</code>: يُعيد القيمة true إن كان [[Ruby/IO|مجرى د/خ]] <code>ios</code> في نهاية الملف، ما يعني أنه لا توجد بيانات أخرى للقراءة. يجب أن يكون المجرى مفتوحًا في وضعية القراءة أو سيُرفع استثناء <code>IOError</code>.
+
 
 +
* التابع <code>[[Ruby/IO/each char|each_char]]</code>: يستدعي الكتلة المعطاةة على كل حرف في مجرى د/خ
 +
* التابع <code>[[Ruby/IO/each byte|each_byte]]</code>: يستدعي الكتلة المعطاة على لكل بايت (0..255) في [[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‎ في توثيق روبي الرسمي.]

مراجعة 12:50، 13 نوفمبر 2018

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

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

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

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

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

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‎

عدد صحيح يمثل الحد الأٌقصى.

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

يعيد التابع each مجرى د/خ الذي استُدعي معه، وفي حال لم تُعطى أي كتلة، فسيُعاد كائن من الصنف 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_codepoint: ينفذ الكتلة المعطاة، مع تمرير الرمز العددي (Integer ordinal) لكل حرف من الحروف الموجودة في مجرى د/خ، مع تمرير رمز اليونيكود (codepoint) كوسيط.
  • التابع each_char: يستدعي الكتلة المعطاةة على كل حرف في مجرى د/خ
  • التابع each_byte: يستدعي الكتلة المعطاة على لكل بايت (0..255) في مجرى د/خ 

مصادر