درس EWrapper--رحلة مجهولة
صفحة 1 من 5 12345 الأخيرةالأخيرة
النتائج 1 إلى 15 من 68
  1. #1
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    1,408

    افتراضي EWrapper--رحلة مجهولة

    بسم الله الرحمن الرحيم
    رجاء لا تفهم

    http://interactivebrokers.github.io/...1EWrapper.html

    EWrapper-EClientSocket-EClient
    EReader-EReaderSignal-EJavaSignal
    ESocket-EDecoder-EBuilder
    EMessage

    ص1:
    اضغط على الصورة لعرض أكبر

الاســـم:	_9997.png
المشاهدات:	67
الحجـــم:	63.9 كيلوبايت
الرقم:	521812

    ص2:
    اضغط على الصورة لعرض أكبر

الاســـم:	_9999.png
المشاهدات:	77
الحجـــم:	40.8 كيلوبايت
الرقم:	521813

    ص3:
    اضغط على الصورة لعرض أكبر

الاســـم:	_9998.png
المشاهدات:	1
الحجـــم:	114.5 كيلوبايت
الرقم:	521814

    هناك خط رحلة طويل جدا -- حتى يحضر لك التاريخ من المنصة- او اي شيء آخر!
    الارسال والاستقبال!
    هناك واجهة ارسال EClientSocket
    وهناك واجهة استقبال EWrapper

    عربي: انجليزي
    واجهة = interface


    سنتتبع خط الرحلة هذه خطوة خطوة
    في الأعلى طلبنا التاريخ ولكن يمكن فعل أشياء أخرى! كـ طلب الصفقات المفتوحة
    وأيضا يمكن الارسال -- كـ إرسال أمر!
    عربي: انجليزي
    يرسل : send
    يطلب: request


    طلب التاريخ؟ مر البرنامج بأسطر وكلاسات وانترفيسات ودوال كثيرة, حتى تحقق طلبك!
    سنتقصى الأثر أو الجرة! كل ماحدث في المنتصف سنحاول استشكافه, سنحاول أن لا يفوتنا خرم إبرة!
    آخر تعديل بواسطة سلمان_العتيبي ، 26-03-2020 الساعة 03:44 AM

  2. #2
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    1,408

    افتراضي

    ايام زمان لكي يحولون التطبيقات البرمجية مستقلة عن المنصة machine-independent وهنا يتحدثون عن كيف تتم الكمبلة--التحويل من ما نعرف الى اللغة التي يفهمها الكمبيوتر--لغة 0 و 1 وبالتالي نتحدث عن المموري,
    كان تركيزهم على البيانات data
    يتعاملون مع حزمة بيانات data stream سواء كان مصدر هذه البيانات الانترنت(مثلا قدوم البيانات من المنصة أعلاه) او ملف اكسل الخ

    فكان من أقدم كلاسات البرمجة-ونتحدث هنا عن الجافا- DataOutputStream و DataInputStream (وماشابه حسب لغات البرمجة الأخرى)

    انظر لملف الأكسل أسفل/ انت ترى 9 حروف, ولكن عددها من جهة المموري 15
    يعني يأخذها الكمبيوتر كلها كسطر واحد, وهو لايفهم ماذا تعني ولكن يفهم انها مصفوفة من 15 عنصر

    اضغط على الصورة لعرض أكبر

الاســـم:	_9998.png
المشاهدات:	70
الحجـــم:	9.0 كيلوبايت
الرقم:	521830

    اول خمسة عناصر تراها حروف كلمة ahmed
    و3 عناصر حروف كلمة asd
    وعنصر يمثل حرف H
    العدد 9!!
    أين الستة الأخرى؟
    لابد تزور هذا الموقع مثلا لاحصرا: DataInputStream ---فكل رمز يقابله بايت byte معين (بايت هنا اقل وحدة من الاعداد الصحيحة وهو اي عدد صحيح بين 127 و -128)
    http://ascii-table.com/ascii.php

    اذهب للرقم 13 ثم الرقم 10
    كل رمز له مفتاح بايتي, او رقم محدد
    -
    7 بايت وايضا هي عدد صحيح
    ولكن 712 عدد صحيح وليست بايت لانها اكبر من 127
    آخر تعديل بواسطة سلمان_العتيبي ، 26-03-2020 الساعة 03:26 PM

  3. #3
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    1,408

    افتراضي

    يوجد سترييييييييييييم مكون من 15 رمز أو كركتر!! سمه ماشئت!
    الستة الأخرى:
    النزول من السطر الأول للسطر الثاني -- رمزين, رمز التنزيل سطر Line Feed ورمز الحامل ReturnCarrige
    ثم هناك نزول ثاني من سطر asd الى سطر فارغ--يعني رمزين اضافيين
    ثم هناك نزول من السطر الفارغ الى سطر حرف H--رمزين اضافيين


    بالنسبة لك ملف الاكسل السابق هو كما تراه امام عينك (أنت ترى أربعة أسطر أحدها فارغ)

    بالنسبة للآلة هي سطر واحد محتواه: ahmedCRLFasdCRLFCRLFH

    CL قبل LF
    آخر تعديل بواسطة سلمان_العتيبي ، 26-03-2020 الساعة 03:41 PM

  4. #4
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    1,408

    افتراضي

    والحرفين CL
    او LF
    لانعني بها رمزين بل تعبير عن LineFeed و ReturnCarriage
    عدد للرابط قبل ردين عن ال ANSI

    رقم 13 و رقم 10 في الانسي
    اضغط على الصورة لعرض أكبر

