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

من موسوعة حسوب
< Ruby‏ | IO
لا ملخص تعديل
ط تدقيق
 
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby IO]]
[[تصنيف: Ruby IO]]
يربط التابع <code>reopen</code> بين [[Ruby/IO|مجرى د/خ]] الذي استُدعي معه وبين [[Ruby/IO|المجرى]]  المعطى في الوسيط <code>other_IO</code> (انظر فقرة البنية العامة)، أو بينه وبين [[Ruby/IO|مجرى]] جديد يُفتح من المسار <code>path</code>. قد يؤدي هذا إلى تغيير الصنف الفعلي لهذا المجرى ديناميكيًا.
يعيد التابع <code>reopen</code> ربط [[Ruby/IO|المجرى]] الذي استُدعي معه مع [[Ruby/IO|مجرى]] آخر جديد أو موجود مسبقًا. قد يؤدي هذا إلى تغيير الصنف الفعلي لهذا المجرى ديناميكيًا.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">reopen(other_IO)→ ios
<syntaxhighlight lang="ruby">reopen(other_IO)→ ios
سطر 9: سطر 9:
==المعاملات==
==المعاملات==
===<code>other_IO‎</code>===
===<code>other_IO‎</code>===
[[Ruby/IO|مجرى د/خ]]
كائن من النوع <code>[[Ruby/IO|IO]]</code> يمثِّل مجرى موجود مسبقًا يراد ربطه بالمجرى المعطى.


===<code>path‎</code>===
===<code>path‎</code>===
المسار
مسار يشير إلى مجرى جديد لفتحه من أجل ربطه بالمجرى المعطى.
===<code>mode_str‎</code>===
===<code>mode_str‎</code>===
سلسلة نصية تمثل وضعية الفتج.
سلسلة نصية تمثل وضعية الفتح. اطلع على صفحة التابع <code>[[Ruby/IO/new|new]]</code> للمزيد حول أوضاع الفتح.


==القيمة المُعادة==
==القيمة المعادة==
يعيد التابع <code>reopen</code> [[Ruby/IO|مجرى د/خ]] الذي استُدعي معه
يعاد [[Ruby/IO|المجرى]] المعطى بعد إعادة ربطه بالمجرى <code>other_IO</code> أو المجرى الجديد ذي المسار <code>path</code>.


==أمثلة==
==أمثلة==
سطر 26: سطر 26:
f2.reopen(f1)    #=> #<File:testfile>
f2.reopen(f1)    #=> #<File:testfile>
f2.readlines[0]  #=> "This is line one\n"‎</syntaxhighlight>
f2.readlines[0]  #=> "This is line one\n"‎</syntaxhighlight>
==انظر أيضا==
==انظر أيضًا==
* التابع <code>[[Ruby/IO/rewind|rewind]]</code>: يُموضِع  [[Ruby/IO|مجرى د/خ]] الذي استُدعي معه عند بداية الإدخال، مع تعيين <code>lineno</code> عند القيمة صفر.
* التابع [[Ruby/IO/open|<code>open</code>]]: يشبه التابعَ <code>[[Ruby/IO/new|new]]</code> تمامًا عند استدعائه دون كتلة، أو يُمرّر الكائن <code>IO</code> الذي جرى إنشاؤه كوسيط إلى الكتلة المعطاة ثم يعيد الناتج الذي تعيده الكتلة.
* التابع [[Ruby/IO/pipe|<code>pipe</code>]]: ينشئ زوجًا من طرفي أنبوب (pipe endpoints) متصلين ببعضهما بعضًا ثم يعيدهما على هيئة [[Ruby/Array|مصفوفة]] من الكائنات <code>IO</code>.
 
* التابع [[Ruby/IO/popen|<code>popen</code>]]: ينفذ الأمر المعطى كعملية فرعية (subprocess) مع توصيل المجرَيَين القياسيين للدخل والخرج للعملية الفرعية مع المجرى <code>IO</code> المُعاد.
==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/IO.html#method-i-reopen قسم التابع reopen‎ في الصنف IO‎ في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/IO.html#method-i-reopen قسم التابع reopen‎ في الصنف IO‎ في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 08:55، 23 ديسمبر 2018

يعيد التابع reopen ربط المجرى الذي استُدعي معه مع مجرى آخر جديد أو موجود مسبقًا. قد يؤدي هذا إلى تغيير الصنف الفعلي لهذا المجرى ديناميكيًا.

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

reopen(other_IO) ios
reopen(path, mode_str) ios

المعاملات

other_IO‎

كائن من النوع IO يمثِّل مجرى موجود مسبقًا يراد ربطه بالمجرى المعطى.

path‎

مسار يشير إلى مجرى جديد لفتحه من أجل ربطه بالمجرى المعطى.

mode_str‎

سلسلة نصية تمثل وضعية الفتح. اطلع على صفحة التابع new للمزيد حول أوضاع الفتح.

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

يعاد المجرى المعطى بعد إعادة ربطه بالمجرى other_IO أو المجرى الجديد ذي المسار path.

أمثلة

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

f1 = File.new("testfile")
f2 = File.new("testfile")
f2.readlines[0]   #=> "This is line one\n"
f2.reopen(f1)     #=> #<File:testfile>
f2.readlines[0]   #=> "This is line one\n"‎

انظر أيضًا

  • التابع open: يشبه التابعَ new تمامًا عند استدعائه دون كتلة، أو يُمرّر الكائن IO الذي جرى إنشاؤه كوسيط إلى الكتلة المعطاة ثم يعيد الناتج الذي تعيده الكتلة.
  • التابع pipe: ينشئ زوجًا من طرفي أنبوب (pipe endpoints) متصلين ببعضهما بعضًا ثم يعيدهما على هيئة مصفوفة من الكائنات IO.
  • التابع popen: ينفذ الأمر المعطى كعملية فرعية (subprocess) مع توصيل المجرَيَين القياسيين للدخل والخرج للعملية الفرعية مع المجرى IO المُعاد.

مصادر