الفرق بين المراجعتين ل"Ruby/IO/write"

من موسوعة حسوب
< 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> الملف، ويتموضع (seeks) اختياريا عند الإزاحة المعطاة <code>offset</code> (انظر فقرة البنية العامة)، ثم يكتب السلسلة النصية المعطاة <code>string</code>، ثم يعيد طول [[Ruby/String|السلسلة النصية]] المكتوبة.  
  
 +
يضمن التابع <code>write</code> أن يُغلق الملف قبل العودة.
  
 +
إذا لم يتم إعطاء <code>offset</code> في وضع الكتابة (write mode)، فسيتم اقتطاع الملف. خلاف ذلك، لن يُقتطع.
  
إن كانت الوسيط الأخيرة عبارة عن [[Ruby/Hash|قاموس]]، فسيحدد الخيارات الداخلية للدالة open()‎.  يقبل المفاتيح التالية:
+
إن كان الوسيط الأخيرة عبارة عن [[Ruby/Hash|قاموس]]، فسيحدد الخيارات الداخلية للدالة <code>open()‎</code>حيث يقبل المفاتيح التالية:
 +
* ‎<code>:encoding</code> - [[Ruby/String|سلسلة نصية]] أو ترميز: يحدد ترميز [[Ruby/String|السلسلة النصية]] المقروءة. انظر صفحة <code>[[Ruby/Encoding/aliases|Encoding.aliases]]</code> للتعرف على الترميزات الممكنة.
 +
* <code>‎:mode</code> - [[Ruby/String|سلسلة نصية]] أو عدد صحيح: يحدد الوسيط <code>mode</code> لأجل استخدامه مع الدالة <code>open()‎</code>.  يجب أن يبدأ بـ "<code>w</code>" أو "<code>a</code>" أو "<code>r+</code>‎" وإلا سيتسبب في حدوث خطأ. انظر صفحة <code>[[Ruby/IO/new|new]]</code> لمزيد من الأوضاع الممكنة.
 +
* <code>‎:perm</code> - [[Ruby/Integer|عدد صحيح]]: يحدد الوسيط <code>perm</code> لأجل استخدامه مع الدالة <code>open()‎</code>.
 +
* <code>‎:open_args</code> - [[Ruby/Array|مصفوفة]]: يحدد الوسائط الممررة إلى <code>open()</code>‎ على هيئة [[Ruby/Array|مصفوفة]]. لا يمكن استخدام هذا المفتاح مع مفاتيح أخرى.
  
‎: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(name, string [, offset])  → integer
سطر 45: سطر 28:
 
خيارات
 
خيارات
 
==القيمة المُعادة==
 
==القيمة المُعادة==
 +
يعاد طول [[Ruby/String|السلسلة النصية]] المكتوبة.
 +
 
==أمثلة==
 
==أمثلة==
 
مثال على استخدام التابع <code>write‎</code>:
 
مثال على استخدام التابع <code>write‎</code>:
سطر 52: سطر 37:
 
# File would now read: "0123456789"‎</syntaxhighlight>
 
# File would now read: "0123456789"‎</syntaxhighlight>
 
==أنظر أيضا==
 
==أنظر أيضا==
* التابع <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>[[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>.
 
 
==مصادر==
 
==مصادر==
 
*[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-c-write قسم  التابع write‎ في الصنف IO‎ في توثيق روبي الرسمي.]

مراجعة 09:55، 13 نوفمبر 2018

يفتح التابع write الملف، ويتموضع (seeks) اختياريا عند الإزاحة المعطاة offset (انظر فقرة البنية العامة)، ثم يكتب السلسلة النصية المعطاة string، ثم يعيد طول السلسلة النصية المكتوبة.

يضمن التابع write أن يُغلق الملف قبل العودة.

إذا لم يتم إعطاء offset في وضع الكتابة (write mode)، فسيتم اقتطاع الملف. خلاف ذلك، لن يُقتطع.

إن كان الوسيط الأخيرة عبارة عن قاموس، فسيحدد الخيارات الداخلية للدالة open()‎. حيث يقبل المفاتيح التالية:

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

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

write(name, string [, offset])   integer
write(name, string [, offset] [, opt]) integer

المعاملات

name‎

اسم الملف

string‎

سلسلة نصية

offset‎

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

opt‎

خيارات

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

يعاد طول السلسلة النصية المكتوبة.

أمثلة

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

IO.write("testfile", "0123456789", 20)  #=> 10
# File could contain:  "This is line one\nThi0123456789two\nThis is line three\nAnd so on...\n"
IO.write("testfile", "0123456789")      #=> 10
# File would now read: "0123456789"‎

أنظر أيضا

  • التابع ‎<<‎: مجرى الإخراج النصي String - يكتب كائنا في المجرى.

مصادر