English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل تعليمات Ruby الأساسي

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

الإدخال والإخراج للملفات الـ Ruby

يقدم Ruby مجموعة كاملة من الأساليب المتعلقة بإدخال/إخراج البيانات، ويتم تنفيذها في مodule Kernel. جميع أساليب إدخال/إخراج البيانات تنحدر من فئة IO.

فئة IO يقدم جميع الأساليب الأساسية، مثل read، write، gets، puts، readline، getc و printf

في هذا الفصل، سنشرح جميع الوظائف الأساسية المتاحة في Ruby. للحصول على معلومات أكثر، راجع IO فئة.

puts الجملة

في الفصول السابقة، قمت بتعيين القيمة للمتغيرات، ثم استخدمت puts الجملة تطبع الخروج.

puts الجملة تشير إلى أن البرنامج يظهر القيمة المخزنة في المتغير. سيتم إضافة سطر جديد في نهاية كل سطر.

مثال على الإنترنت

#!/usr/bin/ruby
 
val1 = "هذا هو المتغير الأول"
val2 = "هذا هو المتغير الثاني"
puts val1
puts val2

نتيجة تنفيذ الأمثلة أعلاه هي:

هذا هو المتغير الأول
هذا هو المتغير الثاني

gets الجملة

gets الجملة يمكن استخدامها للحصول على إدخال المستخدم من الشاشة القياسية المسماة STDIN.

مثال على الإنترنت

يوضح الكود أدناه كيفية استخدام جملة gets. سيعرض الكود طلبًا من المستخدم لإدخال قيمة، حيث سيتم تخزين القيمة في المتغير val، وسيتم طباعتها في STDOUT في النهاية.

مثال على الإنترنت

#!/usr/bin/ruby
 
puts "Enter a value :"
val = gets
puts val

نتيجة تنفيذ الأمثلة أعلاه هي:

Enter a value :
This is entered value
This is entered value

putc الجملة

مع puts الجملة مختلفة،puts جملة putc تظهر الكلمة بأكملها على الشاشة، بينما putc يمكن استخدام جملة putc لعرض حرف واحد.

مثال على الإنترنت

يظهر مخرج الكود أدناه فقط الحرف H:

مثال على الإنترنت

#!/usr/bin/ruby
 
str="Hello Ruby!"
putc str

نتيجة تنفيذ الأمثلة أعلاه هي:

H

print الجملة

print الجملة مع puts الجملة مشابهة. الفرق الوحيد هو puts جملة print تنتقل إلى السطر التالي بعد إخراج المحتوى، بينما print عندما يتم تنفيذ جملة print، يتم وضع مؤشر البوصلة في نفس السطر.

مثال على الإنترنت

#!/usr/bin/ruby
 
print "Hello World"
print "Good Morning"

نتيجة تنفيذ الأمثلة أعلاه هي:

Hello WorldGood Morning

فتح وإغلاق الملف

حتى الآن، لقد قمت بقراءة وكتابة المدخلات والخروج القياسية. الآن، سنرى كيفية التعامل مع ملفات البيانات الفعلية.

File.new الطريقة

puts Dir.pwd # يعود بمدار الحالي، مثل /usr/bin File.new الطريقة لإنشاء جميع الملفات هي تحت الدليل، يقدم Ruby طرقًا لمعالجة الملفات والأدراج. العنصر المستخدم لقراءة أو كتابة أو القراءة والكتابة، يعتمد صلاحيات الكتابة على معامل mode. في النهاية، يمكنك استخدام File.close الطريقة لإغلاق الملف.

النحو

aFile = File.new("filename", "mode")
   # ... معالجة الملف
aFile.close

File.open الطريقة

puts Dir.pwd # يعود بمدار الحالي، مثل /usr/bin File.open تقوم الطريقة بإنشاء ملف جديد ووضع ملف جديد في file، ولكنFile.open و File.new تختلف الطريقة بين بعضها البعض. الفرق هو File.open يمكن ربط الطريقة بالكتلة، بينما File.new لا يمكن تطبيق الطريقة.

File.open("filename", "mode") do |aFile|
   # ... معالجة الملف
end

في الجدول أدناه، تم عرض أنماط فتح الملف المختلفة:

