الفرق بين المراجعتين لصفحة: «Ruby/IO/read»

من موسوعة حسوب
< Ruby‏ | IO
لا ملخص تعديل
ط مراجعة وتدقيق.
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع <code>read‎</code> الخاص بالصنف <code>IO</code> في روبي}}</noinclude>
<noinclude>{{DISPLAYTITLE: التابع <code>IO.read‎</code> في روبي}}</noinclude>
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby IO]]
[[تصنيف: Ruby IO]]
يفتح التابع <code>read</code> الملف المحدد، ثم يتموضع اختياريا عند موضع الإزاحة المعطى <code>offset</code> (انظر فقرة البنية العامة)، ثم يُعيد <code>length</code> بايت (قيمته الافتراضية تساوي طول بقية الملف).  يضمن التابع <code>read</code> أن يُغلق الملف قبل العودة.
يقرأ التابع <code>read</code> ملفًا محددًا بعد فتحه ثم يغلقه قبل إعادة الناتج.


إن كان <code>name</code> يبدأ بمحرف التوجيه (<code>"|"</code>)، فستُنشؤ عملية فرعية (subprocess) بطريقة مشابهة للتابع <code>[[Ruby/Kernel/open|Kernel#open]]</code>، ثم ستعاد مُخرجاتها.
== خيارات ==
يقبل [[Ruby/Hash|قاموس]] الخيارات <code>opt</code> المفاتيح التالية:
* <code>encoding</code>:  - '''[[Ruby/String|سلسلة نصية]] أو ترميز -'''  يحدد ترميز َ<nowiki/>[[Ruby/String|السلسلة النصية]] المقروءة.  سيتم تجاهل ‎<code>:encoding</code> إذا تم تمرير الوسيط <code>length</code>.  انظر صفحة <code>[[Ruby/Encoding/aliases|Encoding.aliases]]</code> للتعرف على الترميزات الممكنة.
* <code>mode:</code>  - [[Ruby/String|سلسلة نصية]] أو عدد صحيح - يحدد الوسيط <code>mode</code> لأجل استخدامه من قبل اادالة <code>open()‎</code>.  ينبغي أن يبدأ بالحرف "<code>r</code>"، وإلا سيتسبب في حدوث خطأ. انظر صفحة <code>[[Ruby/IO/new|new]]</code> للحصول على قائمة من الأوضاع الممكنة.
* <code>‎:open_args</code>  - [[Ruby/Array|مصفوفة]] -  يحدد الوسائط الممررة إلى <code>open()‎</code> على هيئة [[Ruby/Array|مصفوفة]].  لا يمكن استخدام هذا المفتاح مع ‎<code>:‎encoding</code> أو ‎<code>:mode</code>.


==البنية العامة==
==البنية العامة==
سطر 17: سطر 10:
==المعاملات==
==المعاملات==
===<code>name‎</code>===
===<code>name‎</code>===
اسم الملف
اسم الملف المراد القراءة منه. إن كان <code>name</code> يبدأ بمحرف الأنبوب (<code>"|"</code>)، فستُنشَأ عملية فرعية (subprocess) بطريقة مشابهة للتابع <code>[[Ruby/Kernel/open|Kernel.open]]</code>، ثم ستعاد مُخرجاتها.
===<code>length‎</code>===
===<code>length‎</code>===
عدد صحيح يمثل الطول
عدد صحيح يمثل عدد البايتات المراد قراءتها من الملف. القيمة الافتراضية لهذا المعامل هي القراءة حتى نهاية الملف.
===<code>offset‎</code>===
===<code>offset‎</code>===
عدد صحيح يمثل الإزاحة
عدد صحيح يمثل إزاحة موضع المؤشر في الملف إلى المكان الذي يراد بدء القراءة منه.
===<code>opt‎</code>===
===<code>opt‎</code>===
خيارات
كائن من النوع <code>[[Ruby/Hash|Hash]]</code> يقبل المفاتيح التالية:
==القيمة المُعادة==
* <code>encoding:</code> - [[Ruby/String|سلسلة نصية]] أو [[Ruby/Encoding|ترميز]] يحدد ترميز [[Ruby/String|السلسلة النصية]] المقروءة من الملف. سيتم تجاهل ‎<code>:encoding</code> إذا تم تمرير المعامل <code>length</code>. انظر صفحة التابع <code>[[Ruby/Encoding/aliases|Encoding.aliases]]</code> للتعرف على الترميزات الممكنة.
يُعيد التابع <code>read</code> سلسلة نصية.
* <code>mode:</code> - [[Ruby/String|سلسلة نصية]] أو [[Ruby/Integer|عدد صحيح]] يحدد المعامل <code>mode</code> (وضع الفتح) لأجل استخدامه من قبل الدالة <code>[[Ruby/IO/open|open()‎]]</code> عند فتح الملف المراد قراءته.  ينبغي أن يبدأ بالوضع "<code>r</code>" (وضع القراءة)، وإلا سيتسبب في حدوث خطأ. انظر صفحة <code>[[Ruby/IO/new|new]]</code> للحصول على قائمة من الأوضاع الممكنة.
* <code>‎:open_args</code> - [[Ruby/Array|مصفوفة]] تحدد الوسائط الممررة إلى التابع <code>[[Ruby/IO/open|open()‎]]</code> على هيئة [[Ruby/Array|مصفوفة]]. لا يمكن استخدام هذا المفتاح جنبًا إلى جنب مع المفتاحين ‎<code>:‎encoding</code> أو ‎<code>:mode</code>.
==القيمة المعادة==
تعاد سلسلة نصية تحوي البيانات التي قُرأَت من الملف ذي الاسم <code>name</code>.


==أمثلة==
==أمثلة==
سطر 33: سطر 29:
IO.read("testfile", 20, 10)      #=> "ne one\nThis is line "
IO.read("testfile", 20, 10)      #=> "ne one\nThis is line "
IO.read("binfile", mode: "rb")  #=> "\xF7\x00\x00\x0E\x12"‎</syntaxhighlight>
IO.read("binfile", mode: "rb")  #=> "\xF7\x00\x00\x0E\x12"‎</syntaxhighlight>
==انظر أيضا==
==انظر أيضًا==
* التابع <code>[[Ruby/IO/readlines|readlines]]</code>: يقرأ التابع <code>readlines</code> كامل الملف المحدد سطرًا سطرًا، ويعيد تلك السطور في [[Ruby/Array|مصفوفة]].
* التابع <code>[[Ruby/IO/readlines|readlines]]</code>: يقرأ ملفًا بأكمله سطرًا سطرًا ثم يعيد تلك الأسطر في [[Ruby/Array|مصفوفة]].
* التابع [[Ruby/IO/write|<code>write</code>]]: يفتح ملفًا محدَّدًا ويكتب فيه السلسلة النصية المُمرَّرة إليه ثم يغلقه ويعيد عدد البايتات التي كتبها. 
==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/IO.html#method-c-read قسم التابع read‎ في الصنف IO‎ في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/IO.html#method-c-read قسم التابع read‎ في الصنف IO‎ في توثيق روبي الرسمي.]

مراجعة 07:08، 22 ديسمبر 2018

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

مصادر