Files

موضوعنا اليوم عن الدوال المستخدمة مع الملفات أو Files والتي تستخدم لتخزين البيانات والتعامل معها.وفيما يلي جدول يحتوي علي الدوال الموجودة في لغة رينج وسنتناول  بعد ذلك شرح موجز لكل دالة وأمثلة توضيحية لكيفية الاستخدام.

Files Functions

Read(filename)

Write(filename, c String)

Dir(cFolderPath)

rewind(file handle)

Rename(cOldFileName, cNewFileName)

fgetpos(file handle)

Remove(cFileName)

fsetpos(filehandle, Position handle)

fopen(cFileName, cMode)

clearerr(file handle)

fclose(file handle)

feof(file handle)

fflush(file handle)

ferror(file handle)

freopen(cFileName, cMode, file handle)

perror(c error message)

tempfile()

fgetc(file handle)

tempname()

fgets(file handle)

fseek(filehandle, nOffset, nWhence)

fputc(file handle, c char)

ftell(file handle)

fputs(file handle, c string)

fwrite(file handle, cString)

fexists(cFileName)

ungetc(file handle, character)

fread(file handle, nSize) 

Read (filename) 

.للقراءة من ملف موجود– عن طريق كتابة اسم الملف

 مثال توضيحي:                      

 # لقراءة الملف license.txt الموجود مباشرة في مسار هذا البرنامج
see read("license.txt")+nl
*/
وفي حالة قراءة ملف في مسار اخر غير مسار حفظ المشروع 
 ينبغي كتابة مسار تواجد الملف كما في المثال التالي 
 /*
see read("S:\anotherfile.txt")+nl

Write (cFileName, cString)

.لكتابة سلسة حرفية في ملف – أو نسخ سلسلة حرفية من ملف الي اخر

ملحوظة: في حالة عدم تواجد الملف يتم إنشاؤه

 مثال توضيحي:

#لادراج السلسلة النصية بطريقة مباشرة بداخل الملف
("see write("copy_file.txt" ,"Hello in Ring
introduction="The language is portable
"(Windows, Linux, Mac OS X, Android, etc.)
# ادراج السلسلة النصية بطريقة غير مباشرة
(write('file.txt',introduction
#قراءة الملف أولا ثم نسخ أو ادراج ما بداخله في ملف اخر
('ofile=read('file.txt
(see write('newFile.txt',ofile

Dir (cFolderPath)

0تعرض قائمة تحتوي على الاسم والنوع – الفولدر يأخذ نوع برقم 1 والملف يأخذ نوع برقم

:مثال توضيحي

 تعرض هذه الدالة جميع الملفات والمجلدات */
عن طريق الاسم،والنوع(الرقم الخاص بكل نوع)
/* علي شكل قائمة تحتوي علي عنصرين:- الاول :الاسم والتاني: النوع
("mylist = dir("C:\Test
see mylist

 for x in mylist
 # في حالة أن العنصر التاني(النوع)=1
 if x[2]=1
 #يتم عرض العنصر الاول(الاسم) ويسمي مجلد
 see "Directory : " + x[1] + nl
 # في حالة أن العنصر التاني(النوع)=0
 else
 #يتم عرض العنصر الاول(الاسم) ويسمي ملف
 see "File : " + x[1] + nl      
 ok
next
(see "Files count : " + len(mylist

Rename (cOldFileName, cNewFileName)

.لإعادة تسمية الملفات

:مثال توضيحي

#  يستبدل اسم الملف old_file  بالاسمnew_file
("rename("old_file.txt","new_file.txt

Fopen (cFileName, cMode)

  :كما هو موضح في الجدول التالي. (Mode) لفتح الملفات بتحديد الاسم و1.JPG

Fclose (file handle)

.لإغلاق الملف بعد القراءة والكتابة

Remove (cFileName)

.لحذف الملفات

           :مثال توضيحي

# فتح الملف
("+fp=fopen("newFile.txt", "w
#لاغلاق الملف بعد انشاؤه وفتحه
(fclose(fp
#  حذف الملف
("remove("newFile.txt
*/
 لحذف الملف المفتوح لابد من عمل اغلاق له أولا  

/*

Freopen (cFileName, cMode, file handle) 

تستخدم لإعادة التوجيه (الخرج، الدخل، …) الي ملفات أو أجهزة أخري عن طريق

  .(file handle)مؤشر الملف  

ملحوظة: Stream عبارة عن مصدر أو مؤشر للبيانات سواء خرج أو دخل أو رسالة خطأ.

:مثال توضيحي

("+fp1=fopen("File.txt","w

(p2=freopen("newFile.txt","w+",stdout
*/
 تستخدم هذه الدالة لعمل فتح ملف مره اخري بعد دالة 
 fopenحتي وان لم يتم اغلاق الملف السابق 