الاســـم:	_9998.png
المشاهدات:	2
الحجـــم:	32.3 كيلوبايت
الرقم:	521831
    آخر تعديل بواسطة سلمان_العتيبي ، 26-03-2020 الساعة 03:47 PM

  5. #5
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    1,408

    افتراضي

    لذا اذا اردتها من الجذور, ترجع للأقدم, للمكتبة java.io


    هل ترى ردي هذا الذي كتبته! أنه io
    io=input/output

    ترسله input فيستقبله الآخر كـ output
    فلسفة الإرسال نفسها كيف تتم؟ هو مانتحدث عنه هنا.
    آخر تعديل بواسطة سلمان_العتيبي ، 26-03-2020 الساعة 03:44 PM

  6. #6
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    1,408

    افتراضي

    قاعدة: إذا أغلقت الباب لن تدخل القطة!
    InputStream أم جميع الكلاسات لـ الـ input streams

    هي من نوع abstract وبالتالي لايمكن ان تستخدم لانشاء الكائنات instantiation,--تستخدم فقط في تعريف الكائن declaration,
    كررنا هذا الكلام كثيرا سابقا في الموضوع الأول, عند الحديث عن List مثلا وتابعتها ArrayList
    أساسيات جافا:
    abstract classes can not instaniate objects
    وأيضا
    interfaces can not instantiate objects

    اذن في هذه الحالة انشاء الكائن يتم من خلال أحد الكلاسات التي تنتمي لها -- هذه الكلاسات بالتأكيد ليست abstract

    نحن هنا نتعامل مع ملف--ملف اكسل--اذن سنستخدم FileInputStream

    والمنطق في هذه الحالة يفرض أن :
    FileInputStream extends InputStream

  7. #7
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    1,408

    افتراضي

    دائما هنا تعود فعل الشر لكي تعرفه وتعرف أثره,--تعمد الخطأ
    سننشئ كائن من خلال abstract class
    سيمر علينا عدة مطبات او اخطاء لابد نعرفها لكي نعرف علاجها:
    انسخ الكود التالي ثم حفظ ثم كمبلة كما شرحنا في الموضوع الأول:
    حاليا في الرحلة مع هذه الجزئية سنمر بخمس مطبات: لابد تفهم ايش تعني.

    كود:
    public class Example
    {  
    	public static void main(String[] args)
    	{  
    		InputStream input = new InputStream("D:\\testout.txt");
    	}  
    }
    استخدمنا InputStream لتعريف الكائن وهو تصرف صحيح ثم تعمدنا الخطأ واستخدمناه لانشاء الكائن من خلال new ثم الكونستركتور؟

    أساسا الـ abstract classes لايوجد لها كوسنتركتور وبالتالي لايمكن ان تستخدم لانشاء الكائنات.

  8. #8
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    1,408

    افتراضي

    لاحظ الصورة-- هو أساسا لم يدرك ان InputStream من أدوات io فما بالك بالقدرة على الحديث عن انشاء كائن الخ!
    حتى الان بالنسبة له كلاس عدمي لايوجد أساسا

    صورة يا سمير:
    اضغط على الصورة لعرض أكبر

