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

من موسوعة حسوب
< Ruby‏ | IO
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>IO.sysread‎</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method تصنيف: Ruby...'
 
ط تدقيق
 
(مراجعتان متوسطتان بواسطة مستخدم واحد آخر غير معروضتين)
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby IO]]
[[تصنيف: Ruby IO]]
يقرأ التابع <code>sysread</code> <code>maxlen</code> (انظر فقرة البنية العامة) بايتًا من [[Ruby/IO|مجرى د/خ]] الذي استُدعي معه <code>ios</code> باستخدام قراءة منخفضة المستوى (low-level read) ويُعيدها ك[[Ruby/String|سلسلة نصية]].  لا تخلط هذا التابع مع التوابع الأخرى التي تقرأ من [[Ruby/IO|مجرى د/خ]] <code>ios</code>، أو قد تحصل على نتائج غير متوقعة.
يقرأ التابع <code>sysread</code> عددًا محدَّدًا من البايتات من المجرى الذي استدعي معه باستخدام قراءة منخفضة المستوى (low-level read)، ثم يُعيدها ك[[Ruby/String|سلسلة نصية]].  


في حال إعطاء الوسيط الاختياري <code>outbuf</code>، فينبغي أن يشير إلى [[Ruby/String|سلسلة نصية]] <code>[[Ruby/String|String]]</code>، والتي ستتلقى البيانات. لن يحتوي <code>outbuf</code> إلا البيانات المستلمة بعد استدعاء التابع حتى إذا لم يكن فارغاً في البداية.
لا تخلط هذا التابع مع التوابع الأخرى التي تقرأ من [[Ruby/IO|المجرى]]، وإلا ستحصل على نتائج غير متوقعة.


يُطلق الاستثناء <code>SystemCallError</code> عند حدوث خطأ، و <code>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> إلا على البيانات المستلمة بعد استدعاء التابع حتى لو لم يكن فارغًا في البداية (أي ستُمسَح البيانات القديمة المخزنة فيه مسبقًا).
==القيمة المُعادة==
==القيمة المعادة==
تعاد ا<nowiki/>[[Ruby/String|لسلسلة النصية]] المقروءة من المجرى المعطى بحجم لا يتجاوز <code>maxlen</code> بايت.
 
==أمثلة==
==أمثلة==
مثال على استخدام التابع <code>sysread‎</code>:
مثال على استخدام التابع <code>sysread‎</code>:
<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/sync-3D|sync=]]</code>: يضبط  قيمة راية وضع المزامنة “sync mode' عند إحدى القيمتين <code>true</code> أو <code>false</code>. عندما تكون قيمة وضع المزامنة true، فسيتم إرسال كل المخرجات فورًا إلى نظام التشغيل، ولن تُخزن (buffered) داخليًا. يُعيد  الحالة الجديدة. انظر أيضا صفحة <code>IO#fsync</code>.
* التابع <code>[[Ruby/IO/read-i|read]]</code>: يقرأ عددًا محدَّدًا من البايتات من [[Ruby/IO|المجرى]] الذي استدعي معه.
* التابع <code>[[Ruby/IO/sysseek|sysseek]]</code>: يسعى  إلى التموضع عند الإزاحة المعطاة <code>offset</code> (انظر فقرة البنية العامة) وفقا لقيمة <code>whence</code> (انظر <code>IO#seek</code> للتعرف على القيم الممكنة للوسيط <code>whence</code>). يُعيد الإزاحة الجديدة للملف.
* التابع <code>[[Ruby/IO/readbyte|readbyte]]</code>: يقرأ بايتًا واحدًا من المجرى الذي استدعي معه.
* التابع [[Ruby/IO/sysseek|<code>sysseek</code>]]: يحرِّك مؤشر <nowiki/>[[Ruby/IO|المجرى]] الذي استدعي معه إلى موضع محدَّد.
 
* التابع <code>[[Ruby/IO/syswrite|syswrite]]</code>: يكتب [[Ruby/String|السلسلة النصية]] المُمرَّرة إليه في [[Ruby/IO|المجرى]] الذي استُدعي معه باستخدام كتابة منخفض المستوى (low-level write).
 
==مصادر==
==مصادر==
*[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: يحرِّك مؤشر المجرى الذي استدعي معه إلى موضع محدَّد.

مصادر