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

من موسوعة حسوب
< Ruby‏ | IO
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>copy_stream‎</code> الخاص بالصنف <code>IO</code> في روبي}}</noinclude> تصنيف: Ruby تصن...'
 
ط مراجعة وتدقيق.
 
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع <code>copy_stream‎</code> الخاص بالصنف <code>IO</code> في روبي}}</noinclude>
<noinclude>{{DISPLAYTITLE: التابع <code>IO.copy_stream‎</code> في روبي}}</noinclude>
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby IO]]
[[تصنيف: Ruby IO]]
ينسخ التابع <code>[[Ruby/IO/copy_stream|::copy_stream]]</code> المصدر المعطى <code>src</code> إلى <code>dst</code> (انظر فقرة البنية العامة). الوسيطان <code>src</code> و <code>dst</code> يمكن أن يكونا إما اسماء ملفات، أو كائن مشابهة للصنف IO. يجب أن يكون للكائنات المشابهة لـ IO بالنسبة للوسيط <code>src</code> التابع <code>[[Ruby/IO/readpartial|readpartial]]</code> أو <code>[[Ruby/IO/read-i|read]]</code>. كما يجب أن يكون للكائنات المشابهة لـ IO بالنسبة للوسيط <code>dst</code> التابع <code>[[Ruby/IO/write-i|write]]</code>. (يمكن استخدام الآليات خاصة، مثل استدعاء نظام sendfile، في بعض الحالات المناسبة.)
ينسخ التابع <code>copy_stream</code> بيانات من مجرى إلى مجرى آخر.
 
يُعيد هذا التابع عدد البايت المنسوخة.
 
في حال عدم إعطاء الوسائط الاختيارية، فإن موضع بدء النسخة سيكون هو بداية الملف، أو موضع التأشير الحالي في الملف الخاص ب[[Ruby/IO|مجرى د/خ]] (<code>[[Ruby/IO|IO]]</code>). أما موضع نهاية النسخة فسيكون عند نهاية الملف.
 
في حال إعطاء <code>copy_length</code>، فلن يتجاوز عدد البايتات المنسوخة القيمة <code>copy_length</code>.
 
في حال إعطاء <code>src_offset</code>، فسيحدد موضع بدء النسخة.
 
عند تحديد <code>src_offset</code>، وعندما يكون الوسيط <code>src</code> [[Ruby/IO|مجرى د/خ]] (<code>[[Ruby/IO|IO]]</code>)، فلن يحرك التابع <code>[[Ruby/IO/copy_stream|::copy_stream]]</code> موضع إزاحة الملف الحالي.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">copy_stream(src, dst)
<syntaxhighlight lang="ruby">copy_stream(src, dst)
سطر 20: سطر 10:
==المعاملات==
==المعاملات==
===<code>src‎</code>===
===<code>src‎</code>===
اسم ملف أو كائن مشابه للصنف <code>[[Ruby/IO|IO]]</code> يمثِّل المصدر الذي سيُقرَأ منه. الكائنات المشابهة للصنف [[Ruby/IO|<code>IO</code>]] المُمررة إلى هذا المعامل يجب أن تُعرّف التابع <code>[[Ruby/IO/readpartial|readpartial]]</code> أو <code>[[Ruby/IO/read-i|read]]</code>.
===<code>dst‎</code>===
===<code>dst‎</code>===
اسم ملف أو كائن مشابه للصنف <code>[[Ruby/IO|IO]]</code> يمثِّل الوجه التي ستُكتَب فيها البيانات التي قُرأَت من المصدر <code>src</code>. يجب أن يكون للكائنات المشابهة للصنف <code>[[Ruby/IO|IO]]</code> الممررة إلى المعامل <code>dst</code> التابع <code>[[Ruby/IO/write-i|write]]</code>. (في بعض الحالات، يمكن استخدام آليات خاصة، مثل استدعاء النظام <code>sendfile</code>).
===<code>copy_length‎</code>===
===<code>copy_length‎</code>===
طول البيانات المراد نسخها من المجرى <code>src</code> إلى المجرى <code>dst</code> بالبايت بدءًا من بداية الملف أو الموضع <code>src_offset‎</code>. إلى لم يُعطَ هذا المعامل، فستتوقف عملية النسخ عند نهاية الملف.
===<code>src_offset‎</code>===
===<code>src_offset‎</code>===
==القيمة المُعادة==
مقدار إزاحة المؤشر بدءًا من بداية المجرى <code>src_offset‎</code> بالبايت الذي يحدد موضع بدء عملية النسخ. إن لم يُعطَ هذا المعامل، فستبدأ عملية النسخ من بداية الملف. عند تحديد قيمة المعامل <code>src_offset</code> وعندما يكون المعامل <code>src</code> كائنٌ من النوع <code>[[Ruby/IO|IO]]</code>، فلن يحرك التابع <code>copy_stream</code> موضع إزاحة الملف الحالي.
==انظر أيضا==
 
