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

من موسوعة حسوب
< Ruby‏ | IO
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>IO.write‎</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method تصنيف: Ruby IO...'
 
ط تدقيق
 
(مراجعتان متوسطتان بواسطة مستخدم واحد آخر غير معروضتين)
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby IO]]
[[تصنيف: Ruby IO]]
يفتح التابع <code>write</code> الملف، ويتموضع (seeks) اختياريا عند الإزاحة <code>offset</code> المعطاة (انظر فقرة البنية العامة)، ثم يكتب <code>string</code>، ثم يعيد طول [[Ruby/String|السلسلة النصية]] المكتوبة. يضمن التابع <code>write</code> أن يُغلق الملف قبل العودة. إذا لم يتم إعطاء <code>offset</code> في وضع الكتابة (write mode)، سيتم اقتطاع الملف. خلاف ذلك، لا يُقتطع.
يكتب التابع <code>write</code> [[Ruby/String|السلاسل النصية]] المُمرَّرة إليه في [[Ruby/IO|المجرى]] الذي استدعي معه. يجب أن يكون المجرى مفتوحا في وضعية للكتابة.  


 
سيتم تحويل الوسائط غير النصية إلى [[Ruby/String|سلسلة نصية]] باستخدام التابع <code>to_s</code>.  
 
إن كانت الوسيط الأخيرة عبارة عن [[Ruby/Hash|قاموس]]، فسيحدد الخيارات الداخلية للدالة open()‎.  يقبل المفاتيح التالية:
 
‎:encoding
 
[[Ruby/String|سلسلة نصية]] أو ترميز
 
يحدد ترميز [[Ruby/String|السلسلة النصية]] المقروءة. انظر صفحة <code>[[Ruby/Encoding/aliases|Encoding.aliases]]</code> للتعرف على الترميزات الممكنة.
 
‎:mode
 
[[Ruby/String|سلسلة نصية]] أو عدد صحيح
 
يحدد الوسيط <code>mode</code> لأجل الدالة open()‎.  يجب أن يبدأ بـ "w" أو "a" أو "r+‎" وإلا سيتسبب في حدوث خطأ. انظر صفحة <code>[[Ruby/IO/new|::new]]</code> لمزيد من قائمة الأوضاع الممكنة.
 
‎:perm
 
[[Ruby/Integer|عدد صحيح]]
 
يحدد الوسيط <code>perm</code> لأجل الدالة open()‎.
 
‎:open_args
 
[[Ruby/Array|مصفوفة]]
 
يحدد الوسائط الممررة إلى open()‎ على هيئة [[Ruby/Array|مصفوفة]]. لا يمكن استخدام هذا المفتاح مع مفاتيح أخرى.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">write(name, string [, offset])  → integer
<syntaxhighlight lang="ruby">write(string, ...) → integer‎</syntaxhighlight>
write(name, string [, offset] [, opt])→ integer‎</syntaxhighlight>
==المعاملات==
==المعاملات==
===<code>name‎</code>===
اسم الملف
===<code>string‎</code>===
===<code>string‎</code>===
[[Ruby/String|سلسلة نصية]]
[[Ruby/String|سلسلة نصية]] يراد كتابتها في المجرى المعطى.
===<code>offset‎</code>===
==القيمة المعادة==
عدد صحيح يمثل الإزاحة
تعاد عدد البايتات المكتوبة في المجرى.
===<code>opt‎</code>===
 
