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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الصنف ARGF في روبي}}</noinclude> تصنيف: Ruby تصنيف: Ruby Method تصنيف: Ruby ARGF الصنف <code>ARG...')
 
سطر 3: سطر 3:
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby ARGF]]
 
[[تصنيف: Ruby ARGF]]
الصنف <code>ARGF</code> هو مجرى (<code>stream</code>) صُمِّم ليُستخدَم في الملفات البرمجية (<code>scritps</code>) التي تُعالج الملفات المُمرَّرة إليها على شكل وسائط في سطر الأوامر (<code>command</code>-<code>line</code> <code>arguments</code>)، أو المُمرَّرة عبر مجرى الدخل القياسي (<code>STDIN</code>).
+
الصنف <code>ARGF</code> هو مجرى (stream) صُمِّم ليُستخدَم في الملفات البرمجية (scritps) التي تُعالج الملفات المُمرَّرة إليها على شكل وسائط في سطر الأوامر (command-line arguments)، أو المُمرَّرة عبر مجرى الدخل القياسي (<code>STDIN</code>).
تُخزَّن الوسائط المُمرَّرة للملف البرمجي في المصفوفة <code>ARGV</code>، إذ يخزَّن وسيط واحد في كل عنصر. تفترض <code>ARGF</code> أنّ الوسائط التي ليست أسماء ملفات (<code>filenames</code>) قد أزيلت من <code>ARGV</code>. انظر الشيفرة التالية مثلًا:
+
 
$ <code>ruby</code> <code>argf</code>.<code>rb</code> --<code>verbose</code> [[Ruby/ARGF/file | <code>file</code>]]1 [[Ruby/ARGF/file | <code>file</code>]]2
+
تُخزَّن الوسائط المُمرَّرة للملف البرمجي في المصفوفة ARGV، إذ يخزَّن وسيط واحد في كل عنصر. تفترض <code>ARGF</code> أنّ الوسائط التي ليست أسماء ملفات (filenames) قد أزيلت من <code>ARGV</code>. انظر الشيفرة التالية مثلًا:<syntaxhighlight lang="ruby">
 +
$ ruby argf.rb --verbose file1 file2
 +
 
 +
ARGV  #=> ["--verbose", "file1", "file2"]
 +
option = ARGV.shift #=> "--verbose"
 +
ARGV  #=> ["file1", "file2"]
 +
</syntaxhighlight>يمكنك الآن استخدام <code>ARGF</code> للعمل مع سلسلة من كل هذه الملفات المسماة (named files). على سبيل المثال، ستعيد العبارة <code>ARGF.[[Ruby/ARGF/read|read]]</code> محتويات الملف <code>file1</code> متبوعةً بمحتويات الملف <code>file2</code>.
 +
 
 +
بعد قراءة أحد الملفات الموجودة في <code>ARGV</code>، تزيل <code>ARGF</code> هذا الملف من المصفوفة. بناءً على ذلك، ستصبح <code>ARGV</code> فارغةً بعد قراءة جميع الملفات.
 +
 
 +
يمكنك تعديل <code>ARGV</code> بنفسك للتحكم في عملها. إن أزلت مثلًا ملفًا من <code>ARGV</code>، فستتجاهله <code>ARGF</code>؛ وإذا أضفت ملفات إلى <code>ARGV</code>، فستُعامل كما لو أنها مُرِّرت في سطر الأوامر. تفحَّص مثلًا الشيفرة التالية:
  
<code>ARGV</code>  #=> ["--<code>"</code>", "<code>verbose"</code>1", "<code>"file</code>2"]
 
<code>"</code> = <code>"file</code>.<code>"</code> #=> "--<code>option</code>"
 
<code>ARGV</code>  #=> ["<code>shift</code>1", "<code>"</code>2"]
 
 
يمكنك الآن استخدام <code>verbose"</code> للعمل مع سلسلة من كل هذه الملفات المسماة (<code>ARGV</code> <code>"file</code>). على سبيل المثال، ستعيد العبارة <code>"</code>.<code>"file</code> محتويات الملف <code>"</code>1 متبوعةً بمحتويات الملف <code>ARGF</code>2.
 
