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

من موسوعة حسوب
< Ruby‏ | IO
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>IO.seek‎</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method [[تصنيف: Ruby IO]...'
 
ط تدقيق
 
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة)
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby IO]]
[[تصنيف: Ruby IO]]
يسعى التابع <code>seek</code> إلى التموضع عند الإزاحة المعطاة <code>anInteger</code> في [[Ruby/IO|مجرى د/خ]] وفقا لقيمة <code>whence</code> (انظر فقرة البنية العامة):
يحرِّك التابع <code>seek</code> مؤشر [[Ruby/IO|المجرى]] الذي استدعي معه إلى موضع محدَّد.


<syntaxhighlight lang="ruby">:CUR or IO::SEEK_CUR  | Seeks to _amount_ plus current position
== البنية العامة ==
----------------------+--------------------------------------------------
:END or IO::SEEK_END  | Seeks to _amount_ plus end of stream (you
                      | probably want a negative value for _amount_)
----------------------+--------------------------------------------------
:SET or IO::SEEK_SET  | Seeks to the absolute location given by _amount_‎</syntaxhighlight>
 
مثال:
==البنية العامة==
<syntaxhighlight lang="ruby">seek(amount, whence=IO::SEEK_SET)  → 0‎</syntaxhighlight>
<syntaxhighlight lang="ruby">seek(amount, whence=IO::SEEK_SET)  → 0‎</syntaxhighlight>
==المعاملات==
==المعاملات==
===<code>amount‎</code>===
===<code>amount‎</code>===
عدد صحيح يحدِّد مقدار إزاحة المؤشر بدءًا من بداية الملف (القيمة الافتراضية للمعامل <code>whence‎</code>) أو من نهاية الملف أو من الموضع الحالي للموشر نفسه بحسب قيمة المعامل <code>whence‎</code>.
===<code>whence‎</code>===
===<code>whence‎</code>===
==القيمة المُعادة==
راية تحدد الموضع الذي سيزاح المؤشر بدءًا منه بالمقدار <code>amount</code>. القيم التي يمكن استعمالها مع هذا المعامل موضحة بالجدول التالي:
{| class="wikitable"
!المعامل <code>whence</code>
!شرح
|-
|‎<code>:CUR</code> أو <code>IO::SEEK_CUR</code>
|يحرَّك المؤشر بمقدار <code>amount</code> + موضع المؤشرالحالي (أي يزاح المؤشر بدءًا من موضعه الحالي).
|-
|
====== ‎:END أو  <code>IO::SEEK_END</code> ======
|يُحرَّك المؤشر بمقدار <code>amount</code> + نهاية المجرى (ستحتاج على الأرجح لإعطاء <code>amount</code> قيمة سالبة لأن المؤشر سيزاح بدءًا من نهاية المجرى).
|-
|‎<code>:SET</code> أو <code>IO::SEEK_SET</code>
|يُحرَّك المؤشر بمقدار <code>amount</code> بدءًا من بداية المجرى.
|}
 
==القيمة المعادة==
تعاد القيمة صفر بعد تنفيذ العملية.
 