* التابع <code>[[Ruby/IO/binwrite|binwrite]]</code>: التابع <code>binwrite</code> مشابه للتابع <code>IO.write</code>X، ما عدا أنه يفتح الملف في الوضع الثنائي (binary mode) وبالترميز ASCII-8BIT ‏("wb: ASCII-8BIT‏")‏.
== القيمة المعادة ==
* التابع <code>[[Ruby/IO/for_fd|for_fd]]</code>: مرادف للتابع <code>IO.new</code>.
يعاد عدد صحيح يمثِّل عدد البايتات التي نُسخَت من <code>src</code> إلى <code>dst</code>.
 
==انظر أيضًا==
*التابع <code>[[Ruby/IO/binwrite|binwrite]]</code>: يشبه التابع <code>[[Ruby/IO/write|write]]</code> باستثناء أنه يفتح الملف في الوضع الثنائي (binary mode) وبالترميز ASCII-8BIT.
==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/IO.html#method-c-copy_stream قسم التابع copy_stream‎ في الصنف IO‎ في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/IO.html#method-c-copy_stream قسم التابع copy_stream‎ في الصنف IO‎ في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 12:05، 19 ديسمبر 2018

ينسخ التابع copy_stream بيانات من مجرى إلى مجرى آخر.

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

copy_stream(src, dst)
copy_stream(src, dst, copy_length)
copy_stream(src, dst, copy_length, src_offset)

المعاملات

src‎

اسم ملف أو كائن مشابه للصنف IO يمثِّل المصدر الذي سيُقرَأ منه. الكائنات المشابهة للصنف IO المُمررة إلى هذا المعامل يجب أن تُعرّف التابع readpartial أو read.

dst‎

اسم ملف أو كائن مشابه للصنف IO يمثِّل الوجه التي ستُكتَب فيها البيانات التي قُرأَت من المصدر src. يجب أن يكون للكائنات المشابهة للصنف IO الممررة إلى المعامل dst التابع write. (في بعض الحالات، يمكن استخدام آليات خاصة، مثل استدعاء النظام sendfile).

copy_length‎

طول البيانات المراد نسخها من المجرى src إلى المجرى dst بالبايت بدءًا من بداية الملف أو الموضع src_offset‎. إلى لم يُعطَ هذا المعامل، فستتوقف عملية النسخ عند نهاية الملف.

src_offset‎

مقدار إزاحة المؤشر بدءًا من بداية المجرى src_offset‎ بالبايت الذي يحدد موضع بدء عملية النسخ. إن لم يُعطَ هذا المعامل، فستبدأ عملية النسخ من بداية الملف. عند تحديد قيمة المعامل src_offset وعندما يكون المعامل src كائنٌ من النوع IO، فلن يحرك التابع copy_stream موضع إزاحة الملف الحالي.

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

يعاد عدد صحيح يمثِّل عدد البايتات التي نُسخَت من src إلى dst.

انظر أيضًا

  • التابع binwrite: يشبه التابع write باستثناء أنه يفتح الملف في الوضع الثنائي (binary mode) وبالترميز ASCII-8BIT.

مصادر