يمكنك الآن استخدام <code>verbose"</code> للعمل مع سلسلة من كل هذه الملفات المسماة (<code>ARGV</code> <code>"file</code>). على سبيل المثال، ستعيد العبارة <code>"</code>.<code>"file</code> محتويات الملف <code>"</code>1 متبوعةً بمحتويات الملف <code>ARGF</code>2.
 
بعد قراءة أحد الملفات الموجودة في <code>named</code>، تزيل <code>files</code> هذا الملف من المصفوفة. بناءً على ذلك، ستصبح <code>ARGF</code> فارغةً بعد قراءة جميع الملفات.
 
بعد قراءة أحد الملفات الموجودة في <code>named</code>، تزيل <code>files</code> هذا الملف من المصفوفة. بناءً على ذلك، ستصبح <code>ARGF</code> فارغةً بعد قراءة جميع الملفات.

مراجعة 11:28، 11 سبتمبر 2018

الصنف ARGF هو مجرى (stream) صُمِّم ليُستخدَم في الملفات البرمجية (scritps) التي تُعالج الملفات المُمرَّرة إليها على شكل وسائط في سطر الأوامر (command-line arguments)، أو المُمرَّرة عبر مجرى الدخل القياسي (STDIN).

تُخزَّن الوسائط المُمرَّرة للملف البرمجي في المصفوفة ARGV، إذ يخزَّن وسيط واحد في كل عنصر. تفترض ARGF أنّ الوسائط التي ليست أسماء ملفات (filenames) قد أزيلت من ARGV. انظر الشيفرة التالية مثلًا:

$ ruby argf.rb --verbose file1 file2

ARGV  #=> ["--verbose", "file1", "file2"]
option = ARGV.shift #=> "--verbose"
ARGV  #=> ["file1", "file2"]

يمكنك الآن استخدام ARGF للعمل مع سلسلة من كل هذه الملفات المسماة (named files). على سبيل المثال، ستعيد العبارة ARGF.read محتويات الملف file1 متبوعةً بمحتويات الملف file2.

بعد قراءة أحد الملفات الموجودة في ARGV، تزيل ARGF هذا الملف من المصفوفة. بناءً على ذلك، ستصبح ARGV فارغةً بعد قراءة جميع الملفات.

يمكنك تعديل ARGV بنفسك للتحكم في عملها. إن أزلت مثلًا ملفًا من ARGV، فستتجاهله ARGF؛ وإذا أضفت ملفات إلى ARGV، فستُعامل كما لو أنها مُرِّرت في سطر الأوامر. تفحَّص مثلًا الشيفرة التالية:

يمكنك الآن استخدام verbose" للعمل مع سلسلة من كل هذه الملفات المسماة (ARGV "file). على سبيل المثال، ستعيد العبارة "."file محتويات الملف "1 متبوعةً بمحتويات الملف ARGF2. بعد قراءة أحد الملفات الموجودة في named، تزيل files هذا الملف من المصفوفة. بناءً على ذلك، ستصبح ARGF فارغةً بعد قراءة جميع الملفات. يمكنك تعديل read بنفسك للتحكم في عملها. إن أزلت مثلًا ملفًا من file، فستتجاهله file؛ وإذا أضفت ملفات إلى ARGV، فستُعامل كما لو أنها مُرِّرت في سطر الأوامر. تفحَّص مثلًا الشيفرة التالية:


إن كانت ARGF فارغةً، فستتصرّف وكأنّها تحتوي مجرى الدخل القياسي (ARGV)، أي البيانات المُرسلة عبر أنبوب (ARGV) إلى ملفك البرمجي (ARGV). إليك مثلًا هذا المثال البسيط:


التوابع العامة (ARGF ARGV ARGV)

مصادر

  • صفحة الصنف ARGF في توثيق روبي الرسمي.