-
الإعلانات
-
تسجيل عضوية جديدة في المنتدى 01/31/2016
السلام عليكم ورحمة الله وبركاته عزيزي العضو الجديد : حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة ) فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK) وقم بتفعيل إشتراككم من هناك
-
-
عدد المشاركات
1,439 -
تاريخ الانضمام
-
تاريخ اخر زياره
السمعه بالموقع
139 جيد جداعن محمد رضى

-
الرتبة
مشرف قسم Visual Basic.NET
- تاريخ الميلاد 04/07/1979
طرق الإتصال
-
Website URL
http://www.webeaver
.com - ICQ 0
-
Facebook
facebook.com/emmr.r
ida
معلومات الملف الشخصي
- الجنس ذكر
- الدولة : مراكش الحمراء - المغرب
- اهتمامات N/A
أحدث الزائرين لملفلك الشخصي
-
طالب علم مبتدىء أعطى سمعة إيجابية لــ إجابة على سؤال: فك الخلط الحاصل بين الوضعين المتصل و المنفصل
-
طالب علم مبتدىء أعطى سمعة إيجابية لــ إجابة على سؤال: سؤال: منع بناء مجلد على القرص الصلب
-
sniper-jawadino أعطى سمعة إيجابية لــ إجابة على سؤال: فك الخلط الحاصل بين الوضعين المتصل و المنفصل
-
a7med.mamdouh أعطى سمعة إيجابية لــ إجابة على سؤال: فك الخلط الحاصل بين الوضعين المتصل و المنفصل
-
amer-albarqi أعطى سمعة إيجابية لــ إجابة على سؤال: مطلوب طريقة ربط جدولين وعرض النتائج في datagrid
-
JBR07 أعطى سمعة إيجابية لــ إجابة على سؤال: سؤال: عمل برنامج لتخمين الرقم السري للإيميل
-
ASR0017 أعطى سمعة إيجابية لــ إجابة على سؤال: فك الخلط الحاصل بين الوضعين المتصل و المنفصل
-
ASR0017 أعطى سمعة إيجابية لــ إجابة على سؤال: فك الخلط الحاصل بين الوضعين المتصل و المنفصل
-
MiNi.SpIdEr أعطى سمعة إيجابية لــ رد في موضوع: كيف تحفظ و تسترجع كائنات الدوت نت حتى بعد غلق البرنامج
-
SENDBAD-COM أعطى سمعة إيجابية لــ رد في موضوع: بحث : كيفية تحديد صلاحيات مستخدمي Sql Server و البرامج المتصلة به.
-
السلام عليكم و رحمة الله تعالى و بركاته... كيف تفك برمجيا ضغط رابط مضغوط (التعرف على الرابط الأصلي)؟ عندما تنقر من على متصفحك على رابط مضغوط (bit.ly أو ow.ly...) أو تدخله مباشرة في شريط العناوين يقوم المتصفح بإرسال طلب تحميل الصفحة إلى الخادم الذي يرسل جوابا مفاده أن الصفحة المراد تحميلها قد تم تغيير مكانها (http://en.wikipedia.org/wiki/HTTP_301) المكان أو الرابط الأصلي للرابط المضغوط يبعته الخادم كجواب لطلب تحميل الصفحة في قيمة المفتاح Location للمتغير Headers لكائن الفئة HttpWebResponse و هذا ما يبينه الكود البسيط التالي : Console.Write("Type short url : ") ' نبعث بالرابط المضغوط إلى الخادم dim rq As HttpWebRequest = HttpWebRequest.Create(Console.ReadLine()) ' نحتاج للكذب حتى لا ترفض بعض الخوادم طلبنا rq.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1)" ' نطلب من إطار الدوت نت ألا يقوم بالتتبع الأوتوماتيكي لجواب الخادم 301 rq.AllowAutoRedirect = false ' نستقبل جواب الخادم dim rs As HttpWebResponse = rq.GetResponse() ' نقرأ الرابط الأصلي للرابط المضغوط من خادم bit.ly or ow.ly or tinyurl.com etc. Console.WriteLine("Original url : " + rs.Headers("Location")) ' نحرر موارد النظام التي استعملناها rs.Close() أتمنى أن تروقكم هذه التلميحة التي تمكننا من تضمين مفكك ضغط الروابط في مشاريعنا...
-
سؤال عن كيفية تغيير حجم الشاشة على نظام ubuntu 10.04 NetBook
محمد رضى رد على محمد رضى's موضوع في نظام تشغيل Unix & Linux
Fix VGA Resolution SIS 671/671 in ubuntu 11:04 -
محاكاة الدالة setTimeout الخاصة بالـ JavaScript
محمد رضى رد على محمد رضى's موضوع في Microsoft Visual C#.NET
كود الفئة Timeout في حالته تلك يؤدي إلى حذف كائن Thread مباشرة بعد نهاية تنفيذ الكود أو الدالة الممررة إلى SetTimeout. جرب فتح Task manager و تنفيد مشروع للتجربة فيه كود محاكاة التايمر بثانية واحدة و سترى أن عدد Threads الذي يظهر بجانب الملف التنفيذي لا يتعدى 1 بالإظافة إلى المسالك الخاصة بإطار الدوت نت. الشيء الوحيد الذي يزيد عن الحد هو عدد Handles الذي قد يصل إلى مئات ثم يعود للصفر بعد دقيقة أو دقيقتين. -
محاكاة الدالة setTimeout الخاصة بالـ JavaScript
محمد رضى رد على محمد رضى's موضوع في Microsoft Visual C#.NET
استخدامها كمحاكاة لـ Timer أمر مقبول (و لا أنصح به) في حالة كانت الفترة الزمنية كبيرة شيئا ما أي ثانية فما فوق. أما الاستعمال المفرط لها فبالتأكيد سيؤثر على كفاءة و عمل الجهاز. أما الاستعمال الذي أراه الأمثل لها فهو القيام بتنفيذ كود يعمل في الخلفية تفاديا لتجميد واجهة المستخدم و كذلك لتبسيط الأمور. -
محاكاة الدالة setTimeout الخاصة بالـ JavaScript
محمد رضى رد على محمد رضى's موضوع في Microsoft Visual C#.NET
هذه آفة من آفات عملية النسخ/لصق بدون تفكير :P شكرا أخي على الملاحظة و قد قمت بتصحيح الكود :) ======= هناك إضافة صغيرة, هي أنه يمكننا محاكاة Timer بالدالة Timeout.SetTimeout و ذلك بالمناداة على نفس الدالة في آخر الكود المنفد. مثال : void MyMethod() { Console.WriteLine("Tick"); Timeout.SetTimeout(1000, MyMethod); } بمجرد تنفيد السطر التالي سيبدأ البرنامج بكتابة Tick كل ثانية و يمكن إيقاف العملية بوضع شرط لتنفيد الدالة Timeout.SetTimeout Timeout.SetTimeout(1000, MyMethod); مبرمجوا الجافاسكريبت متعودون على استغلال الدالة الأصلية setTimeout لعمل Animation على صفحات الويب. -
السلام عليكم و رحمة الله تعالى و بركاته... قد نحتاج في بعض مشاريعنا البرمجية تنفيد كود بعد انقضاء وقت محدد. هذا الكود لا يحتاج إلى إعادة التنفيذ مرات عديدة فنضعه داخل Timer. من هذا المنطلق يمكننا كتابة دالة بسيطة تحاكي الدالة setTimeout للـ JavaScript. هذه الدالة تستقبل معاملين الأول هو الدالة المراد المناداة عليها وقت انتهاء الوقت المحدد على المعامل الثاني. الدالة التي سنرى بعد قليل ستعمل بنفس المبدأ أي أنها سترجع بدون انتظار و بعض انقضاء الوقت المحدد سيتم تنفيذ الكود المحدد لها. // الفئة التي تحتوي الدالة public class Timeout { // تحديد تعريف الدوال التي يمكن المناداة عليها public delegate void TimeoutMethod(); // تمكن الدالة من المناداة على الدالة المحددة بـ method بعد انقضاء الوقت millis public static void SetTimeout(int millis, TimeoutMethod method) { // انشاء مسلك خاص لتنفيد العملية System.Threading.Thread thrd; thrd = new System.Threading.Thread(delegate() { // انتظار انتهاء الوقت المخصص System.Threading.Thread.Sleep(millis); // المناداة على الدالة المحددة method(); }); // لتفادي تجميد التطبيق وقت غلقه من طرف المستخدم thrd.IsBackground = true; // تنفيد الكود في مسلك خاص thrd.Start(); } } استخدام الدالة SetTimeout الخاصة بنا سهل جدا : انتظار ثانية ثم تنفيد كود : Timeout.SetTimeout(1000, delegate() { Console.WriteLine("Tick"); }); انتظار ثانية ثم المناداة على دالة مستقلة MyMethod حيث يكون تعريف الدالة من دون معاملات void MyMethod() { ... } : Timeout.SetTimeout(1000, MyMethod); ملاحظة : يجب الانتباه إلى أن كود الدالة Timeout.SetTimeout يتم تنفيذه في مسلك خاص و محاولة الوصول إلى مربعات تحكم عبر الكود المحدد للدالة سيرفع استثناء من نوع InvalidOperationException لأن إطار الدوت نت يمنع الوصول إلى مربعات التحكم من مسلك مغاير للمسلك الذي تم إنشاء المربع فيه و ذلك وقت تتبع الأخطاء DEBUG. مثلا الكود التالي سيرفع استثناء : Timeout.SetTimeout(5000, delegate { myForm.Text = "Tick"; }); للتمكن من استخدام الدالة Timeout.SetTimeout للوصول إلى مربعات التحكم, يجب أولا كتابة دالة خاصة لهذا الغرض بالشكل التالي : void SetMyFormText(string txt) { // إذا كان المسلك الحالي غير المسلك الذي إنشئ فيه النموذج if(this.InvokeRequired) { // استدعاء لنفس الدالة this.Invoke((MethodInvoker) delegate { SetMyFormText(txt); }); // خروج return; } // إذا وصلنا هنا, فنحن في المسلك الصحيح و يمكننا تحديد الخاصية بكل أمان this.Text = txt; } ثانيا, استخدام الدالة Timeout.SetTimeout للمناداة على الدالة SetMyFormText : Timeout.SetTimeout(5000, delegate { SetMyFormText("Set some text after 5 seconds."); }); يمكن و بكل سهولة زيادة امكانية المناداة على دوال تستقبل معاملات و لكن لتبسيط الموضوع تم تجاهل ذلك. تحياتي...
- 7 ردود
-
1
-
[تنبيه : عنوان غير مناسب]ممكن مساعده في الاكواد
محمد رضى رد على جنوبيه's موضوع في Microsoft Visual Basic.NET
هذا درس للمبتدئين به الشرح الكافي : http://www.arabteam2000-forum.com/index.php?showtopic=208690 -
ابدأ بزيادة التايمر من مربع الأدوات - حدد خاصيتها Enabled على true - حدد خاصيتها Interval على السرعة التي تريد مثلا 1000 - قم بحجز اشتراك في الحدث Tick للتايمر - عرف متغير i من نوع int على مستوى Form# و حدد قيمته على 0 - عرف مصفوفة الصور x على مستوى Form# - حدد الصور على المصفوفة في الحدث Load - في دالة الحدث Tick, زد كود مثل هذا : pictureBox7.Image = (x[i++]); if(i > 4) i = 0; بالتوفيق :)
-
إذا كان الخطأ هو أن الصور لا تظهر كما تحب فجرب تغيير اللوب بتايمر أو على الأقل Application.DoEvents() بعد تغيير الصورة مع توقف لمشاهدة الصورة الجديدة أما إذا كان يتم رفع استثناء فالمرجو ارفاق نص رسالة الخطأ حتى تتضح الأمور.
- 9 ردود
-
1
-
هذا مثال جميل عن كيفية تصدير بيانات من الداتاجريد إلى ملف إكسل : http://www.arabteam2000-forum.com/index.php?showtopic=194897&view=findpost&p=971431
-
الأخ الكريم/الأخت الكريمة السلام عليكم ورحمة الله وبركاته مرحباً بكم في منتدى الفريق العربي للبرمجة نود تنبيهك أن العنوان غير مناسب. الرجاء اختيار عنوان مناسب أكثر في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية. وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!! قواعد المشاركة http://www.arabteam2000-forum.com/index.php?showtopic=29343 شاكرين لكم حُسن تعاونكم
-
إذا كانت قاعدة البيانات مبنية في المجلد الافتراضي لـ SQL Server فهذه هي الطريقة بالـ VB.NET http://www.arabteam2000-forum.com/index.php?showtopic=201957 تحويل كود VB.NET إلى C#
-
شكرا لكم على هذه الردود الطيبة :) بارك الله فيكم
-
بارك الله فيك أخي محمد :) الجافا لغة برمجة رائعة خالية من التعقيدات الأمر الذي يجعلني دائما استمتع بتطوير مشاريع بسيطة بها في أوقات الفراغ حتى لا أنسى ما تعلمته.
-
السلام عليكم و رحمة الله تعالى و بركاته... هذا كود برنامج بسيط من نوع Duplicated Files Finder يقوم بالبحث داخل مجلد(ات)/وحدات تخزين بحثا عن الملفات المكررة عن طريق حساب hash code لكل ملف يجده و تخزينها بطريقة تمكنه من التعرف على الملفات المكررة حتى لو كانت متواجدة في أماكن متفرقة في وحدة التخزين أو المجلد. البرنامج كتبته للتسلية فقط, و أضعه بين أيديكم عسى أن يفيد... الكود مكون من ثلاث فئات. الفئة الأولى AsyncFileFinder تقوم بالبحث عن الملفات... /** * @(#)AsyncFileFinder.java * * * @author Mohamed Rida */ import java.util.*; import java.io.*; public class AsyncFileFinder { private static final int FIFO_MAX = 10; private String startPath = ""; private String regex = ".*"; private int fifoMax = FIFO_MAX; private boolean aborted = false; private boolean subDir = false; private boolean running = false; private boolean finished = false; private boolean started = false; private boolean caseSens = false; private LinkedList<String> queue = new LinkedList<String>(); private Object synch = new Object(); /** */ public AsyncFileFinder(String path, String rgx) throws FileNotFoundException, UnsupportedOperationException { File file = new File(path); if(!file.exists()) throw new FileNotFoundException("Folder [" + path + "] not found!"); if(!file.isDirectory()) throw new UnsupportedOperationException("Path [" + path +"] must be a folder"); startPath = path; regex = rgx.toLowerCase(); } /** */ public AsyncFileFinder(String path, String rgx, boolean subDir) throws FileNotFoundException, UnsupportedOperationException { this(path, rgx); this.subDir = subDir; } /** */ public AsyncFileFinder(String path, String rgx, boolean subDir, boolean caseSens) throws FileNotFoundException, UnsupportedOperationException { this(path, rgx); this.subDir = subDir; this.caseSens = caseSens; if(caseSens) regex = rgx; } /** */ public void setQueueMaxLength(int length) throws IllegalArgumentException { if(length <= 0) throw new IllegalArgumentException("The new queue length must be greater than 0!"); fifoMax = length; } public int getQueueMaxLength() { return fifoMax; } public void abort() { aborted = true; } public boolean isRunning() { return running; } public boolean isAborted() { return aborted; } public boolean isFinished() { return finished; } public boolean hasNext() { return queue.size() > 0; } /** */ public void start() throws UnsupportedOperationException { boolean b = started || aborted || finished || running; if(b) throw new UnsupportedOperationException("Cannot start now! Please use a new AsyncFileFinder object."); started = true; new Thread() { @Override public void run() { running = true; FindIntoNextFolder(startPath); running = false; finished = true; synchronized(AsyncFileFinder.this) { // Wake up owner, we've finished... AsyncFileFinder.this.notifyAll(); } } }.start(); } /** */ private void FindIntoNextFolder(String path) { if(aborted) return; File dir = new File(path); File[] files = dir.listFiles(); if(files != null) { for(File f: files) { if(f.isFile()) { String name = f.getName(); if(!caseSens) name = name.toLowerCase(); if(name.matches(regex)) { // TODO : Add support for raising an event when a file is found while(queue.size() >= fifoMax) { synchronized(this) { // Notify owner to process new found files this.notifyAll(); } //System.out.println(System.currentTimeMillis() + " : Queue is full! Waiting on synch..."); try { synchronized(synch) { // Queue is full, wait... synch.wait(100); } } catch(InterruptedException ex) {} //System.out.println(System.currentTimeMillis() + " : synch is woken up."); } synchronized(queue) { queue.addFirst(f.getAbsolutePath()); } synchronized(this) { // Notify owner to process new found files this.notifyAll(); } } } } if(subDir) { for(File f: files) { if(f.isDirectory()) { FindIntoNextFolder(f.getAbsolutePath()); } } } } } /** */ public String peekFile() { String path = null; if(queue.size() > 0) { synchronized(queue) { path = queue.removeLast(); } } synchronized(synch) { // Notify search thread to continue synch.notifyAll(); } return path; } /** */ public static String fileFilterToRegEx(String filter) { return filter.replace(".", "\\.").replace("*", ".*").replace("?", ".").replace(";", "|"); } } الفئة الثانية تقوم بعملية التعرف على الملفات المكررة : /** * @(#)AsyncFileFinder.java * * * @author Mohamed Rida */ import java.util.*; import java.io.*; import java.security.*; public class DuplicateFinder extends Thread { private final int MAX_THREADS = 10; private int maxThreads = MAX_THREADS; private Hashtable filesSig = new Hashtable(); private int files = 0; // Processed files private int errors = 0; // Errors count private boolean started = false; private boolean running = false; private boolean aborted = false; private boolean finished = false; private AsyncFileFinder finder = null; private int threadsCount = 0; // Current threads count private Object freeThread = new Object(); // Wait on if threadsCount = maxThreads public boolean isStarted() { return started; } public boolean isRunning() { return running; } public boolean isAborted() { return aborted; } public boolean isFinished() { return finished; } public void abort() { aborted = started && running; } public int getProcessedFilesCount() { return files; } public int getErrorsCount() { return errors; } /** */ public DuplicateFinder(String folder) throws UnsupportedOperationException, FileNotFoundException { File f = new File(folder); if(!f.isDirectory()) throw new UnsupportedOperationException("[" + folder + "] is not a valid folder!"); if(!f.exists()) throw new FileNotFoundException("[" + folder + "] does not exist!"); finder = new AsyncFileFinder(folder, ".*", true); // Search for all files including sub directories } /** */ public DuplicateFinder(String folder, int threads) throws UnsupportedOperationException, FileNotFoundException { this(folder); maxThreads = threads; } /** */ @Override public void run() { started = true; running = true; finder.start(); while(!aborted && (!finder.isFinished() || finder.hasNext())) { if(finder.hasNext()) { final String path = finder.peekFile(); // Do we have a free thread while(threadsCount >= maxThreads) { synchronized(freeThread) { try { freeThread.wait(); } catch(InterruptedException ex) {} } } // Process peeked file threadsCount++; new Thread() { @Override public void run() { boolean b = processFile(path); files += b ? 1 : 0; errors += b ? 0 : 1; threadsCount--; synchronized(freeThread) { freeThread.notifyAll(); } } }.start(); } else { synchronized(finder) { // Wait for a new found files try { finder.wait(); } catch(InterruptedException ex) {} } } } while(threadsCount > 0) { // Wait for threads to terminate synchronized(freeThread) { try { freeThread.wait(); } catch(InterruptedException ex) {} } } running = false; finished = true; synchronized(this) { // Wake up owner this.notifyAll(); } } /** */ private boolean processFile(String fileName) { try { System.out.println(fileName); // Get file Hash string BufferedInputStream bis = new BufferedInputStream(new FileInputStream(fileName)); DigestInputStream dis = new DigestInputStream(bis, MessageDigest.getInstance("SHA1")); while(dis.read() != -1); byte[] h = dis.getMessageDigest().digest(); Formatter frmt = new Formatter(); for(byte b : h) frmt.format("%02x", b); String hash = frmt.toString(); // Check if it is duplicated synchronized(filesSig) { ArrayList al = (ArrayList)filesSig.get(hash); if(al != null) { // Duplicated synchronized(al) { al.add(fileName); } } else { // Not yet! We'll see if it is al = new ArrayList(); al.add(fileName); filesSig.put(hash, al); } } } catch(Exception ex) { ex.printStackTrace(); return false; } return true; } /** */ public void printScanResult() throws IllegalStateException { if(!finished) throw new IllegalStateException("DuplicateFinder scan is still running!.."); for(Enumeration e = filesSig.keys(); e.hasMoreElements(); ) { String hash = (String)e.nextElement(); ArrayList al = (ArrayList)filesSig.get(hash); if(al.size() > 1) { // Duplicated entry System.out.println(hash); // Hash for(int i = 0; i < al.size(); i++) { System.out.println((String)al.get(i)); // Duplicated file names } System.out.println("====================\n"); } } } } الفئة الثالثة هي فئة التطبيق : الكود الذي تم تحويله إلى تعليق هو لتجربة الفئة أعلاه في البحث عن ملفات. /** * @(#)test.java * * test application * * @author Mohamed Rida * @version 1.00 2011/3/25 */ public class test { public static void main(String[] args) throws java.io.FileNotFoundException { DuplicateFinder dupf = new DuplicateFinder(args[0]); dupf.start(); synchronized(dupf) { try { dupf.wait(); } catch(InterruptedException ex) {} } System.out.println("\n=========="); System.out.println("Scan result for : " + args[0]); System.out.println("=========="); dupf.printScanResult(); System.out.println("Files processed : " + dupf.getProcessedFilesCount()); System.out.println("Errors occured : " + dupf.getErrorsCount()); /* System.out.println("Path : " + args[0] + "\nFilter : " + args[1] + "\n"); AsyncFileFinder finder = new AsyncFileFinder(args[0], AsyncFileFinder.fileFilterToRegEx(args[1]), true); finder.start(); String path = ""; do { if(finder.hasNext()) { path = finder.peekFile(); // Work with the file... System.out.println(path); } else { //System.out.println(System.currentTimeMillis() + " : Queue is empty! Waiting on finder..."); synchronized(finder) { try { finder.wait(); // Wait for a new found file } catch(InterruptedException ex) {} } //System.out.println(System.currentTimeMillis() + " : finder is woken up."); } } while(!finder.isFinished()); System.out.println("\n====\nProgram successfully terminated."); */ } } أمضيت ساعة كاملة أكتب تعاليق باللغة العربية على الكود لكن اكتشفت بعد فوات الأوان أن JCreator LE لا يدعم UNICODE! test.rar
- 5 ردود
-
2