TO DONATE : BTC => 1BU6R1C4AQ77LjLZswQNKFwAupw61i88Kn || PM => U4089661


اهم قوانين :1- منع الردود الباهتة مثل شكرااااا و أخواتها 2- لا يسمح بالمشاحنات الطائفية باآ شكل من الأشكال 3- عدم استعمال الألفاظ التافهة و الكلام البذىء 4- عدم وضع معرفات التواصل الأجتماعى بالردود 5- الأطلاع على كامل القوانين واجب 


العودة   الحماية للأبد -Security 4 Ever > قسم الدورات التعليميه > دورات الاعضاء > دورة البيرل Perl

دورة البيرل Perl خاص بدورة البيرل 2014

موضوع مغلق
 
أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 06-05-2014, 09:15 PM
الصورة الرمزية b0y
b0y
مراقب
 
حـالة التــواجـد : b0y غير متواجد حالياً
تاريخ التسجيل: Jan 2013
الجــــنــــــس: ذكـر
المشاركات: 747
شكراً:3,113
تم شكره 2,558 مرة في 509 مشاركة
معدل تقييم المستوى: 7
b0y على طريق التميز
افتراضي الدرس الخامس: شرح التعامل مع الملفات و المجلدات

السلام عليكم و رحمة الله و بركاته

الملفات

في التعامل مع الملفات يجب علينا أن نعي الفهومين التاليين لل file handles : STDOUT و STDIN. الSTDOUT بشكل مسبط جدا هي الإرسال ل, بإمكاننا الإرسال لمتصفح أو ملف أو الواجهة إلخ. أما الSTDIN هي العكس, أي أنها للإستقبال.
شرح فتح ملف جديد(للإستقبال منه أو للطباعة له):
بإمكاننا فتح ملف جديد بإستعمال الfunction : open و sysopen. وهما تقريبا الشيء نفسه لكن يختلف تفصيل الأوامر لهما.
نحن سنتعامل مع open:
الsyntax هي كلتالي:
open FILEHANDLE, EXPR
طبعا يجب علينا أن نعرف أن كل ما يحتوي الرمز < في مجال التعامل مع الملفات للإستقبال أما ال> هو للإرسال.
مثال:
لنفتح ملف يحدد من الcommand line بإمكاننا إستعمال الكود التالي:
كود:
open(DATA, "<$ARGV[0]");
في حال أردنا الإستقبال منه. أما في حال أردنا الإرسال إليه:
كود:
open(DATA, ">$ARGV[0]");
حسنا قبل أن نفصل العبارة, ما هو الARGV ؟
الARGV هو ضمن الspecial variable و هي ترمز للأوامر المدخلة عبر الcommand line
أي أن الarray ARGV تحتوي على كل الargument التي تأتي بعد إسم السكربت
مثلا عن كتابة الأمر:
perl tt.pl a b c
يكون ال$ARGV[0] هو a
و ال$ARGV[1] هو b
و ال$ARGV[2] هو c
أتمنا أن تكون مفهومة.
نرجع للopen
طبعا المثال الأول نحنا إستعملنا إسم للfilehandl و هو DATA طبعا بإمكاننا أن نضع أي إسم. و بما أننا حددنا أننا نريد الإستقبال منه فهو من نوع STDIN أما المثال الثاني فهو من نوع STDOUT.
طبعا يوجد العديد من المودات الأساسية التابعة ل> و <:



الأن بعد إستعمال الopen يجب علينا إستعمال الclose: فالopen تفتح الملف أما الclose تغلقه:
الsyntax للclose function:
close FILEHANDLE
مثال:
close DATA
شرح ال <FILEHANDL> للقرائة و الكتابة:
للقرائة
مثال بسيط و هو عند طلبنا من المستخدم إدخال أي معلومة و ذلك يتم عبر الSTDIN مثال:
كود:
print "- please enter you name: ";
$name = <stdin>;
chomp($name);
print "+ your name is $name\n";
في حال أدخلنا boy
سيكون الناتج:
+ your name is boy
حسنا لكن ما هو الchomp ؟
الchomp function هي لتنظيف المتغيير من الإضافات عند الكتابة: مثل بعدما أدخلت أنا كلمة boy ضغطت على زر الenter فالكود لو لم أممر المتغيير على chomp لكان قراه كل تالي:
$name = “boy\n”;
أي إعتبر الEnter سطر جديد.
أو مثلا في حال أردنا فتح ملف و قرائة محتواه:
كود:
print "- please enter a file to read: ";
$file = <stdin>;
chomp($file);
open file, "<".$file;
# or open file, "<$file"; the same :D
@filearray = <file>;
close file;
foreach (@filearray)
{
print $_."\n";
}
هنا فتحنا الملف وخذناه في ال@filearray ثم طبعنا محتواها. طبعا كان بإمكاننا إستخدام الwhile لقرائة الfilehandl مثال:
كود:
print "- please enter a file to read: ";
$file = <stdin>;
chomp($file);
open (file, "<".$file);
while($line = <file>)
{
print $line ."\n";
}
close file;
طبعا ال<file> تخرج بكل مره يتم إستدعائها سطر جديد من الملف إلى أن ينتهي فتصبح undef .
للكتابة
للكتابة بإمكاننا إستعمال الprint function بالsyntax التالية:
print FILEHANDLE LIST
مثال:
نريد فتح الملف log.txt لطباعة جملة I’m running now
الكود:
كود:
open (file, ">log.txt");
print file "i'm running now";
close(file);
بعض الfunction المهمين في التعامل مع الملفات غير الopen و الclose:



