الفرق بين المراجعتين ل"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>write</code> أن يُغلق الملف قبل إعادة أية قيمة.  
 
 
يضمن التابع <code>write</code> أن يُغلق الملف قبل العودة.
 
 
 
إذا لم يتم إعطاء <code>offset</code> في وضع الكتابة (write mode)، فسيتم اقتطاع الملف. خلاف ذلك، لن يُقتطع.
 
 
 
إن كان الوسيط الأخيرة عبارة عن [[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|مصفوفة]]. لا يمكن استخدام هذا المفتاح مع مفاتيح أخرى.
 
  
 +
إن كان المعامل الأخير عبارة عن [[Ruby/Hash|جدول Hash]]، فسيحدد الخيارات الداخلية للتابع <code>[[Ruby/IO/open|open()‎]]</code>.
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">write(name, string [, offset])  → integer
 
<syntaxhighlight lang="ruby">write(name, string [, offset])  → integer
سطر 20: سطر 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|السلسلة النصية]] المكتوبة.  
 
يعاد طول [[Ruby/String|السلسلة النصية]] المكتوبة.  
  
سطر 36: سطر 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/left_shift|<<‎]]</code>: مجرى الإخراج النصي - يكتب كائنا في المجرى.
+
* التابع [[Ruby/IO/read|<code>read</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: يقرأ ملفًا بأكمله سطرًا سطرًا ثم يعيد تلك الأسطر في مصفوفة.

مصادر