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

من موسوعة حسوب
< Ruby‏ | IO
اذهب إلى التنقل اذهب إلى البحث
ط (تدقيق)
 
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby IO]]
 
[[تصنيف: Ruby IO]]
يقرأ التابع <code>sysread</code> ‏<code>maxlen</code> (انظر فقرة البنية العامة) بايتًا باستخدام قراءة منخفضة المستوى (low-level read)، ثم يُعيدها ك[[Ruby/String|سلسلة نصية]].  
+
يقرأ التابع <code>sysread</code> عددًا محدَّدًا من البايتات من المجرى الذي استدعي معه باستخدام قراءة منخفضة المستوى (low-level read)، ثم يُعيدها ك[[Ruby/String|سلسلة نصية]].  
  
لا تخلط هذا التابع مع التوابع الأخرى التي تقرأ من [[Ruby/IO|المجرى]]، أو قد تحصل على نتائج غير متوقعة.
+
لا تخلط هذا التابع مع التوابع الأخرى التي تقرأ من [[Ruby/IO|المجرى]]، وإلا ستحصل على نتائج غير متوقعة.
  
في حال إعطاء الوسيط الاختياري <code>outbuf</code>، فينبغي أن يشير إلى [[Ruby/String|سلسلة نصية]]، والتي ستتلقى البيانات. لن يحتوي <code>outbuf</code> إلا البيانات المستلمة بعد استدعاء التابع حتى لو لم يكن فارغاً في البداية.
+
يُطلَق الاستثناء <code>[[Ruby/SystemCallError|SystemCallError]]</code> عند حدوث خطأ، أو <code>[[Ruby/EOFError|EOFError]]</code> عند نهاية الملف.
 
 
يُطلق الاستثناء <code>[[Ruby/SystemCallError|SystemCallError]]</code> عند حدوث خطأ، أو <code>[[Ruby/EOFError|EOFError]]</code> عند نهاية الملف.
 
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="ruby">sysread(maxlen[, outbuf]) → string‎</syntaxhighlight>
 
<syntaxhighlight lang="ruby">sysread(maxlen[, outbuf]) → string‎</syntaxhighlight>
 
==المعاملات==
 
==المعاملات==
 
===<code>maxlen‎</code>===
 
===<code>maxlen‎</code>===
الحد الأقصى للبايتات المقروءة
+
[[Ruby/Integer|عدد صحيح]] يمثِّل الحد الأقصى للبايتات المراد قراءتها.
 
===<code>outbuf‎</code>===
 
===<code>outbuf‎</code>===
سلسلة نصية تتلقى البيانات
+
في حال إعطاء هذا المعامل الاختياري، فينبغي أن يشير إلى <nowiki/>[[Ruby/String|السلسلة النصية]] التي ستتلقى البيانات المقروءة من المجرى. لن يحتوي <code>outbuf</code> إلا على البيانات المستلمة بعد استدعاء التابع حتى لو لم يكن فارغًا في البداية (أي ستُمسَح البيانات القديمة المخزنة فيه مسبقًا).
==القيمة المُعادة==
+
==القيمة المعادة==
يعيد التابع <code>sysread</code> ‏<code>maxlen</code> ا<nowiki/>[[Ruby/String|لسلسلة النصية]] المقروءة.  
+
تعاد ا<nowiki/>[[Ruby/String|لسلسلة النصية]] المقروءة من المجرى المعطى بحجم لا يتجاوز <code>maxlen</code> بايت.  
  
 
==أمثلة==
 
==أمثلة==
سطر 24: سطر 22:
 
<syntaxhighlight lang="ruby">f = File.new("testfile")
 
<syntaxhighlight lang="ruby">f = File.new("testfile")
 
f.sysread(16)  #=> "This is line one"‎</syntaxhighlight>
 
f.sysread(16)  #=> "This is line one"‎</syntaxhighlight>
==انظر أيضا==
+
==انظر أيضًا==
* التابع <code>[[Ruby/IO/read-i|read]]</code>: يقرأ عددا من البايتات من مجرى د/خ.
+
* التابع <code>[[Ruby/IO/read-i|read]]</code>: يقرأ عددًا محدَّدًا من البايتات من [[Ruby/IO|المجرى]] الذي استدعي معه.
 +
* التابع <code>[[Ruby/IO/readbyte|readbyte]]</code>: يقرأ بايتًا واحدًا من المجرى الذي استدعي معه.
 +
* التابع [[Ruby/IO/sysseek|<code>sysseek</code>]]: يحرِّك مؤشر <nowiki/>[[Ruby/IO|المجرى]] الذي استدعي معه إلى موضع محدَّد.
  
* التابع <code>[[Ruby/IO/readbyte|readbyte]]</code>: يقرأ البايت كما يفعل التابع <code>IO#getbyte</code>، إلا أنه يُطلق الاستثناء <code>EOFError</code> عند نهاية الملف.
+
* التابع <code>[[Ruby/IO/syswrite|syswrite]]</code>: يكتب [[Ruby/String|السلسلة النصية]] المُمرَّرة إليه في [[Ruby/IO|المجرى]] الذي استُدعي معه باستخدام كتابة منخفض المستوى (low-level write).
* التابع <code>[[Ruby/IO/syswrite|syswrite]]</code>: يكتب [[Ruby/String|السلسلة النصية]] المعطاة في [[Ruby/IO|مجرى د/خ]] الذي استُدعي معه
 
  
 
==مصادر==
 
==مصادر==
*[http://ruby-doc.org/core-2.5.1/IO.html#method-i-sysread قسم التابع sysread‎ في الصنف IO‎ في توثيق روبي الرسمي.]
+
*[http://ruby-doc.org/core-2.5.1/IO.html#method-i-sysread قسم التابع sysread‎ في الصنف IO‎ في توثيق روبي الرسمي.]

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

يقرأ التابع sysread عددًا محدَّدًا من البايتات من المجرى الذي استدعي معه باستخدام قراءة منخفضة المستوى (low-level read)، ثم يُعيدها كسلسلة نصية.

لا تخلط هذا التابع مع التوابع الأخرى التي تقرأ من المجرى، وإلا ستحصل على نتائج غير متوقعة.

يُطلَق الاستثناء SystemCallError عند حدوث خطأ، أو EOFError عند نهاية الملف.

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

sysread(maxlen[, outbuf])  string

المعاملات

maxlen‎

عدد صحيح يمثِّل الحد الأقصى للبايتات المراد قراءتها.

outbuf‎

في حال إعطاء هذا المعامل الاختياري، فينبغي أن يشير إلى السلسلة النصية التي ستتلقى البيانات المقروءة من المجرى. لن يحتوي outbuf إلا على البيانات المستلمة بعد استدعاء التابع حتى لو لم يكن فارغًا في البداية (أي ستُمسَح البيانات القديمة المخزنة فيه مسبقًا).

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

تعاد السلسلة النصية المقروءة من المجرى المعطى بحجم لا يتجاوز maxlen بايت.

أمثلة

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

f = File.new("testfile")
f.sysread(16)   #=> "This is line one"‎

انظر أيضًا

  • التابع read: يقرأ عددًا محدَّدًا من البايتات من المجرى الذي استدعي معه.
  • التابع readbyte: يقرأ بايتًا واحدًا من المجرى الذي استدعي معه.
  • التابع sysseek: يحرِّك مؤشر المجرى الذي استدعي معه إلى موضع محدَّد.

مصادر