في التعامل مع المجلدات:



أمثلة:
- لطباعة كل الملفات في المسار الحالي (يعبر عن المسار الحالي ب"." و المسار السابق ب".."):
كود:
opendir(DIR, ".");
while (readdir DIR)
{
print $_."\n";
}
closedir(DIR);
عند تشغيله سيطبع الملفات الموجودة في المجلد الحالي.
طبعا بإمكاننا إستعمال الglob function مثال:
كود:
@files = glob("./*");
foreach $file(@files ){
   print $file."\n";
}
و لطباعة كل الملفات التي تنتهي بpl بإمكاننا إستعمال:
كود:
@files = glob("./*.pl");
foreach $file(@files ){
   print $file."\n";
}
- مثال عام:

كود:
mkdir("newdir"); #  سيتم إنشاء مجلد جديد بإسم newdir
rmdir("existdir"); # سيتم حذق المجلد الذي يحمل إسم existdir

chdir("newdir");
open(LOG,">>log.txt");
print LOG "i'm here \@newdir";
close(LOG);
# الكود سيدخل للمجلد newdir
# ثم سيطبع في ملف log.txt
# طبعا لنرجع بإمكننا إستعمال: chdir("..")
# مثال:
chdir("..");
print "changing dir \n";
open(LOG,">>newdir/log.txt");
print LOG "i'm not in \@newdir";
close(LOG);
# هنا رجعنا لمسارنا الأساسي وأعدنا الطباعة في الملف log.txt
# في المجلد newdir
أتمنى أن يكون الشرح واضح و مفهوم ولو أنني تناولت المعلومات التي تهمنا فقد, لكن بإمكانكم الإسفسار للتفصيل.
بالتوفيق و في أمان الله

 
الملفات المرفقة
نوع الملف: zip الدرس الخامس.zip‏ (36.9 كيلوبايت, المشاهدات 9)

 

 



اقتباس:
المشاركة الأصلية كتبت بواسطة ApOcalYpse مشاهدة المشاركة

فقط توقف عن طلب النتيجة و تخيلها و السعي خلفها و قم بما عليك القيام به
...
الناس تحب النتيجة و لكنها تكره الطريق الصعب الذي يوصل اليها
اقتباس:
المشاركة الأصلية كتبت بواسطة Sec4ever مشاهدة المشاركة

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

يجب العمل قدر المستطاع و ليس قدر الحاجة .
اقتباس:
المشاركة الأصلية كتبت بواسطة UzunDz مشاهدة المشاركة

ثانيا فيه ادمغة من العرب وموجودين معنا هنا بالمنتدى ويقدمو مواضيع ما تجدها عند الأجانب والتقليل من شان العرب امام الأجانب يسمى جهل و نقص في الشخصية ونوعية هذا الكلام لا تفيدنا الا في الرجوع الى الوراء,, وان كنت شايف نفسك متوقف في كيفية صنع ليتر فهذا لا يعني ان الجميع متوقف هناك بمعنى آخر لا تتكلم بصيغة الجمع عن العرب لأنك تمثل نفسك فقط
اقتباس:
المشاركة الأصلية كتبت بواسطة chevr0sky مشاهدة المشاركة

أنصحك بالتشمير عن سواعدك و الكد و التعب و كذلك سهر الليالي فلا توجد خلطة أو وصفة توصلك إلى مبتغاك.

18 أعضاء قالوا شكراً لـ b0y على المشاركة المفيدة:
موضوع مغلق


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
[استفسار] الدرس الخامس: شرح التعامل مع الملفات و المجلدات b0y دورة البيرل Perl 2 02-12-2014 10:24 PM
[استفسار] الدرس الثالث: شرح التعامل مع الdata types b0y دورة البيرل Perl 12 29-11-2014 09:53 PM
[شرح كتابى] الدرس الثالث: شرح التعامل مع الdata types b0y دورة البيرل Perl 0 29-04-2014 10:07 PM
استفسارات: الدرس الخامس Dr.abolalh دورة تعليم اختراق الاجهزة 0 27-02-2012 04:53 PM
استفسارات الدرس الخامس FoX HaCkEr دورة الحمايه للابد لاختراق المواقع والسيرفرات 7 09-02-2011 07:57 PM


الساعة الآن 05:56 PM