الطريقةالوصف
rمودود القراءة فقط. يتم وضع مؤشر الملف في بداية الملف. هذا هو المودود الافتراضي.
r+مودود القراءة والكتابة. يتم وضع مؤشر الملف في بداية الملف.
wمودود الكتابة فقط. إذا كان الملف موجودًا، يتم إعادة كتابة الملف. إذا لم يكن الملف موجودًا، يتم إنشاء ملف جديد للكتابة.
w+مودود القراءة والكتابة. إذا كان الملف موجودًا، يتم إعادة كتابة الملف الموجود. إذا لم يكن الملف موجودًا، يتم إنشاء ملف جديد للقراءة والكتابة.
aم��ود الكتابة فقط. إذا كان الملف موجودًا، يتم وضع مؤشر ملف في نهاية الملف. أي أن الملف هو مودود الإضافة. إذا لم يكن الملف موجودًا، يتم إنشاء ملف جديد للكتابة.
a+وضع الكتابة والقراءة. إذا كان الملف موجودًا، يتم وضع مؤشر الملف في نهاية الملف. أي أن الملف في وضع الإضافة. إذا لم يكن الملف موجودًا، يتم إنشاء ملف جديد للاستخدام في القراءة والكتابة.

قراءة و الكتابة في الملف

يمكن استخدام طرق I/O البسيطة لجميع مكتبات file. لذا، يمكن استخدام gets لقراءة سطر من الإدخال القياسي،aFile.gets قراءة سطر من ملف aFile

لكن، يوفر مكتبة I/O إعدادات إضافية للوصول، مما يوفر لنا الراحة.

sysread الطريقة

يمكنك استخدام طريقة sysread لقراءة محتوى الملف. عند استخدام طريقة sysread، يمكنك فتح الملف بأي نمط. على سبيل المثال:

هذا هو نص ملف الإدخال:

هذا ملف نصي بسيط لغرض الاختبار.

دعونا نحاول قراءة هذا الملف الآن:

مثال على الإنترنت

#!/usr/bin/ruby
 
aFile = File.new("input.txt", "r")
if aFile
   content = aFile.sysread(20)
   puts content
else
   puts "Unable to open file!"
end

هذا التعبير سيكتب 20 حرفًا من ملف الإدخال. سيتم وضع مؤشر الملف في موقع الحرف ال21 في الملف.

syswrite الطريقة

يمكنك استخدام طريقة syswrite لإدخال محتوى إلى الملف. عند استخدام طريقة syswrite، يجب فتح الملف في وضع الكتابة.

مثال على الإنترنت

#!/usr/bin/ruby
 
aFile = File.new("input.txt", "r+")
if aFile
   aFile.syswrite("ABCDEF")
else
   puts "Unable to open file!"
end

هذا التعبير سيكتب "ABCDEF" إلى الملف.

each_byte الطريقة

هذه الطريقة تنتمي إلى فئة جميع الملفات هي تحت الدليل، يقدم Ruby طرقًا لمعالجة الملفات والأدراج.. الطريقة each_byte هذا يمكن تكراره لكل حرف في النص. انظر مثال الكود أدناه:

مثال على الإنترنت

#!/usr/bin/ruby
 
aFile = File.new("input.txt", "r+")
if aFile
   aFile.syswrite("ABCDEF")
   aFile.rewind
   aFile.each_byte {|ch| putc ch; putc ?; }
else
   puts "Unable to open file!"
end

تُنقل الحروف واحدة تلو الأخرى إلى المتغير ch ثم تُعرض على الشاشة، كما هو موضح أدناه:

A.B.C.D.E.F.s. .a. .s.i.m.p.l.e. .t.e.x.t. .f.i.l.e. .f.o.r. .t.e.s.t.i.n.g. .p.u.r.p.o.s.e...

IO.readlines الطريقة

فئة جميع الملفات هي تحت الدليل، يقدم Ruby طرقًا لمعالجة الملفات والأدراج. هذا فرع من فئة IO. فئة IO تحتوي أيضًا على بعض الطرق لمعالجة الملفات.

IO.readlines هذا طريقة من فئة IO. هذه الطريقة تعود بمحتوى ملف خطوة بخطوة. IO.readlines الاستخدام:

