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

من موسوعة حسوب
< Ruby‏ | IO
لا ملخص تعديل
ط مراجعة وتدقيق.
 
سطر 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> يمكن أن يكونا اسماء ملفات، أو كائنات مشابهة للصنف <code>IO</code>.
ينسخ التابع <code>copy_stream</code> بيانات من مجرى إلى مجرى آخر.
 
الكائنات المشابهة لـ <code>IO</code> المُمررة في الوسيط <code>src</code> يجب أن تُعرّف التابع <code>[[Ruby/IO/readpartial|readpartial]]</code> أو <code>[[Ruby/IO/read-i|read]]</code>. كما يجب أن يكون للكائنات المشابهة لـ <code>IO</code> الممررة في الوسيط <code>dst</code> التابع <code>[[Ruby/IO/write-i|write]]</code>. (في بعض الحالات، يمكن استخدام آليات خاصة، مثل استدعاء النظام <code>sendfile</code>)
 
يُعيد هذا التابع عدد البايتات المنسوخة.
 
في حال عدم إعطاء الوسائط الاختيارية، فإن موضع بدء النسخ سيكون هو بداية الملف، أو موضع الإزاحة (offset) الحالي في ملف [[Ruby/IO|المجرى د/خ]] المستقبِل. أما موضع نهاية النسخ فسيكون عند نهاية الملف.
 
في حال إعطاء الوسيط <code>copy_length</code>، فلن يتجاوز عدد البايتات المنسوخة القيمة <code>copy_length</code>.
 
يحدد الوسيط <code>src_offset</code>،  في حال إعطائه، موضع بدء النسخ.
 
عند تحديد <code>src_offset</code>، وعندما يكون الوسيط <code>src</code> عبارة عن [[Ruby/IO|مجرى د/خ]]، فلن يحرك التابع <code>[[Ruby/IO/copy stream|copy_stream]]</code> موضع إزاحة الملف الحالي.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">copy_stream(src, dst)
<syntaxhighlight lang="ruby">copy_stream(src, dst)
سطر 22: سطر 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>src</code> إلى <code>dst</code>.


==انظر أيضا==
==انظر أيضًا==
*التابع <code>[[Ruby/IO/binwrite|binwrite]]</code>: التابع <code>binwrite</code> مشابه للتابع <code>IO.write</code>، ما عدا أنه يفتح الملف في الوضع الثنائي (binary mode) وبالترميز ASCII-8BIT‏.
*التابع <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.

مصادر