نتائج البحث
اذهب إلى التنقل
اذهب إلى البحث
الصنف IOError في روبي
يُطلق الاستثناء IOError عند فشل عملية إدخال/إخراج (IO operation) في روبي. File.open("/etc/hosts") {|f| f << "example"}
#=> IOError: not opened for writing
File.open("/etc/hosts") {|f| f.close; f.read }
#=> IOError: closed stream
تذكر أنَّ فشل بعض عمليات الإدخال/الإخراج قد يؤدي إلى إطلاق الاستثناء SystemCallError، وهذا الاستثناء ليس متفرع من الصنف IOError. File.open("does/not/exist")
#=> Errno::ENOENT: No such file or directory - does/not/exist
مصادر صفحة الصنف IOError في توثيق روبي الرسمي.
التابع IO.close_read في روبي
يغلق التابع close_read طرف القراءة الخاص بمجرى د/خ مزدوج (duplex)؛ أي تلك المجاري التي تحتوي على مجريي قراءة وكتابة، مثل الأنابيب (pipes). سيُطلق الاستثناء IOError إن لم يكن المجرى مزدوجًا. أصبحت روبي تتجاهل استدعاء هذا التابع على مجاري د/خ المغلقة منذ الإصدار 2.3. البنية العامة close_read → nil
القيمة المعادة تعاد القيمة nil بعد تنفيذ العملية. أمثلة مثال على استخدام التابع close_read: f = IO.popen("/bin/sh","r+")
f.close_read
f.readlines
ناتج تنفيذ هذا المثال هو: prog.rb:3:in `readlines': not opened for reading (IOError)
from prog.rb:3
انظر أيضًا التابع close_write: يغلق ...
التابع IO.close_write في روبي
يغلق التابع close_write طرف الكتابة الخاص بمجرى د/خ مزدوج (duplex)؛ أي تلك المجاري التي تحتوي على مجريي قراءة وكتابة، مثل الأنابيب (pipes). سيُطلق الاستثناء IOError إن لم يكن المجرى مزدوجًا. أصبحت روبي تتجاهل استدعاء هذا التابع على مجاري د/خ المغلقة منذ الإصدار 2.3. البنية العامة close_write→ nil
القيمة المعادة تعاد القيمة nil بعد تنفيذ العملية. أمثلة مثال على استخدام التابع close_write: f = IO.popen("/bin/sh","r+")
f.close_write
f.print "nowhere"
ناتج تنفيذ هذه الشيفرة هو: prog.rb:3:in `write': not opened for writing (IOError)
from prog.rb:3:in `print'
from prog.rb:3
...
التابع IO.close في روبي
يغلق التابع close المجرى الذي استدعي معه ويرسل (flushes) أي كتابات مُعلّقة إلى نظام التشغيل. لن يكون المجرى متاحًا لأية عمليات إضافية على البيانات؛ وفي حال محاولة إجراء مثل تلك العمليات، فسيُطلَق الخطأ IOError. يتم إغلاق مجاري د/خ تلقائيًا من طرف جامع المهملات (garbage collector). في حال فتح مجرى د/خ بواسطة التابع popen، فسيعيّن التابع close قيمة $?. أصبحت روبي تتجاهل استدعاء هذا التابع على مجاري د/خ المغلقة منذ الإصدار 2.3. البنية العامة close→ nil
القيمة المعادة تعاد القيمة nil بعد ...
الصنف EOFError في روبي
يٌطلَق الخطأ EOFError من طرف بعض عمليات الصنف IO عندما تصل إلى نهاية الملف. تنقسم أغلب توابع الصنف IO -فيما يتعلق بالوصول إلى نهاية الملف- إلى قسمين: الأول يعيد القيمة nil عند الوصول إلى نهاية الملف، والآخر يطلق الخطأ EOFError عند الوصول إلى نهاية الملف. الصنف EOFError هو صنف فرعي من الصنف IOError. file = File.open("/etc/hosts")
file.read
file.gets #=> nil
file.readline #=> EOFError: الوصول إلى نهاية الملف
مصادر الصنف EOFError في توثيق روبي الرسمي.
التابع IO.autoclose= في روبي
يُعيّن التابع autoclose عند استدعائه بالشكل autoclose = bool قيمة راية الإغلاق التلقائي (auto-close flag) إلى القيمة bool المنطقية. البنية العامة autoclose = bool → true or false
القيمة المعادة تعاد قيمة منطقية تمثل قيمة راية الإغلاق التلقائي بعد ضبطها. أمثلة مثال على استخدام التابع autoclose=: f = open("/dev/null")
IO.for_fd(f.fileno)
# ...
f.gets # may cause IOError
f = open("/dev/null")
IO.for_fd(f.fileno).autoclose = true
# ...
f.gets # won't cause IOError
انظر أيضًا التابع autoclose?: يتحقق إن كان واصف الملف الأساسي لمجرى معين سيُغلق تلقائيًا عند الانتهاء منه. التابع closed?: ...
التابع File.to_path في روبي
يعيد التابع to_path سلسلة نصية تمثِّل المسار الذي استُعمِل لإنشاء الملف الذي استدعي معه. لا يعمل هذا التابع على توحيد شكل وبنية المسار (normalize). قد لا يشير اسم المسار إلى الملف المقابل للملف المعطى. على سبيل المثال، يصبح اسم المسار خاويًا (void) عندما يُنقَل أو يحذف الملف. يرمي هذا التابع الاسثناء IOError للملف المعطى إذا كان قد أنشئ باستعمال File::Constants::TMPFILE لأنه لا يملك اسم مسارٍ. البنية العامة to_path → filename
القيمة المعادة تعاد سلسلة نصية تمثِّل المسار الذي استُعمِل لإنشاء الملف ...
التابع IO.each_byte في روبي
يستدعي التابع each_byte الكتلة المعطاة على كل بايت (0..255) في المجرى الذي استدعي معه. يجب أن يكون المجرى مفتوحًا في وضعية القراءة، وإلا سيُطلق الاستثناء IOError. في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف Enumerator بدلًا من ذلك. البنية العامة each_byte {|byte| block } → ios
each_byte→ an_enumerator
القيمة المعادة يعاد المجرى المعطى بعد تنفيذ الكتلة block على كل بايت من بايتاته، أو يعاد كائن من الصنف Enumerator في حال لم تُعطَ أية كتلة. أمثلة مثال على استخدام التابع ...
التابع File.path في روبي
يعيد التابع path سلسلة نصية تمثِّل المسار الذي استُعمِل لإنشاء الملف الذي استدعي معه. لا يعمل هذا التابع على توحيد شكل وبنية المسار (normalize). قد لا يشير اسم المسار إلى الملف المقابل للملف المعطى. على سبيل المثال، يصبح اسم المسار خاويًا (void) عندما يُنقَل أو يحذف الملف. يرمي هذا التابع الاسثناء IOError للملف المعطى إذا كان قد أنشئ باستعمال File::Constants::TMPFILE لأنه لا يملك اسم مسارٍ. البنية العامة path → filename
to_path → filename
القيمة المعادة تعاد سلسلة نصية تمثِّل المسار الذي استُعمِل ...
التابع IO.each_char في روبي
يستدعي التابع each_char الكتلة المعطاة على كل محرف في المجرى الذي استدعي معه. يجب أن يكون المجرى مفتوحًا في وضعية القراءة، وإلا سيُطلق الاستثناء IOError. في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف Enumerator بدلًا من ذلك. البنية العامة each_char {|c| block } → ios
each_char→ an_enumerator
القيمة المعادة يعاد المجرى المعطى بعد تنفيذ الكتلة block على كل محرف من محارفه، أو يعاد كائن من الصنف Enumerator في حال لم تُعطَ أية كتلة. أمثلة مثال على استخدام التابع each_char: ...
التابع ARGF.eof? في روبي
يتحقق التابع eof? إذا بلغ الملف الحالي نهايته في ARGF؛ أي أنّه لم تعد هناك أي بيانات لقراءتها. ينبغي أن يكون المجرى مفتوحًا من قبل للقراءة، وإلا فسيُطلق الخطأ IOError. البنية العامة eof? → true or false
القيم المعادة تعاد القيمة true إن وصل الملف المفتوح حاليًا للقراءة إلى نهايته، أو القيمة false خلاف ذلك. أمثلة مثال على استخدام التابع eof?: $ echo "eof" | ruby argf.rb
ARGF.eof? ...
التابع IO.each_codepoint في روبي
يمرر التابع each_codepoint كل عدد من الأعداد الترتيبية (Integer ordinal، وتُعرف أيضًا باسم "نقاط الترميز" [codepoints] في السلاسل النصية المرمزة بالترميز الموحد [Unicode]) لكل محرف من المحارف الموجودة في المجرى الذي استدعي معه إلى الكتلة المعطاة. يجب أن يكون المجرى مفتوحًا في وضعية القراءة، وإلا سيُطلق الاستثناء IOError. في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف Enumerator بدلًا من ذلك. البنية العامة each_codepoint {|c| block } → ios
codepoints {|c| block } → ios
each_codepoint→ an_enumerator
codepoints → an_enumerator
...
التابع IO.eof? في روبي
يتحقق التابع eof? إن وصل المجرى الذي استدعي معه إلى نهاية الملف؛ مما يعني أنَّه لا توجد بيانات أخرى للقراءة. يجب أن يكون المجرى مفتوحًا في وضعية القراءة وإلا سيُطلَق الاستثناء IOError. إن كان المجرى أنبوبًا (pipe) أو مقبسًا (socket)، فسيُحجَز التابع eof? إلى أن يرسل الطرف الآخر بعض البيانات أو يغلقه. لاحظ أن التابع eof? يقرأ البيانات من مخزن الإدخال المؤقت (input byte buffer). قد لا يتصرف التابع sysread كما كنت تنوي مع eof? إلا إذا استدعيت rewind أولًا (لكن ...
التابع IO.eof في روبي
يتحقق التابع eof إن وصل المجرى الذي استدعي معه إلى نهاية الملف؛ مما يعني أنَّه لا توجد بيانات أخرى للقراءة. يجب أن يكون المجرى مفتوحًا في وضعية القراءة وإلا سيُطلَق الاستثناء IOError. إن كان المجرى أنبوبًا (pipe) أو مقبسًا (socket)، فسيُحجَز التابع eof? إلى أن يرسل الطرف الآخر بعض البيانات أو يغلقه. لاحظ أن التابع eof? يقرأ البيانات من مخزن الإدخال المؤقت (input byte buffer). قد لا يتصرف التابع sysread كما كنت تنوي مع eof? إلا إذا استدعيت rewind أولًا (لكن ...
التابع IO.each_line في روبي
ينفذ التابع each_line الكتلة المعطاة على كل سطر في المجرى الذي استدعي معه. يجب أن يكون المجرى مفتوحًا في وضعية القراءة، وإلا سيُطلق الاستثناء IOError. في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف Enumerator بدلًا من ذلك. البنية العامة each_line(sep=$/ [, getline_args]) {|line| block } → ios
each_line(limit [, getline_args]){|line| block } → ios
each_line(sep, limit [, getline_args]) {|line| block } → ios
each_line(...)→ an_enumerator
المعاملات sep محرف يمثِّل الفاصل بين الأسطر. القيمة الافتراضية هي: /$. limit عدد صحيح يمثل الحد ...
التابع IO.each في روبي
ينفذ التابع each الكتلة المعطاة على كل سطر في المجرى الذي استُدعي معه. يجب أن يكون المجرى مفتوحًا في وضعية القراءة، وإلا سيُطلق الاستثناء IOError. في حال لم تُعطَ أية كتلة، فسيُعاد كائن من الصنف Enumerator بدلًا من ذلك. البنية العامة each(sep=$/ [, getline_args]) {|line| block } → ios
each(limit [, getline_args]) {|line| block } → ios
each(sep, limit [, getline_args]){|line| block } → ios
each(...) → an_enumerator
each_line(sep=$/ [, getline_args]) {|line| block } → ios
each_line(limit [, getline_args]){|line| block } → ios
each_line(sep, ...
التابع IO.gets في روبي
يجلب التابع gets السطر التالي من المجرى الذي استدعي معه. يجب أن يكون المجرى مفتوحًا في وضعية القراءة وإلا سيُطلَق الاستثناء IOError. إن كان المجرى يحتوي على حروف متعددة البايتات، فستعيد gets(1) الحرف بالكامل. البنية العامة gets(sep=$/ [, getline_args]) → string or nil
gets(limit [, getline_args])→ string or nil
gets(sep, limit [, getline_args]) → string or nil
المعاملات sep المحرف الفاصل بين الأسطر. القيمة الافتراضية هي: /$. إن كانت قيمته nil، فستُقرَأ آنذاك جميع محتويات المجرى (أي سيمثِّل نهاية المجرى). limit عدد ...
التابع IO.readlines في روبي
يقرأ التابع readlines كل الأسطر الموجودة في المجرى الذي استدعي معه ثم يعيدها في مصفوفة. يجب أن يكون المجرى مفتوحًا في وضعية القراءة أو سيُطلق استثناء IOError. البنية العامة readlines(sep=$/ [, getline_args]) → array
readlines(limit [, getline_args])→ array
readlines(sep, limit [, getline_args]) → array
المعاملات sep محرف يمثِّل الفاصل السطري. القيمة الافتراضية هي: /$. إن كان المعامل sep يساوي nil، فسسيُعاد محتوى المتبقي في المجرى كسجل (record) واحد. وإن إن أعطي المعامل limit أولًا أو إن أعطي مع هذا المعامل أيضًا، فلن ...
التابع IO.advise في روبي
يعلن التابع advise عن نية الوصول إلى بيانات الملف الحالي وفق نمط محدد. في أنظمة التشغيل التي لا تدعم استدعاء النظام posix_fadvise(2)، هذا التابع سيكون عمليةً فارغةً (no-op). المقصود بـ "البيانات" هي الحيز من الملف الحالي الذي يبدأ عند الإزاحة offset (انظر قسم البينة العامة) ويمتد حتى len بايت. إن كان len يساوي 0، فسينتهي الحيّز عند البايت الأخير من الملف. افتراضيًّا، كلا الوسيطين offset و len يساويان 0، أي أن النصيحة تنطبق على الملف بأكمله. في حالة حدوث خطأ، سيُطلَق ...
الصنف Exception في روبي
تُستخدَم الكائنات السليلة من الصنف Exception للتواصل بين التّابع Kernel.raise وتصريحات rescue في الكتل (blocks) من الشكل begin...end. تَحمل كائنات الصنف Exception معلوماتٍ عن الاستثناء المَرمي مثل نوعه (اسم صنف الاستثناء)، وسلسلةً نصيّةً وصفيّةً اختياريّة، ومعلوماتِ تتبّعٍ اختيارية. قد تضيف الأصناف الفرعية من الصنف Exception معلوماتٍ إضافيّةٍ مثل NameError.name. قد تُنشِئ البرامج أصنافًا فرعيّةً (subclasses) من الصنف Exception، تكون عادةً StandardError أو RuntimeError، لتوفير أصنافٍ مخصصّةٍ وإضافة معلوماتٍ إضافية. ألقِ نظرةً على قائمة الأصناف الفرعية في الأسفل من أجل قيم ...