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

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


إن كان <code>name</code> يبدأ بمحرف التوجيه (<code>"|"</code>)، يتم إنشاء عملية فرعية بطريقة مشابهة للتابع <code>[[Ruby/Kernel/open|Kernel#open]]</code>، وستُعاد مُخرجاتها.
إن كان <code>name</code> يبدأ بمحرف التوجيه (<code>"|"</code>)، فستُنشؤ عملية فرعية (subprocess) بطريقة مشابهة للتابع <code>[[Ruby/Kernel/open|Kernel#open]]</code>، ثم ستعاد مُخرجاتها.


خيارات
== خيارات ==
<code>[[Ruby//read-label-Options|]]</code> <code>[[Ruby//top|↑]]</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> للتعرف على الترميزات الممكنة.
يقبل [[Ruby/Hash|قاموس]] الخياراتopt المفاتيح التالية:
* <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>.
: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>
سطر 43: سطر 25:
خيارات
خيارات
==القيمة المُعادة==
==القيمة المُعادة==
يُعيد التابع <code>read</code> سلسلة نصية.
==أمثلة==
==أمثلة==
مثال على استخدام التابع <code>read‎</code>:
مثال على استخدام التابع <code>read‎</code>:
سطر 50: سطر 34:
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>: يقرأ التابع <code>readlines</code> كامل الملف المحدد سطرًا سطرًا، ويعيد تلك السطور في [[Ruby/Array|مصفوفة]].
* التابع <code>[[Ruby/IO/readlines|readlines]]</code>: يقرأ التابع <code>readlines</code> كامل الملف المحدد بواسطة <code>name</code> (انظر فقرة البنية العامة) سطرًا سطرًا، ويعيد تلك السطور في [[Ruby/Array|مصفوفة]]. تُفصل السطو بواسطة <code>sep</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‎ في توثيق روبي الرسمي.]

مراجعة 23:37، 12 نوفمبر 2018

يفتح التابع read الملف المحدد، ثم يتموضع اختياريا عند موضع الإزاحة المعطى offset (انظر فقرة البنية العامة)، ثم يُعيد length بايت (قيمته الافتراضية تساوي طول بقية الملف). يضمن التابع read أن يُغلق الملف قبل العودة.

إن كان name يبدأ بمحرف التوجيه ("|")، فستُنشؤ عملية فرعية (subprocess) بطريقة مشابهة للتابع Kernel#open، ثم ستعاد مُخرجاتها.

خيارات

يقبل قاموس الخيارات opt المفاتيح التالية:

  • encoding: - سلسلة نصية أو ترميز - يحدد ترميز َالسلسلة النصية المقروءة. سيتم تجاهل ‎:encoding إذا تم تمرير الوسيط length. انظر صفحة Encoding.aliases للتعرف على الترميزات الممكنة.
  • mode: - سلسلة نصية أو عدد صحيح - يحدد الوسيط mode لأجل استخدامه من قبل اادالة open()‎. ينبغي أن يبدأ بالحرف "r"، وإلا سيتسبب في حدوث خطأ. انظر صفحة new للحصول على قائمة من الأوضاع الممكنة.
  • ‎:open_args - مصفوفة - يحدد الوسائط الممررة إلى open()‎ على هيئة مصفوفة. لا يمكن استخدام هذا المفتاح مع ‎:‎encoding أو ‎:mode.

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

read(name, [length [, offset]] [, opt] ) string

المعاملات

name‎

اسم الملف

length‎

عدد صحيح يمثل الطول

offset‎

عدد صحيح يمثل الإزاحة

opt‎

خيارات

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

يُعيد التابع read سلسلة نصية.

أمثلة

مثال على استخدام التابع 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: يقرأ التابع readlines كامل الملف المحدد سطرًا سطرًا، ويعيد تلك السطور في مصفوفة.

مصادر