/*
 #  كذلك تستخدم لتغيير الحالة mode للملف المفتوح
(freopen("newFile.txt","R+",stdout

Tempfile () 

. streams لإنشاء ملف مؤقتا ويتم حذفه تلقائيا بعد اغلاق

Tempname ()

لأنشاء اسم للملف المؤقت ويكون مختلف عن باقي أسماء الملفات الموجودة.

#انشاء ملف مؤقتا
()fp = tempfile
#انشاء اسم تلقائيا للملف المؤقت
see tempname() + nl
#يتم حذف الملف المؤقت عند اغلاقه
(fclose(fp

Fgetc (file handle)

 . stream للحصول على حرف من

Fgets (file handle,nSize)

 .streamللحصول على سطر بحجم معين من

    Ftell (file handle)

 .في الملف الحالي stream  لمعرفة موضع

Rewind (file handle)

.للتوجه الي بداية الملف

:مثال توضيحي

("fp = fopen("data.txt","r
 # لقراءةحرف من بداية الملف
(r = fgetc(fp
see r+nl
         #لقراءة جميع الحروف في الملف
while isstring(r)=1
              #لتحديد موضع كل حرف في الملف
 (pos=ftell(fp
 see "At position " + pos +", character is " + r+nl
 (r = fgetc(fp
end

                 # للتوجه الي بداية الملف مره أخري
(rewind(fp
(pos=ftell(fp
see "pos: "+pos+nl
(fclose(fp

("fp = fopen("data.txt","r
see r+nl
(fclose(fp

(Fputc (file handle, c char

.stream لإضافة حرف الي

Fputs (file handle, c string)

.stream لإضافة سلسلة حرفية الي

مثال توضيحي:

("+fp=fopen("data.txt","r
                         # لوضع الحرف r من بداية الملف 
("fputc(fp,"r
(fp=freopen("data.txt","r+",stdout
                   #  لوضع الكلمةring من بداية الملف
("fputs(fp,"ring

Fseek (file handle, nOffset, nWhence)

.لتحديد مكان الملف

الجدول التالي يوضح طريقة تحديد قيم nWhence:

2.JPG


:مثال توضيحي

                        ("+fp=fopen("s.txt","r
 # للذهاب الي بداية الملف
(fseek(fp,0,0
                     #ثم الحصول علي سلسلة حرفية بحجم 20
(chars=fgets(fp,20
see chars+nl
                           #للذهاب الي نهاية الملف
(fseek(fp,0,2
         #ثم اضافة السلسلة الحرفية
("see fputs(fp,"the end of file
                          # للذهاب الي الموضع الحالي للملف
(fseek(fp,0,0
  #ثم اضافة السلسلة الحرفية
("see fputs(fp,"the beginning of file

 

Fread (file handle, nSize)

.لقراءة حجم معين من ملف

Fwrite (file handle, cString)

 .لكتابة أو لاضافة سلسلة حرفية في ملف

:مثال توضيحي

("+fp = fopen("File.txt","r
r= fread(fp,30)+nl
see r

("see fwrite(fp," programming language
(fclose(fp

Ungetc (file handle, character)

 .لقراءته مرة أخري bufferلتخزين أو دفع حرف في

مثال توضيحي:

("+fp = fopen("File.txt","r
             #لحفظ الحرف فيbufferوقراءته مرة ثانية
ungetc(fp,"*")+nl
see fread(fp,50)+nl
(fclose(fp

Fexists (cFileName)

.(للتحقق من وجود ملف عن طريق كتابة الاسم (بالمسار

Fflush (file handle)

.ثم مسحها بعد ذلك تلقائيا Buffer لعمل ضخ للبيانات المخزنة في

مثال توضيحي:

("+fp = fopen("File.txt","r
      #الخرج يساوي 1 أي موجود
see fexists("File.txt")+nl

see fputc(fp,"H")+nl
see fputc(fp,"e")+nl
see fputc(fp,"l")+nl
see fputc(fp,"l")+nl
see fputc(fp,"o ")+nl

(see fflush(fp

(fclose(fp

Feof (file handle)

.للتحقق من الوصول الي نهاية الملف

 :مثال توضيحي

(“+fp=fopen(“soso.txt”,”r
(x=fgetc(fp
while feof(fp)=0
see x
(x=fgetc(fp
end

Fgetpos (file handle)

.للحصول على الملف في الموضع الحالي

Fsetpos (file handle, Position handle)

. لتوجيه المؤشر  الي موضع معين في الملف الحالي


وفيما يلي الدوال الخاصة بالأخطاء (Errors)

Clearerr (file handle)

.لمسح الأخطاء الناتجة عن عدم وصول البيانات بطريقة صحيحة

Ferror (file handle)

.للتحقق من وجود أخطاء

Perror (c error message)

.لطباعة رسالة الخطأ


ومن هنا نختم هذه المدونة… والسلام عليكم ورحمة الله وبركاته

:موقع اللغة

 http://ring-lang.net

Advertisements

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s