لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 11/14/15 in أجوبة
-
يتم إنشاء تطبيق Applet في جافا بواسطة عمل extends للصف Applet Class من الصف الجديد الخاص بالتطبيق. عليك أولًا إنشاء مشروع جافا جديد java project في eclipse قم باختيار java project من القائمة File->New -> Java Project. ثم اكتب اسم المشروع واضغط على زر Finish. الآن أضف صف class جديد بالضغط على الزر اليميني لاسم المشروع AppletExample واختيار Add->New->Class ثم قم بتسميته وليكن myApplet مثلًا، أصبح لدينا صف جديد myApplet ولكن لم نقم بإنشاء تطبيق Applet بعد. الخطوة الأخيرة هي عمل Extends للصف Applet من الصف myApplet، يجب أولًا عمل تضمين import للمكتبة java.applet على الشكل التالي: import java.applet.Applet;أصبح الآن كل شيء جاهز لتشغيل تطبيق Applet ولكن بقي أمر أخير ومهم وهو الدالة init() هذه الدالة هي النقطة التي ينطلق منها تطبيق Applet بحيث أنها أول دالة تنفّذ عند تشغيل التطبيق. مثلًا سأقوم بعرض Label وجملة Hello World! في الدالة init() لتظهر عند تشغيل التطبيق لتكون الشيفرة البرمجية على الشكل التالي: import java.applet.Applet; import javax.swing.JLabel; public class myApplet extends Applet { public void init() { this.add(new JLabel("Hello World!")); } }4 نقاط
-
توفر تقنية MD5 إمكانية تشفير النصوص بطريقة لا يمكن فيها الرجوع للنص الأصلي بحيث تتم المقارنة بين النصوص بعد التشفير ولا يتم التعامل مع النصوص بصيغتها الأصلية. يتم تشفير النصوص باستخدام الصف MD5 في C# وإنشاء غرض منه من النوع MD5CryptoServiceProvider: كما في المثال التالي: MD5 md5 = new MD5CryptoServiceProvider();ومن ثم استدعاء الدالة CopmuteHash وتمرير معامل Argument وهو النص المراد تشفيره باستخدام ASCIIEncoding.ASCII.GetBytes(text). //compute hash from the bytes of text md5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(text)); بعد ذلك قم بأخذ القيمة من الغرض md5 عن طريق الدالة Hash حيث أن القيمة المرتجعة هي عبارة مصفوفة من byte. byte[] result = md5.Hash;في النهاية أنشئ StringBuilder واعمل append للنتيجة كما في المثال التالي: public static string MD5Hash(string text) { MD5 md5 = new MD5CryptoServiceProvider(); //compute hash from the bytes of text md5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(text)); //get hash result after compute it byte[] result = md5.Hash; StringBuilder strBuilder = new StringBuilder(); for (int i = 0; i < result.Length; i++) { //change it into 2 hexadecimal digits //for each byte strBuilder.Append(result[i].ToString("x2")); } return strBuilder.ToString(); } تشفير نصوص باستخدام MD53 نقاط
-
يُستخدم العنصر Calender لعرض التقاويم الميلادية والهجرية حيث تحوي calneder على عدد كبير من الخصائص مثل تحديد اليوم الأول من الأسبوع باستخدام الخاصية FirstDayofWeek والتي تأخذ قيم: Sunday|Monday|Tusday|Wedensday|Thursday|Friday. والخاصية DayNameFormat تحدد طريقة عرض اليوم (اسم كامل،الحرف الأول فقط...الخ) حيث تأخذ قيم: Full|Short|FirstLetter|FirstTwoLett|Shortest. لإنشاء calender في asp.net نكتب: <asp:Calendar id="calendar1" runat="server"></asp:Calender> يمكن تغيير لون الأيام في الـcalender بحسب نوعها، مثلًا تلوين أول يوم من أيام الأسبوع بلون معين: <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>ASP.NET Example</title> </head> <body> <form id="form1" runat="server"> <asp:Calendar id="calendar1" runat="server"> <OtherMonthDayStyle ForeColor="LightGray"> </OtherMonthDayStyle> <TitleStyle BackColor="Blue" ForeColor="White"> </TitleStyle> <DayStyle BackColor="gray"> </DayStyle> <SelectedDayStyle BackColor="LightGray" Font-Bold="True"> </SelectedDayStyle> </asp:Calendar> </form> </body> </html> لعلّ الدالة onDayRender هي أهم دالة في Calender حيث أنها تُنفذ عند إنشاء وإظهار Calender، يمكن الاستفادة من الدالة onDayRender في الكثير من المهام. كمثال يمكن تلوين أيام العطل الرسمية بلون معين وكذلك تغيير ألوان أيام شهر معين..الخ. مثال: <html> <head> <title>DayRender Event Example</title> <script language="C#" runat="server"> void DayRender(Object source, DayRenderEventArgs e) { // Change the background color of the days in the month // to yellow. if (!e.Day.IsOtherMonth && !e.Day.IsWeekend) e.Cell.BackColor=System.Drawing.Color.Yellow; // Add custom text to cell in the Calendar control. if (e.Day.Date.Day == 18) e.Cell.Controls.Add(new LiteralControl("<br />Holiday")); } </script> </head> <body> <form id="form1" runat="server"> <h3>DayRender Event Example</h3> <asp:Calendar id="calendar1" OnDayRender="DayRender" runat="server"> <WeekendDayStyle BackColor="gray"> </WeekendDayStyle> </asp:Calendar> </form> </body> </html> كيف أتعامل مع Calendar في Asp.Net؟3 نقاط
-
يمكن تغيير قيمة cookie في JQuery بالطريقة التالية: $.cookie("Key", Value);حيث تتغير قيم الـ value اعتمادًا على الـ key يمكن أيضًا إضافة صلاحية للـ Cookie باستخدام expires كما في المثال: $.cookie("test", 1, { expires : 10 });ملاحظة: عند استخدام expires لـ Cookie تصبح عبارة عن session Cookie. لحذف الـ Cookie في JQuery تستخدم removeCookie: $.removeCookie("test");لأخذ قيمة Cookie في JQuery نكتب: var cookieValue = $.cookie("test");توفر أيضًا setCookie و getCookie إمكانية لتغيير أو أخذ قيمة Cookie: setCookie('test','1');getCookie('test');تستخدم Cookie في مواقع الويب لتخزين معلومات الزوار مثلًا اللغة التي اختارها في الموقع أو اللون، هناك أغراض كثيرة لاستخدام الـ Cookies وكلها تتعلق بمساعدة موقع الويب في تذكر المستخدمين. كيف أعدّل على cookie باستخدام JQuery؟3 نقاط
-
تُعدّ Grid Layout من أكثر النماذج استخدامًا في ترتيب العناصر ضمن واجهات تطبيقات جافا وذلك بسبب مرونتها الكبيرة وسهولة توضع العناصر بأي طريقة يرغب المبرمج أن يظهر الواجهة بها. يتم إنشاء Grid Layout عن طريق إنشاء غرض من الصف GridLayout وتمرير معاملين في المُنشئ Constructor هما عدد الأسطر وعدد الأعمدة. يمكن إنشاء Grid Layout في المُنشئ Constructor الخاص بالغرض JPanel كما في المثال التالي: JPanel panel = new JPanel(new GridLayout(2,2));ومن ثم إضافة JPanel إلى واجهة التطبيق JFrame. لنفرض أننا نريد صنع نموذج لحاسبة ونريد إنشاء مجموعة من الأزرار من 0-9 وأزرار العمليات الأربع (+,-,/,*) وزر مسح clear باستخدام GridLayout، وإضافة حقل JTextField في بداية الواجهة. import javax.swing.*; import java.awt.*; import java.awt.event.*; public class GridLayoutExample extends JFrame { JPanel panelTxt = new JPanel(new BorderLayout()); JPanel panel = new JPanel(new GridLayout(4,4)); JTextField txtField = new JTextField(); JButton btnPlus = new JButton("+"); JButton btnMinus = new JButton("-"); JButton btnDivid = new JButton("/"); JButton btnMultiply = new JButton("*"); JButton btnClear = new JButton("C"); public GridLayoutExample() { for(int i=0; i<10; i++) { JButton btn = new JButton(i+""); panel.add(btn); } panel.add(btnPlus); panel.add(btnMinus); panel.add(btnDivid); panel.add(btnMultiply); panel.add(btnClear); txtField.setPreferredSize(new Dimension(20, 100)); panelTxt.add(txtField,BorderLayout.NORTH); panelTxt.add(panel,BorderLayout.CENTER); this.add(panelTxt); setSize(500, 500); setVisible(true); setTitle("Grid Layout Example"); } public static void main(String[] args) { JMenuExample test = new JMenuExample(); test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }عند إضافة العناصر إلى GridLayout فإن كل عنصر يأخذ ترتيبه بشكل تلقائي ابتداءً من الخلية 0. يمكنك تحديد رقم الخلية الذي تود وضع العنصر فيها بواسطة المعامل الثاني للدالة add وهي index حيث يوضع فيه رقم الخلية مثال: panel.add(btnPlus,5);أي أنه سيتم وضع الزر الخاص بعملية الجمع في الخانة رقم 5. كيف أتعامل مع Grid Layout في جافا swing؟3 نقاط
-
تُعتبر مكتبة Swing أحد المكتبات التي توفر عناصر controls لبناء واجهة تطبيق رسومية في تطبيقات جافا. لإنشاء تطبيق واجهة رسومي في جافا عليك أولًا بإنشاء مشروع جديدعلى أحد الـ IDEs التي تدعم البرمجة بلغة جافا مثل NetBeans و Eclipse. بعد ذلك أضف صف جديد Class إلى المشروع وقم بتسميته myJavaApp مثلًا. الخطوة الأساسية لبناء واجهة تطبيق هي عمل وراثة Extends للصف JFrame من الصف الجديد الذي قمت بإنشائه. يعتبر الصف JFrame أحد أهم الصفوف في Swing حيث لا يمكن إظهار الواجهة بدونه. الآن قم بتحديد خصائص الواجهة JFrame مثل الطول والعرض ومكان ظهورها على الشاشة عند تشغيل التطبيق وكذلك عنوان الواجهة Title. ملاحظة: لا يمكن للـ Frame أن يظهر بدون استدعاء الدالة setVisible وإعطاءها قيمة true. import javax.swing.*; import java.awt.*; import java.awt.event.*; public class myFrame extends JFrame { public myFrame() { } public static void main(String[] args) { myFrame test = new myFrame(); test.setSize(500, 500); test.setTitle("JFrame Example"); test.setVisible(true); test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }واجهة التطبيق JFrame:2 نقاط
-
يُعتبر تطبيق telegram أحد تطبيقات المحادثات الذي أخذ بالانتشار الكبير في الآونة الأخيرة نظرًا للميزات الجديدة التي يتمتع بها كالسرعة وميزة Telegram Bots بالإضافة لميزة العدد غير المحدود للأعضاء في المجموعة الواحدة Group ما جعله يتفوق على نظيره Whatsapp. يمكن تعريف telegram bots بأنها برمجيات تشبه لحد ما البرامج الذكية كالروبوت، حيث أنها تستجيب لأوامر معينة من المستخدم لتقديم خدمات تمكّن المشتركين من الاستفادة منها عن طريق إضافة حساب الـ bot بواسطة البحث عنه واختياره ليظهر في قائمة المحادثة ومن ثم التواصل معه بواسطة أوامر. الخدمات التي تقدمها telegram bots معرفة أسعار العملات وحالات الطقس والكثير. مثلًا BotForTelgram هو أحد الـ bot المشهورة في تلغرام وهو روبوت يقوم بالاستجابة لعدة أوامر مثل أمر !help لعرض قائمة بجميع الأوامر المستخدمة في تطبيق تلغرام. والأمر !Weather الذي يمكنك من معرفة حالة الطقس في مدينة معينة. ماهو bots في تلغرام؟2 نقاط
-
عليك أولًا أن تقوم بتطبيق حدث addActionListener على الزر append يقوم هذا الحدث بتنفيذ الدالة actionPerformed عند الضغط على زر append. لاستخدام الصف ActionListener قم بتضمين المكتبتين ActionEvent و ActionListener import java.awt.event.ActionEvent; import java.awt.event.ActionListener;تطبيق الحدث addActionListener على الزر append وعمل إعادة تعريف override للدالة actionPerformed كما في المثال التالي: button1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { txtArea.append("\n"+txtField.getText()); } });في الحدث actionPerformed نستدعي الدالة append ونمرر قيمة الحقل JTextField عن طريق الدالة getText() ليكون المثال على الشكل التالي: import javax.swing.*; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import java.awt.*; import java.awt.event.*; public class ActionListenerExample extends JFrame { JButton button1 = new JButton("append"); JTextArea txtArea = new JTextArea(50,20); JPanel panel = new JPanel(new FlowLayout()); JTextField txtField = new JTextField(20); public ActionListenerExample() { panel.add(button1); panel.add(txtField); panel.add(txtArea); button1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { txtArea.append("\n"+txtField.getText()); } }); this.add(panel); setSize(500, 500); setVisible(true); } public static void main(String[] args) { JMenuExample test = new JMenuExample(); test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } أنشئنا JPanel وأضفنا العناصر إليها ثم أضفناها إلى JFrame باستخدام الدالة this.add(). عند كتابة نص في الحقل والضغط على زر append يظهر النص على TextArea:2 نقاط
-
تُمكّنك JList من عرض قائمة من العناصر مع إمكانية وضع شريط تمرير scrollBar. تختلف JList عن باقي الـ Collections إذ أنه لا توجد طريقة مباشرة لتعبئتها مثلًا باستخدام الدالة add(). يجب أولًا قبل تعبئة JList أن نُنشئ مصفوفة array وتعبئتها بالعناصر المطلوبة ومن ثم تقوم بإعطاء المصفوفة للـ JList في الـConstructor. مثال: JList list; String[] listColorNames = { "black", "blue", "green", "yellow", "white" };عند إنشاء الغرض JList نمرر المصفوفة في الـConstructor كما في المثال التالي: list = new JList(listColorNames);يوفر الصف JList تحديد نمط الاختيار من القائمة (اختيار أحادي Single Selection أو اختيار ثنائي Multiple Selection) باستخدام الدالة setSelectionMode كما في المثال التالي: list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);المثال التالي يشرح طريقة التعامل مع JList وطريقة تطبيق حدث action Listener لأخذ قيمة العنصر المحدد من JList. مثلًا مصفوفة تحوي على أسماء عدد من الألوان لكل لون قيمة هي قيمة اللون لنرى كيفية أخذ قيمة عنصر اللون وتلوين الخلفية باللون المحدد: import javax.swing.*; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import java.awt.*; import java.awt.event.*; public class JMenuExample extends JFrame { JList list; String[] listColorNames = { "black", "blue", "green", "yellow", "white" }; Color[] listColorValues = { Color.BLACK, Color.BLUE, Color.GREEN, Color.YELLOW, Color.WHITE }; Container contentpane; public JMenuExample() { super("List Source Demo"); contentpane = getContentPane(); contentpane.setLayout(new FlowLayout()); list = new JList(listColorNames); list.setSelectedIndex(0); list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); contentpane.add(new JScrollPane(list)); list.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { contentpane.setBackground(listColorValues[list .getSelectedIndex()]); } }); setSize(500, 500); setVisible(true); } public static void main(String[] args) { JMenuExample test = new JMenuExample(); test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }عند اختيار اللون Blue مثلًا: كيف أضيف عناصر إلى JList في جافا swing؟2 نقاط
-
تعتبر Border Layout أحد النماذج التي تُرتب وفقها العناصر في مكتبة awt في جافا، والتي تأخذ خمس جهات لتموضع العناصر بداخلها : NORTH, SOUTH, EAST, WEST, CENTER غالبًا تُستخدم عند إنشاء تطبيقات تحتوي على قائمة في الأعلى ومساحة عمل في الوسط وقوائم جانبية. لإنشاء Border Layout نقوم بإنشاء غرض من الصف Border Layout كما في الشيفرة التالية: BorderLayout brLayout = new BorderLayout();يجب عمل تضمين import للمكتبة awt.BorderLayout كالتالي: import java.awt.BorderLayout;لتوضيح كيفية تموضع العناصر في Border Layout الشكل التالي: لنفرض أننا نريد عمل تطبيق يحوي على قائمة menu في الأعلى و Text Area في الوسط والتي ستمثل مساحة العمل. في الأسفل سيكون لدينا statusBar وعلى الجانبين قائمتين عموديتين بمجموعة عناصر. سيكون المثال على الشكل التالي: import java.awt.BorderLayout; import javax.swing.*; public class JMenuExample { public static void main(String[] args) { JFrame frame = new JFrame("BorderLayoutExample"); BorderLayout brLayout = new BorderLayout(); JPanel panel =new JPanel(new BorderLayout()); JMenuBar mb = new JMenuBar(); JMenu m1 = new JMenu("File"); JMenu m2 = new JMenu("Edit"); JMenuItem mItem1 = new JMenuItem("New"); JMenuItem mItem2 = new JMenuItem("Save"); JMenuItem mItem3 = new JMenuItem("Save As"); JMenuItem mItem4 = new JMenuItem("Close"); JTextArea txtArea = new JTextArea("Work area"); JButton b1 = new JButton("East Menu"); JButton b2 = new JButton("West Menu"); JLabel statusBar = new JLabel("statusBar"); m1.add(mItem1); m1.add(mItem2); m1.add(mItem3); m1.add(mItem4); mb.add(m1); mb.add(m2); panel.add(mb, BorderLayout.NORTH); panel.add(txtArea, BorderLayout.CENTER); panel.add(b1, BorderLayout.EAST); panel.add(b2, BorderLayout.WEST); panel.add(statusBar, BorderLayout.SOUTH); frame.add(panel); frame.setSize(500, 500); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } كيف أستخدم border layout في جافا awt؟2 نقاط
-
توفّر مكتبة Swing مجموعة من العناصر Controls مثل JMenu التي تقوم بإنشاء قوائم أساسية وفرعية في تطبيقات جافا. لتتمكن من استخدام الصفين JMenu و JMenuItem قم بعمل import لهما كما في المثال التالي: import javax.swing.JMenu; import javax.swing.JMenuItem;لعمل قوائم يجب إنشاء قوائم أساسية JMenu ومن ثم قوائم فرعية JMenuItem، لنقم بعمل قائمتين أساسيتين File, Edit وقائمة فرعية تحوي 4 قوائم (New, Save, Save As, Close). يجب قبل كل شيء أن نقوم بتهيئة واجهة التطبيق بإضافة عنصر JFrame والذي سيحوي بداخلة كل عناصر التطبيق. لإضافة القائمة إلى JFrame نقوم بإنشاء شريط JMenuBar ومن ثم إضافة القائمة إليها. مثال: import java.awt.BorderLayout; import javax.swing.*; public class JMenuExample { public static void main(String[] args) { JFrame frame = new JFrame("JMenuExample"); JPanel panel =new JPanel(new BorderLayout()); JMenuBar mb = new JMenuBar(); JMenu m1 = new JMenu("File"); JMenu m2 = new JMenu("Edit"); JMenuItem mItem1 = new JMenuItem("New"); JMenuItem mItem2 = new JMenuItem("Save"); JMenuItem mItem3 = new JMenuItem("Save As"); JMenuItem mItem4 = new JMenuItem("Close"); m1.add(mItem1); m1.add(mItem2); m1.add(mItem3); m1.add(mItem4); mb.add(m1); mb.add(m2); panel.add(mb, BorderLayout.NORTH); frame.add(panel); frame.setSize(500, 500); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } لاحظ أن عنصر JMenuBar هو الذي قمنا بإضافته إلى JFrame والذي يحوي بداخله القوائم الأساسية والقائمة الفرعية. كيف أنشئ قائمة menu في جافا باستخدام swing؟1 نقطة
-
يمكن عكس ترتيب عناصر مصفوفة بسهولة وذلك باستخدام الدالة reverse، توجد الدالة في الصف Collection وهي دالة static ويمكن لأي صف يرث من الصف Collection أن يقوم باستخدام الدالة reverse java.util.Collections.reverse()يكون تعريف الدالة في الصف Collection كالتالي: public static void reverse(List<?> list) لنقم بإنشاء مصفوفة قائمة ArrayList وتعبئتها بالعناصر A,B,C,D,E ثم تطبيق الدالة reverse عليها وطباعة النتيجة: public static void main(String[] args) { // create array list object ArrayList arrlst = new ArrayList(); // populate the list arrlst.add("A"); arrlst.add("B"); arrlst.add("C"); arrlst.add("D"); arrlst.add("E"); System.out.println("The initial list is :"+arrlst); // reverse the list Collections.reverse(arrlst); System.out.println("The Reverse List is :"+arrlst); }ستكون النتيجة كالتالي: كيف أعكس عناصر قائمة ArrayList في جافا؟1 نقطة
-
لإظهار محتوى ملف في linux command line نستخدم الأمر cat وهو مشتق من كلمة catenate. يقوم الأمر بقراءة البيانات من الملفات ومن ثم إظهار محتواها، الأمر cat هو من أكثر الأوامر استخدامًا في لينكس حيث يمكن استخدامه إما لإظهار الملفات النصية، أو نسخ ملف نصي لمستند جديد، أو إضافة محتوى ملف نصي إلى نهاية محتوى ملف نصي آخر (تضمين ملفين). لإظهار نص من ملف بكل سهولة باستخدام الأمر cat فقط قم بكتابة اسم الملف الذي تريد إظهاره مع اللاحقة بعد الأمر cat كما في المثال التالي: cat mytext.txtسيقوم الأمر بقراءة الملف النصي وطباعة المحتوى على الشاشة، في حال كان محتوى الملف طويل جدًا سوف ترى القسم الأخير من الملف فقط. في حال رغبتك بقراءة المستند بشكل صفحات page-by-page أو عمل شريط تمرير scroll back and forth يمكنك استخدام الـpager أو الواجهة viewer مثل pg, more or less في حال قمت بكتابة أكثر من اسم ملف بعد الأمر cat فسيقوم الأمر بإظهار محتوى الملفات واحد تلو الآخر. cat mytext.txt mytext2.txtكيف أطبع أو أُظهر محتوى ملف في Linux Commands؟1 نقطة
-
يُستخدم الأمر mv في لينكس لإعادة تسمية الملفات أو المجلدات اعتمادًا على كيفية استخدامها، يمكن أيضًا استخدام الأمر mv لنقل الملف من مجلد لآخر. لإعادة تسمية ملف نقوم بكتابة الأمر التالي: [me@linuxbox me]$ mv filename1 filename2نكتب الاسم الحالي للملف ومن ثم الاسم الجديد. لنقل ملف إلى مجلد آخر directory نكتب الأمر التالي: [me@linuxbox me]$ mv file... directoryهنا أمثلة عن كيفية استخدام الأمر mv والخيارات: الأمرmv file1 file2 في حال كون الملف file2 غير موجود إذًا سيتم إعادة تسمية الملف file1 بـfile2 أما في حال وجود الملف file2 فسيتم استبدال محتوى الملف file2 بمحتوى الملف file1.الأمرmv -i file1 file2 لا يختلف هذا الأمر عن الأمر أعلاه بيد أن إضافة الخيار "i" يقوم في حال وجود الملف file2 بإخبار المستخدم بأن هناك عملية استبدال لمحتوى الملف file2 بمحتوى الملف file1.الأمرmv file1 file2 file3 dir1 الملفات file1,file2,and file3 تُنقل إلى المجلد dir1، أما في حال كون المجلد dir1 غير موجود سيقوم الأمر mv بإظهار خطأ.الأمرmv dir1 dir2 في حال كون المجلد dir2 غير موجود سيعاد تسمية المجلد dir1 بـ dir2، أما في حال وجود المجلد dir2 يٌنقل المجلد dir1 إلى داخل المجلد dir2.1 نقطة
-
يُستخدم الأمر chmod لتغيير الصلاحيات كالقراءة والكتابة والتنفيذ على الملفات files أو المجلدات directories. لاستخدامها قم بتحديد الصلاحية أو الإذن المطلوب والملف أو المجلد الذي تريد تعديله. كيف نحدد الأذونات permissions؟ يمكن بسهولة تصور إعدادات الأذونات على أنها سلسلة من البتات series of bits سأعرض بعض الأمثلة لفهم كيف يتم تحديد الأذونات، إن كل ثلاث بتات تحدد بـ rwx أي write, read, and execute (كتابة، قراءة، تنفيذ) مثال: rwx rwx rwx = 111 111 111 rw- rw- rw- = 110 110 110 rwx --- --- = 111 000 000 and so on... rwx = 111 in binary = 7 rw- = 110 in binary = 6 r-x = 101 in binary = 5 r-- = 100 in binary = 4 في حال كان البت المقابل للحرف هو 1 هذا يعني أن الأذن مسموح وأما 0 فهو غير مسموح. ولكن لماذا توجد ثلاث مجموعات لكل سلسلة؟ الجواب هو أنه كل مجموعة تحدد لنوع مستخدم معين وهي ثلاث أنواع (owner, group, and other)، على سبيل المثال إن كنت تريد جعل ملف معين أن يكون له صلاحية للقراءة والكتابة من قبل صاحب الملف owner وأن تجعل الملف يبقى مخفيًا أو خاص عن البقية others سيكون الأمر كالتالي: [me@linuxbox me]$ chmod 600 some_fileهنا أشهر القيم التي تستخدم لتحديد الصلاحيات على الملفات والمجلدات: 777 (rwxrwxrwx) لا قيود على الأذونات، أي شخص يمكنه عمل أي شيء، عمومًا هذا وضع غير مرغوب فيه.755 (rwxr-xr-x) صاحب الملف يمكنه القراءة والكتابة وتنفيذ الملف، الآخرين يمكنهم قراءة وتنفيذ الملف (هذه الإعدادت شائعة للبرامج التي تستخدم من قبل جميع المستخدمين.700 (rwx------) صاحب الملف فقط من يحق له التعديل على الملف قراءة، كتابة وتنفيذ، ولا أحد آخر له الصلاحية بذلك (هذه الإعدادات مفيدة للبرامج التي يستخدمها صاحب الملف owner فقط ويجب أن تبقى محجوبة عن الآخرين.666 (rw-rw-rw-) كل المستخدمين يمكنهم القراءة والكتابة على الملف.644 (rw-r--r--) صاحب الملف يمكنه القراءة والكتابة على الملف أما الآخرين فيمكنهم القراءة فقط هذا إعداد شائع للملفات التي يجب أن تتغير من قبل صاحب الملف فقط.600 (rw-------) صاحب الملف يمكنه القراءة والكتابة فقط على الملف والآخرين ليس لديهم أي صلاحيات لذلك (هذا إعداد شائع للملفات التي يريد صاحب الملف أن يبقيها خاصة privateملاحظات: الصلاحية الخاصة بالتنفيذ execute تكون فعالة على البرامج التنفيذية أي التي تحتوي على شيفرات برمجية.لا يوجد لاحقة معينة للملفات التنفيذية في لينكس مثل ويندوز الذي ينفرد بلاحقة واحد للملفات التنفيذية وهي .exe1 نقطة
-
ليس هنالك فرقًا حقيقيًا بين التعريفين يمكنك تعرف المصفوفة إما بكتابة القوسين قبل prefixing أو بعد suffixing اسم المصفوفة. الفرق يظهر في حال قمت بتعريف أكثر من مصفوفة على سطر واحد مثال: int a[], b; // first is int array, second is just int variable قمنا هنا بوضع القوسين بعد اسم المصفوفة أي أن أي متغير آخر سيتم تعريفه بعدها سيعتبر متغير عادي وليس مصفوفة. أما في حال وضع القوس قبل اسم المصفوفة فإن جميع المتغيرات التي تكتب بعدها ستعتبر مصفوفة أيضًا ما لم يسبقها نوع جديد للمتغير مثال: int[] c, d; // both c and d are integer array1 نقطة
-
يقوم الأمر ls بإظهار قائمة الملفات والمجلدات directories في الدليل الحالي أي يظهر محتوى الدليل الحالي، يمكن استخدام الأمر ls بعدّة طرق وهنا بعض الأمثلة: الأمر ls لوحده يقوم بإظهار قائمة الملفات في دليل العمل الحالي.الأمر ls /bin يظهر قائمة الملفات في الدليل bin (أي دليل معين تريد اظهار محتواه تقوم بكتابة اسه بعد الأمر ls).الأمر ls -1 يظهر قائمة الملفات في دليل العمل الحالي بصيغة طويلة long format.الأمر ls -1 /etc /bin يظهر قائمة الملفات في الدليل bin والدليل etc بصيغة طويلة long format.الأمر ls -la يظهر قائمة جميع الملفات بما فيها الملفات المخفية في الدليل الأب parent لدليل العمل الحالي working directory بصيغة طويلة long format.$ ls -1 bin boot cdrom dev etc home initrd initrd.img libللمزيد عن استخدام الأمر ls انظر الرابط أدناه: كيف أعرض جميع الملفات الموجودة في working directory في موجه أوامر لينكس؟1 نقطة
-
يمكن عمل مصفوفة ArrayList أن تكون للقراءة فقط باستخدام الدالة: Collections.unmodifiableCollection() والتي ترجع متغير غير قابل للتعديل readonly view of Collection أي لا تستطيع أن تقوم بتنفيذ أي عملية تعمل على تغيير المجمع collection مثل عملية الإضافة add او الإزالة remove او التغيير set. وفي حال تطبيق أي تغيير على المصفوفة (collection) سيتم رمي استثناء: UnsupportedOperationExceptionالطريقة الأكثر شيوعًا في إنشاء مصفوفة غير قابلة للتعديل هي باستخدام الدالة asList في الصف Arrays Class: Arrays.asList(String{[])والتي تُرجع قائمة List لا يُسمح عليها تطبيق عمليات الإضافة أو الإزالة. سأعرض مثال عن كيفية جعل ArrayList تصبح مصفوفة أو قائمة للقراءة فقط read only، سأستخدم الدالة asList من الصف Arrays لإنشاء مصفوفة قائمة ArrayList ذات طول ثابت fixed length ومن ثم تغليفها أو تحويلها إلى تجميع غير قابل للتعديل unmodifiable collection لجعلها للقراءة فقط: public static void main(String args[]) { //creating read only Collection in Java Collection readOnlyCollection = Collections.unmodifiableCollection(new ArrayList<String>()); readOnlyCollection.add("Sydney Sheldon"); //raises UnSupportedOperation exception //making existing ArrayList readonly in Java ArrayList readableList = new ArrayList(); readableList.add("Jeffrey Archer"); readableList.add("Khalid Hussain"); List unmodifiableList = Collections.unmodifiableList(readableList); //add will throw Exception because List is readonly unmodifiableList.add("R.K. Narayan"); //remove is not allowed in unmodifiable list unmodifiableList.remove(0); //set is not allowed in unmodifiable List unmodifiableList.set(0, "Anurag Kashyap"); //creating Fixed Length List from Array in Java List fixedLengthList = Arrays.asList("Mark" , "Twen"); // readOnlyList.add("J.K. Rowling"); //raises Exception fixedLengthList.set(0, "J.K. Rowling"); //allowed that's why not read only list System.out.println(fixedLengthList.get(0)); } كيف يمكن عمل ArrayList للقراءة فقط read only في جافا؟1 نقطة
-
يتم ذلك عن طريق الخاصية Resources حيث يتم إنشاء وتحديد التصميم Style وتحديد نوع العنصر الذي نريد تطبيق التصميم عليه في الخاصية TargetType مثلًا TargetType="Button" ثم بعد ذلك يتم بناء Setters في كل وسوم <Setter> يتم تحديد الخصائص التي ستتغير في العنصر مثل الطول، العرض، اللون، لون الخلفية..الخ. مثال لنقم ببناء تصميم Style على الأزرار Buttons الموجودة في StackPanel: <StackPanel> <StackPanel.Resources> <Style TargetType="Button" x:Key="ButtonStyle"> <Setter Property="Width" Value="200"/> <Setter Property="Height" Value="100"/> <Setter Property="Margin" Value="4"/> <Setter Property="FontSize" Value="20"/> <Setter Property="Background"> <Setter.Value> <LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5"> <GradientStop Color="Blue" Offset="0.0"/> <GradientStop Color="LightBlue" Offset="0.5"/> <GradientStop Color="Navy" Offset="1"/> </LinearGradientBrush> </Setter.Value> </Setter> </Style> </StackPanel.Resources> إنشاء الأزرار وتطبيق التصميم على الزر عن طريق الخاصية Style="StaticResource nameofStyle": <Button Style="{StaticResource ButtonStyle}" Content="Click Me"></Button> <Button Style="{StaticResource ButtonStyle}" Content="OK"></Button> <Button Style="{StaticResource ButtonStyle}" Content="Cancel"></Button> </StackPanel>1 نقطة
-
توفر الدالة Array.Copy() طريقة لنسخ مصفوفة إلى مصفوفة أخرى عن طريق تحديد المعاملين 2 arguments وهما المصفوفة المصدر source والمصفوفة destination وتحديد المعامل الثالث وهو طول المصفوفة التي نريد نسخها. لنقم بعمل مثال وإنشاء مصفوفتين وتعبئتهما بمجموعة عناصر ثم نسخ المصفوفة الثانية للمصفوفة الأولى ومن ثم طباعة قيمة المصفوفة الأولى قبل وبعض النسخ لمقارنة المحتويين: static void Main(string[] args) { String [] arr1 = {"1","2","3","4","5"}; String [] arr2 = {"A","B","C","D","E"}; Console.WriteLine("before copy:"); for (int i = 0; i < arr1.Length; i++) { Console.Write(arr1[i] + " "); } Array.Copy(arr2, arr1,arr1.Length); Console.WriteLine("\nafter Copy:"); for (int i = 0; i < arr1.Length; i++) { Console.Write(arr1[i]+" "); } Console.ReadLine(); }1 نقطة
-
يمكن ذلك عن طريق الخاصية :checked التي ستنفذ عند اختيار أحد الـradio buttons. ليكن لدينا form يحوي على ثلاث radio buttons <form id="myForm"> <input type="radio" name="radioName" value="1" /> 1 <br /> <input type="radio" name="radioName" value="2" /> 2 <br /> <input type="radio" name="radioName" value="3" /> 3 <br /> </form>الآن نكتب الـ script الذي سينفَذ عند اختيار أحد الـ radio buttons: $('#myForm input').on('change', function() { alert($('input[name=radioName]:checked', '#myForm').val()); });لاحظ أننا وضعنا الخاصية :checked بعد تحديد اسم الـ radiobutton الذي نريد أخذ قيمته عند اختياره عن طريق الدالة .val() يمكن أيضًا استخدام معرف العنصر id لتحديد الـradiobutton كما في المثال التالي: <input id="rad1" type="radio" name="radioName" value="1" /> 1 <br />في الـ script نكتب: $('#myForm input').on('change', function() { alert($('#rad1:checked', '#myForm').val()); });1 نقطة
-
يمكن ذلك من خلال تحديد قيمة الخاصية initialValue في RequiredFieldValidator حيث توضع فيها قيمة أول عنصر في القائمة المنسدلة. ليكن لدينا ListBox تحتوي على أسماء مجموعة دول، نحدد أول عنصر ListItem نضع فيه القيمة Value هي "NoCountry"، وفي الخاصية initialValue للعنصر RequiredFieldValidator نضع نفس القيمة "NoCountry" مثال: <form id="form1" runat="server"> <asp:ListBox id="list" runat="server"> <asp:ListItem Selected="True" Value="NoCountry">--ChooseCountry--</asp:ListItem> <asp:ListItem Value="Australia">Australia</asp:ListItem> <asp:ListItem Value="USA">USA</asp:ListItem> </asp:ListBox> <asp:RequiredFieldValidator id="valList" ForeColor="#FF0000" ErrorMessage="Selection Invalid!" ControlToValidate="list" InitialValue="NoCountry" runat="server"/> <br /> <asp:Button id="Button1" Text="Submit" runat="server"/> </form>الآن عند عدم اختيار أي دولة من القائمة وعمل submit سيقوم العنصر RquiredFieldValidator بإظهار سالة خطأ (Selection Invalid!) أي أنه لم يتم تحديد أي دولة. كيف أطبق التحقق على قائمة منسدلة DropDownList باستخدام RequiredFieldValidator في ASP.Net؟1 نقطة