الاســـم:	_0011.png
المشاهدات:	0
الحجـــم:	66.6 كيلوبايت
الرقم:	521836
    الملف المرفق 521834

    خطأين!
    اكيد لأن InputStream تكررت في البرنامج مرتين
    لو وضعت مكانها كلمة Samir أيضا سترى نفس الخطأين

    الكلاس في الأخير type أي نوع ونحن سابقا لم نصمم كلاسا بهذا الاسم:
    وبالتالي:
    InputStream cannot be resolved to a type


    كيف يجي ذا الكلام وهي موجودة في مكتبة الجافا؟
    ج: صحيح ولكنك لم تستوردها. -- ما سويت لها import

    برنامجك ما يدري انها موجودة!!

    هذا هو أول مطب وعلاجه استيراد InputStream من java.io
    نضع السطر في رأس البرنامج:
    كود:
    import java.io.InputStream;
    آخر تعديل بواسطة سلمان_العتيبي ، 26-03-2020 الساعة 04:52 PM

  9. #9
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    1,408

    افتراضي

    يا ليل ما أطولك!!
    تم استيراد InputStream فأدرك الآن ان هناك كلاسا بهذا الاسم وليس عدمياً وحل المشكلة السابقة.
    ولكن اصبحنا نرى مشاكل أخرى!
    يا ليل أبو حطبة!
    الخطأ مترجماً: لايمكن استخدام لانشاء الكائنات.
    Cannot instantiate the type InputStream

    صورة يا سمير:

    اضغط على الصورة لعرض أكبر

الاســـم:	_0012.png
المشاهدات:	0
الحجـــم:	64.5 كيلوبايت
الرقم:	521839

    وبناء عليه, نبحث عن أحد الكلاسات التي تسوي extends لهذه الكلاس

  10. #10
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    1,408

    افتراضي

    وبناء عليه, نبحث عن أحد الكلاسات التي تسوي extends لهذه الكلاس
    من ضمن هذه الكلاسات--كلاس الملفات FileInputStream

    فهي concrete وليست abstract وبالتالي تستخدم من خلال new لانشاء اي كائن

    عربي: انجليزي
    انشاء كائن = instanciate object


    يصبح كودنا حتى الان على النحو التالي (انت حتى الان عرفت مصادر مشكلتين وتعرف حلولها عن فهم)
    كود:
    import java.io.InputStream;
    
    public class Example
    {  
    	public static void main(String[] args)
    	{  
    		InputStream input = new FileInputStream("D:\\testout.txt");
    	}  
    }
    يمكن فيه مشاكل ويمكن لا!
    آخر تعديل بواسطة سلمان_العتيبي ، 26-03-2020 الساعة 05:12 PM

  11. #11
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    1,408

    افتراضي

    بعد الكمبلة -- طلع لنا مشكلة أن البرنامج لم يفهم FileInputStream ؟؟
    يتساءل البرنامج "أنت منين جايبها"
    ودائما هناك احتمالين!
    الاحتمال الأول: هل هي كلاس من تصميمك الشخصي؟ اين مكانها؟ بالتأكيد ليست داخل البكج الذي كتبنا تحته الكود!
    أم
    الاحتمال الثاني: هل هي كلاس جافوي جاهز؟؟ لماذا لم تستودرها؟

    نتوقع المشكلة التالية:
    FileInputStream cannot be resolved to a type


    اضغط على الصورة لعرض أكبر

الاســـم:	_0012.png
المشاهدات:	1
الحجـــم:	61.2 كيلوبايت
الرقم:	521841
    آخر تعديل بواسطة سلمان_العتيبي ، 26-03-2020 الساعة 05:18 PM

  12. #12
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    1,408

    افتراضي

    مرينا ب 3 مشاكل وتبقى اثنتين
    تجي تحلها من هنا, تخرب من هناك!

  13. #13
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    1,408

    افتراضي

    تم إضافة import للكلاس السابق! فأخفى الخطأ السابق

    ولكن نشأ خطأ جديد وأيضا نشأ تحذير جديد ( التحذير في منزلة بين منزلتين--بين الخطأ والصواب!) ولابد نسعى لاخفاء الحطأ ثم لاخفاءا التحذير

    نريد البرنامج صاغ سليم!

    الكود حتى الآن:
    كود:
    import java.io.FileInputStream;
    import java.io.InputStream;
    
    public class Example
    {  
    	public static void main(String[] args)
    	{  
    		InputStream input = new FileInputStream("D:\\testout.txt");
    	}  
    }
    لاحظ الأخطاء السابقة كانت تخفي أخطاء أخرى محتملة! لأنها كانت ترى المواصلة عبث!

  14. #14
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    1,408

    افتراضي

    صورة يا سمير تبين الخطأ بالاحمر والتحذير بالأحمر
    التحذير خط برتقالي تحت المتغير input وهو من اختيارنا,

    الملف المرفق 521842

  15. #15
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    1,408

    افتراضي

    فلأنك تتعامل مع ملفات لابد من وجود الاستثناء exception ذي العلاقة بالملفات
    وبالتالي اذا لايوجد الملف تدري أن FileNotFoundException


    والاستثناءات تستخدم بكثرة في الجافا,

    دعنا نحل الخطأ error أولا ثم نلتفت للتحذير warning بعد ذلك.