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

من موسوعة حسوب
< Ruby‏ | IO
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع IO.write في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method تصنيف: Ruby IO يفتح ال...'
 
ط مراجعة وتدقيق.
 
(3 مراجعات متوسطة بواسطة مستخدم واحد آخر غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع IO.write في روبي}}</noinclude>
<noinclude>{{DISPLAYTITLE: التابع <code>IO.write‎</code> في روبي}}</noinclude>
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: 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> ملفًا محدَّدًا ويكتب فيه السلسلة النصية المُمرَّرة إليه ثم يغلقه ويعيد عدد البايتات التي كتبها. يضمن التابع <code>write</code> أن يُغلق الملف قبل إعادة أية قيمة.  


 
إن كان المعامل الأخير عبارة عن [[Ruby/Hash|جدول Hash]]، فسيحدد الخيارات الداخلية للتابع <code>[[Ruby/IO/open|open()‎]]</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(name, string [, offset])  → integer
سطر 37: سطر 11:
==المعاملات==
==المعاملات==
===<code>name‎</code>===
===<code>name‎</code>===
اسم الملف
اسم الملف المراد كتابة السلسلة النصية <code>string</code> فيه.
===<code>string‎</code>===
===<code>string‎</code>===
[[Ruby/String|سلسلة نصية]]
[[Ruby/String|سلسلة نصية]] يراد كتابتها ضمن الملف.
===<code>offset‎</code>===
===<code>offset‎</code>===
عدد صحيح يمثل الإزاحة
[[Ruby/Integer|عدد صحيح]] يمثل إزاحة موضع المؤشر في الملف إلى المكان الذي يراد كتابة البيانات فيه. إذا لم يتم إعطاء هذا المعامل في وضع الكتابة (write mode)، فسيتم اقتطاع الملف. خلاف ذلك، لن يُقتطَع.
===<code>opt‎</code>===
===<code>opt‎</code>===
خيارات
كائن من النوع <code>[[Ruby/Hash|Hash]]</code> يقبل المفاتيح التالية:
==القيمة المُعادة==
* ‎<code>:encoding</code> - [[Ruby/String|سلسلة نصية]] أو [[Ruby/Encoding|ترميز]] يحدد ترميز [[Ruby/String|السلسلة النصية]] <code>string</code> المقروءة. انظر صفحة <code>[[Ruby/Encoding/aliases|Encoding.aliases]]</code> للتعرف على الترميزات الممكنة.
* <code>‎:mode</code> - [[Ruby/String|سلسلة نصية]] أو عدد صحيح يحددالمعامل <code>mode</code> لأجل استخدامه مع الدالة <code>[[Ruby/IO/open|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>[[Ruby/IO/open|open()‎]]</code>.
* <code>‎:open_args</code> - [[Ruby/Array|مصفوفة]] تحدد الوسائط الممررة إلى [[Ruby/IO/open|<code>open()</code>‎]]. لا يمكن استخدام هذا المفتاح مع المفاتيح السابقة.
==القيمة المعادة==
يعاد طول [[Ruby/String|السلسلة النصية]] المكتوبة.
 
==أمثلة==
==أمثلة==
مثال على استخدام التابع <code>write‎</code>:
مثال على استخدام التابع <code>write‎</code>:
سطر 51: سطر 31:
IO.write("testfile", "0123456789")      #=> 10
IO.write("testfile", "0123456789")      #=> 10
# 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> لأي سبب من الأسباب.
* التابع [[Ruby/IO/read|<code>read</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/readlines|<code>readlines</code>]]: يقرأ ملفًا بأكمله سطرًا سطرًا ثم يعيد تلك الأسطر في [[Ruby/Array|مصفوفة]].
==مصادر==
==مصادر==
*[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‎ في توثيق روبي الرسمي.]

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

يفتح التابع write ملفًا محدَّدًا ويكتب فيه السلسلة النصية المُمرَّرة إليه ثم يغلقه ويعيد عدد البايتات التي كتبها. يضمن التابع write أن يُغلق الملف قبل إعادة أية قيمة.

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

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

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

المعاملات

name‎

اسم الملف المراد كتابة السلسلة النصية string فيه.

string‎

سلسلة نصية يراد كتابتها ضمن الملف.

offset‎

عدد صحيح يمثل إزاحة موضع المؤشر في الملف إلى المكان الذي يراد كتابة البيانات فيه. إذا لم يتم إعطاء هذا المعامل في وضع الكتابة (write mode)، فسيتم اقتطاع الملف. خلاف ذلك، لن يُقتطَع.

opt‎

كائن من النوع Hash يقبل المفاتيح التالية:

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

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

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

أمثلة

مثال على استخدام التابع 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"‎

انظر أيضًا

  • التابع read: يقرأ ملفًا محددًا بعد فتحه ثم يغلقه قبل إعادة الناتج.
  • التابع readlines: يقرأ ملفًا بأكمله سطرًا سطرًا ثم يعيد تلك الأسطر في مصفوفة.

مصادر