==أمثلة==
==أمثلة==
مثال على استخدام التابع <code>seek‎</code>:
مثال على استخدام التابع <code>seek‎</code>:<syntaxhighlight lang="ruby">f = File.new("testfile")
<syntaxhighlight lang="ruby">f = File.new("testfile")
f.seek(-13, IO::SEEK_END)  #=> 0
f.seek(-13, IO::SEEK_END)  #=> 0
f.readline                  #=> "And so on...\n"‎</syntaxhighlight>
f.readline                  #=> "And so on...\n"‎</syntaxhighlight>
==انظر أيضا==
==انظر أيضًا==
* التابع <code>[[Ruby/IO/rewind|rewind]]</code>: يُموضِع  [[Ruby/IO|مجرى د/خ]] الذي استُدعي معه <code>ios</code> عند بداية الإدخال، مع تعيين <code>[[Ruby/IO/lineno|lineno]]</code> عند القيمة صفر.
*التابع [[Ruby/IO/pos-3D|<code>pos=‎</code>]]: يحرِّك عند استدعائه بالشكل <code>pos = integer</code> موضع المؤشر الحالي إلى الموضع <code>integer</code> (بالبايت) [[Ruby/IO|للمجرى]] الذي استدعي معه. 
* التابع <code>[[Ruby/IO/set_encoding|set_encoding]]</code>: في حال تمرير وسيط واحد، فستوسم [[Ruby/String|السلسلة النصية]] المقروءة من [[Ruby/IO|مجرى د/خ]] وفق [[Ruby/Encoding|الترميز]] المحدد.  إن كان الترميز على هيئة حرفي ترميز مفصولين بنقطتين رأسيتين "A: B"، فستُحوّل [[Ruby/String|السلسلة النصية]] المقروءة من الترميز A (الترميز الخارجي) إلى الترميز B (الترميز الداخلي)، ثم توسم بـ B.  في حال إعطاء وسيطين، فيجب أن يكونا كائني [[Ruby/Encoding|ترميز]]، أو اسمي ترميز، حيث يمثل أولها الترميز الخارجي، فيما يمثل ثانيهما الترميز الداخلي. في حال تحديد الترميز الخارجي والترميز الداخلي، فسيحدد الوسيط الاختياري opt خيارات التحويل.
 
*التابع <code>[[Ruby/IO/rewind|rewind]]</code>: يُموضِع  [[Ruby/IO|مجرى د/خ]] الذي استُدعي معه عند بداية الإدخال، مع تعيين <code>[[Ruby/IO/lineno|lineno]]</code> عند القيمة صفر.
==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/IO.html#method-i-seek قسم التابع seek‎ في الصنف IO‎ في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/IO.html#method-i-seek قسم التابع seek‎ في الصنف IO‎ في توثيق روبي الرسمي.]

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

يحرِّك التابع seek مؤشر المجرى الذي استدعي معه إلى موضع محدَّد.

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

seek(amount, whence=IO::SEEK_SET)   0

المعاملات

amount‎

عدد صحيح يحدِّد مقدار إزاحة المؤشر بدءًا من بداية الملف (القيمة الافتراضية للمعامل whence‎) أو من نهاية الملف أو من الموضع الحالي للموشر نفسه بحسب قيمة المعامل whence‎.

whence‎

راية تحدد الموضع الذي سيزاح المؤشر بدءًا منه بالمقدار amount. القيم التي يمكن استعمالها مع هذا المعامل موضحة بالجدول التالي:

المعامل whence شرح
:CUR أو IO::SEEK_CUR يحرَّك المؤشر بمقدار amount + موضع المؤشرالحالي (أي يزاح المؤشر بدءًا من موضعه الحالي).
‎:END أو IO::SEEK_END
يُحرَّك المؤشر بمقدار amount + نهاية المجرى (ستحتاج على الأرجح لإعطاء amount قيمة سالبة لأن المؤشر سيزاح بدءًا من نهاية المجرى).
:SET أو IO::SEEK_SET يُحرَّك المؤشر بمقدار amount بدءًا من بداية المجرى.

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

تعاد القيمة صفر بعد تنفيذ العملية.

أمثلة

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

f = File.new("testfile")
f.seek(-13, IO::SEEK_END)   #=> 0
f.readline                  #=> "And so on...\n"‎

انظر أيضًا

  • التابع pos=‎: يحرِّك عند استدعائه بالشكل pos = integer موضع المؤشر الحالي إلى الموضع integer (بالبايت) للمجرى الذي استدعي معه. 
  • التابع rewind: يُموضِع مجرى د/خ الذي استُدعي معه عند بداية الإدخال، مع تعيين lineno عند القيمة صفر.

مصادر