مثال على الإنترنت

#!/usr/bin/ruby
 
arr = IO.readlines("input.txt")
puts arr[0]
puts arr[1]

في هذا الكود، المتغير arr هو قائمة. ملف input.txt كل سطر سيكون عنصرًا في قائمة arr. لذلك، سيحتوي arr[0] على السطر الأول، وسيحتوي arr[1] على السطر الثاني من الملف.

IO.foreach الطريقة

هذه الطريقة تعود خطوة بخطوة الناتج أيضًا. الطريقة foreach مع الطريقة readlines المختلفة هي، الطريقة foreach مرتبطة بالكتلة. ولكن، ليس مثل الطريقة readlines، الطريقة foreach ليس يعود قائمة. على سبيل المثال:

مثال على الإنترنت

#!/usr/bin/ruby
 
IO.foreach("input.txt"){|block| puts block}

يضع هذا الكود ملف test المحتوى يرسل خطوة بخطوة إلى المتغير block، ثم سيتم عرض الناتج على الشاشة.

تغيير الاسم وحذف الملف

Dir.chdir("/usr/bin") rename و delete الطريقة تغيير الاسم وحذف الملف

في المثال التالي يتم تغيير اسم ملف موجود test1.txt:

مثال على الإنترنت

#!/usr/bin/ruby
 
# تغيير اسم الملف test1.txt إلى test2.txt
File.rename("test1.txt", "test2.txt")

في المثال التالي يتم حذف ملف موجود test2.txt:

مثال على الإنترنت

#!/usr/bin/ruby
 
# حذف الملف test2.txt
File.delete("text2.txt")

نمط الملف والملكية

باستخدام ماسك chmod الطريقة لتغيير نمط الملف أو صلاحيات الوصول/القائمة:

في المثال التالي يتم تغيير نمط ملف موجود test.txt النمط هو قيمة ماسك:

مثال على الإنترنت

#!/usr/bin/ruby
 
file = File.new("test.txt", "w")
file.chmod(0755)

التالي يوضح chmod الماسكات المختلفة التي يمكن استخدامها في الطريقة:

الماسكالوصف
0700رwx ماسك، للمالك
0400r، للمالك
0200w، للمالك
0100x، للمالك
0070رwx ماسك، للفريق المالك
0040r، للفريق المالك
0020w، للفريق المالك
0010x، للفريق المالك
0007رwx ماسك، لغير المعنيين
0004r، لغير المعنيين
0002w، لغير المعنيين
0001x، لغير المعنيين
4000عند التنفيذ تعيين معرف المستخدم
2000تعيين ID المجموعة عند التنفيذ
1000حفظ النص التبادلي، حتى بعد الاستخدام

بحث عن ملف

الأوامر التالية تتحقق من وجود الملف قبل فتحه:

مثال على الإنترنت

#!/usr/bin/ruby
 
File.open("file.rb") if File::exists?("file.rb")

الأوامر التالية تتحقق من ما إذا كان الملف موجودًا بالفعل قبل فتحه:

مثال على الإنترنت

#!/usr/bin/ruby
 
# يعود إلى true أو false
File.file?("text.txt")

الأوامر التالية تحقق من ما إذا كان الاسم المقدم هو مجلد:

مثال على الإنترنت

#!/usr/bin/ruby
 
# مجلد
File::directory?("/usr/local/bin") => true
 
# ملف
File::directory?("file.rb") => false

الأوامر التالية تحقق من ما إذا كان الملف قابلاً للقراءة، الكتابة، أو التنفيذ:

مثال على الإنترنت

#!/usr/bin/ruby
 
File.readable?("test.txt") => true
File.writable?("test.txt") => true
File.executable?("test.txt") => false

الأوامر التالية تحقق من ما إذا كان حجم الملف صفرًا:

مثال على الإنترنت

#!/usr/bin/ruby
 
File.zero?("test.txt") => true

الأوامر التالية تعود حجم الملف:

مثال على الإنترنت

#!/usr/bin/ruby
 
File.size?("text.txt") => 1002

الأوامر التالية تستخدم لتحقق من نوع الملف:

