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

من موسوعة حسوب
< Ruby‏ | IO
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>read‎</code> الخاص بالصنف <code>IO</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ru...'
 
طلا ملخص تعديل
 
(مراجعتان متوسطتان بواسطة مستخدمين اثنين آخرين غير معروضتين)
سطر 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>)، يتم إنشاء عملية فرعية بطريقة مشابهة للتابع <code>[[Ruby/Kernel/open|Kernel#open]]</code>، وستُعاد مُخرجاتها.
 
خيارات
<code>[[Ruby//read-label-Options|¶]]</code> <code>[[Ruby//top|↑]]</code>
 
يقبل [[Ruby/Hash|قاموس]] الخياراتopt المفاتيح التالية:
 
:encoding
 
[[Ruby/String|سلسلة نصية]] أو ترميز
 
يحدد ترميز [[Ruby/String|السلسلة النصية]] المقروءة.  سيتم تجاهل <code>:encoding</code> إذا تم تحديد <code>length</code>.  انظر صفحة <code>[[Ruby/Encoding/aliases|Encoding.aliases]]</code> للتعرف على الترميزات الممكنة.
 
:mode
 
[[Ruby/String|سلسلة نصية]] أو عدد صحيح
 
يحدد الوسيط <code>mode</code> لأجل ادالة open()‎.  ينبغي أن يبدأ بالحرف "r"، وإلا سيتسبب في حدوث خطأ. انظر صفحة <code>[[Ruby/IO/new|::new]]</code> للحصول على قائمة من الأوضاع الممكنة.
 
‎:open_args
 
[[Ruby/Array|مصفوفة]]
 
يحدد الوسائط الممررة إلى open()‎ على هيئة [[Ruby/Array|مصفوفة]].  لا يمكن استخدام هذا المفتاح مع أي من <code>:encoding</code> أو <code>:mode</code>.
 
أمثلة:
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">read(name, [length [, offset]] [, opt] )→ string‎</syntaxhighlight>
<syntaxhighlight lang="ruby">read(name, [length [, offset]] [, opt] )→ string‎</syntaxhighlight>
==المعاملات==
==المعاملات==
===<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>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>.
 
==أمثلة==
==أمثلة==
مثال على استخدام التابع <code>read‎</code>:
مثال على استخدام التابع <code>read‎</code>:
سطر 49: سطر 27:
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/popen|popen]]</code>: ينفذ التابع <code>popen</code> التعليمة المعطاة (انظر فقرة البنية العامة) على شكل عملية فرعي (subprocess)؛ سيتم توصيل المدخلات والمخرجات القياسية للعملية الفرعية إلى [[Ruby/IO|مجرى د/خ]] (<code>IO</code>) المُعاد.
* التابع <code>[[Ruby/IO/readlines|readlines]]</code>: يقرأ ملفًا بأكمله سطرًا سطرًا ثم يعيد تلك الأسطر في [[Ruby/Array|مصفوفة]].
* التابع <code>[[Ruby/IO/readlines|readlines]]</code>: يقرأ التابع <code>readlines</code> كامل الملف المحدد بواسطة <code>name</code> (انظر فقرة البنية العامة) سطرًا سطرًا، ويعيد تلك السطور في [[Ruby/Array|مصفوفة]]. تُفصل السطو بواسطة <code>sep</code>.
* التابع [[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:31، 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: يفتح ملفًا محدَّدًا ويكتب فيه السلسلة النصية المُمرَّرة إليه ثم يغلقه ويعيد عدد البايتات التي كتبها. 

مصادر