خيارات
==القيمة المُعادة==
==أمثلة==
==أمثلة==
مثال على استخدام التابع <code>write‎</code>:
مثال على استخدام التابع <code>write‎</code>:
<syntaxhighlight lang="ruby">IO.write("testfile", "0123456789", 20)  #=> 10
<syntaxhighlight lang="ruby">count = $stdout.write("This is", " a test\n")
# File could contain:  "This is line one\nThi0123456789two\nThis is line three\nAnd so on...\n"
puts "That was #{count} bytes of data"‎</syntaxhighlight>الناتج:<syntaxhighlight lang="text">This is a test
IO.write("testfile", "0123456789")      #=> 10
That was 15 bytes of data‎</syntaxhighlight>
# File would now read: "0123456789"‎</syntaxhighlight>
==انظر أيضًا==
==انظر أيضا==
* التابع [[Ruby/IO/pwrite|<code>pwrite</code>]]: يكتب [[Ruby/String|السلسلة النصية]] المُمرَّرة إليه في موضع محدَّد من [[Ruby/IO|المجرى]] الذي استُدعي معه باستخدام استدعاء دالة النظام <code>pwrite()</code>.  
* التابع <code>[[Ruby/IO/try_convert|try_convert]]</code>: يحاول  تحويل الوسيط <code>obj</code> (انظر فقرة البنية العامة) إلى [[Ruby/IO|مجرى د/خ]] (<code>[[Ruby/IO|IO]]</code>)، باستخدام التابع <code>[[Ruby/IO/to_io|#to_io]]</code>. تم يعيد [[Ruby/IO|مجرى د/خ]] <code>[[Ruby/IO|IO]]</code> المُحوّل، أو يعيد <code>nil</code> إذا تعذر تحويل <code>obj</code> لأي سبب من الأسباب.
 
* التابع <code>[[Ruby/IO/left_shift|<<]]</code>: مجرى الإخراج النصي <code>[[Ruby/String|String]]</code> - يكتب <code>obj</code> (انظر فقرة البنية العامة) في المجرى <code>ios</code>. سيتم تحويل <code>obj</code> إلى [[Ruby/String|سلسلة نصية]] باستخدام <code>to_s</code>.
* التابع [[Ruby/IO/read-i|<code>read</code>]]: يقرأ عددًا محدَّدًا من البايتات من [[Ruby/IO|المجرى]] الذي استدعي معه.
 
* التابع <code>[[Ruby/IO/write_nonblock|write_nonblock]]</code>: يكتب [[Ruby/String|السلسلة النصية]] المُمرَّرة إليه في [[Ruby/IO|المجرى]] الذي استُدعي معه باستخدام استدعاء النظام <code>write(2)</code> بعد تعيين قيمة الراية <code>O_NONBLOCK</code> الخاصة بواصف الملف (file descriptor) الأساسي.
==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/IO.html#method-c-write قسم التابع write‎ في الصنف IO‎ في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/IO.html#method-i-write قسم التابع write‎ في الصنف IO‎ في توثيق روبي الرسمي.]

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

يكتب التابع write السلاسل النصية المُمرَّرة إليه في المجرى الذي استدعي معه. يجب أن يكون المجرى مفتوحا في وضعية للكتابة.

سيتم تحويل الوسائط غير النصية إلى سلسلة نصية باستخدام التابع to_s.

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

write(string, ...)  integer

المعاملات

string‎

سلسلة نصية يراد كتابتها في المجرى المعطى.

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

تعاد عدد البايتات المكتوبة في المجرى.

أمثلة

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

count = $stdout.write("This is", " a test\n")
puts "That was #{count} bytes of data"

الناتج:

This is a test
That was 15 bytes of data‎

انظر أيضًا

  • التابع pwrite: يكتب السلسلة النصية المُمرَّرة إليه في موضع محدَّد من المجرى الذي استُدعي معه باستخدام استدعاء دالة النظام pwrite()‎.  
  • التابع read: يقرأ عددًا محدَّدًا من البايتات من المجرى الذي استدعي معه.
  • التابع write_nonblock: يكتب السلسلة النصية المُمرَّرة إليه في المجرى الذي استُدعي معه باستخدام استدعاء النظام write(2)‎ بعد تعيين قيمة الراية O_NONBLOCK الخاصة بواصف الملف (file descriptor) الأساسي.

مصادر