مثال على الإنترنت

#!/usr/bin/ruby
 
File::ftype("test.txt") => file

يستخدم طريقة ftype لتحديد نوع الملف من خلال إرجاع أحد القيم التالية:file، directory، characterSpecialًا blockSpecial، fifo، link، socket أو غير معروف

الأوامر التالية تستخدم لتحقق من وقت إنشاء ملف أو تعديله أو استخدامه لأخر مرة:

مثال على الإنترنت

#!/usr/bin/ruby
 
File::ctime("test.txt") => الجمعة 09 أيار 10:06:37 -0700 2008
File::mtime("text.txt") => الجمعة 09 أيار 10:44:44 -0700 2008
File::atime("text.txt") => الجمعة 09 أيار 10:45:01 -0700 2008

مجلدات Ruby

جميع الملفات هي تحت الدليل، يقدم Ruby طرقًا لمعالجة الملفات والأدراج. فئة تستخدم لمعالجة الملفات.File فئة تستخدم لمعالجة الأدراج.

Dir

استخدام فئة Dir لاستخدام الدليل. للتغيير الدليل الحالي في برنامج Ruby، استخدمDir.chdir ،. مثال التغيير الحالي إلى الدليل

/usr/bin

Dir.chdir("/usr/bin") يمكنك استخدام Dir.pwd

للنظر في الدليل الحالي:

puts Dir.pwd # يعود بمدار الحالي، مثل /usr/bin Dir.entries يمكنك استخدام

puts Dir.entries("/usr/bin").join(' ')

Dir.entries يعود بمدى يحتوي على جميع العناصر في الدليل المحدد.Dir.foreach يقدم نفس الوظيفة:

Dir.foreach("/usr/bin") do |entry|
   puts entry
end

يقدم طريقة أكثر بساطة للحصول على قائمة الدلائل من خلال استخدام طرق الجمع في Dir:

Dir["/usr/bin/*"]

إنشاء الدليل

يمكن استخدامها لإنشاء الأدراج:

Dir.mkdir("mynewdir")

يمكنك أيضًا تعيين الصلاحيات عبر mkdir في الدليل الجديد (ليس الدليل الموجود)

ملاحظة:掩码 755 يضبط صلاحيات المالك (المالك) والمجموعة (المجموعة) وكل شخص (العالم [أي شخص]) على rwxr-xr-x، حيث r = قراءة القراءة، w = كتابة الكتابة، x = تنفيذ التنفيذ.

Dir.mkdir( "mynewdir", 755 )

إزالة الدليل

Dir.delete يمكن استخدامها ل�除 الأدراج.Dir.unlink و Dir.rmdir يقدم نفس الوظيفة، مما يوفر لنا راحة.

Dir.delete("testdir")

إنشاء ملفات وتقسيمات مؤقتة

الملفات المؤقتة هي المعلومات التي يتم إنشاؤها ببساطة أثناء تنفيذ البرنامج ولكن لا يتم تخزينها دائمًا.

Dir.tmpdir يقدم مسار دليل الملفات المؤقتة على النظام الحالي، ولكن هذه الطريقة ليست متاحة بشكل افتراضي. من أجل Dir.tmpdir متاح، استخدام 'tmpdir' المطلوب هو ضروري.

يمكنك أن تجعل Dir.tmpdir و File.join يُستخدم معًا لإنشاء ملفات مؤقتة مستقلة عن المنصة:

require 'tmpdir'
tempfilename = File.join(Dir.tmpdir, "tingtong")
tempfile = File.new(tempfilename, "w")
tempfile.puts "This is a temporary file"
tempfile.close
File.delete(tempfilename)

يخلق هذا الكود ملفًا مؤقتًا، ويكتب فيه بيانات، ثم يزيل الملف. تشمل مكتبة الـ Ruby القياسية أيضًا مكتبة تُدعى Tempfile الذي يمكن استخدامه لإنشاء ملفات مؤقتة:

require 'tempfile'
f = Tempfile.new('tingtong')
f.puts "Hello"
puts f.path
f.close

الوظائف المدمجة

فيما يلي قائمة كاملة بالوظائف المدمجة لمعالجة الملفات والدلائل في Ruby: