النتائج 1 إلى 15 من 68
الموضوع: EWrapper--رحلة مجهولة
- 26-03-2020, 03:39 AM #1
EWrapper--رحلة مجهولة
بسم الله الرحمن الرحيم
رجاء لا تفهم
http://interactivebrokers.github.io/...1EWrapper.html
EWrapper-EClientSocket-EClient
EReader-EReaderSignal-EJavaSignal
ESocket-EDecoder-EBuilder
EMessage
ص1:
ص2:
ص3:
هناك خط رحلة طويل جدا -- حتى يحضر لك التاريخ من المنصة- او اي شيء آخر!
الارسال والاستقبال!
هناك واجهة ارسال EClientSocket
وهناك واجهة استقبال EWrapper
عربي: انجليزي
واجهة = interface
سنتتبع خط الرحلة هذه خطوة خطوة
في الأعلى طلبنا التاريخ ولكن يمكن فعل أشياء أخرى! كـ طلب الصفقات المفتوحة
وأيضا يمكن الارسال -- كـ إرسال أمر!
عربي: انجليزي
يرسل : send
يطلب: request
طلب التاريخ؟ مر البرنامج بأسطر وكلاسات وانترفيسات ودوال كثيرة, حتى تحقق طلبك!
سنتقصى الأثر أو الجرة! كل ماحدث في المنتصف سنحاول استشكافه, سنحاول أن لا يفوتنا خرم إبرة!آخر تعديل بواسطة سلمان_العتيبي ، 26-03-2020 الساعة 03:44 AM
- 26-03-2020, 03:15 PM #2
ايام زمان لكي يحولون التطبيقات البرمجية مستقلة عن المنصة machine-independent وهنا يتحدثون عن كيف تتم الكمبلة--التحويل من ما نعرف الى اللغة التي يفهمها الكمبيوتر--لغة 0 و 1 وبالتالي نتحدث عن المموري,
كان تركيزهم على البيانات data
يتعاملون مع حزمة بيانات data stream سواء كان مصدر هذه البيانات الانترنت(مثلا قدوم البيانات من المنصة أعلاه) او ملف اكسل الخ
فكان من أقدم كلاسات البرمجة-ونتحدث هنا عن الجافا- DataOutputStream و DataInputStream (وماشابه حسب لغات البرمجة الأخرى)
انظر لملف الأكسل أسفل/ انت ترى 9 حروف, ولكن عددها من جهة المموري 15
يعني يأخذها الكمبيوتر كلها كسطر واحد, وهو لايفهم ماذا تعني ولكن يفهم انها مصفوفة من 15 عنصر
اول خمسة عناصر تراها حروف كلمة 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
- 26-03-2020, 03:29 PM #3
يوجد سترييييييييييييم مكون من 15 رمز أو كركتر!! سمه ماشئت!
الستة الأخرى:
النزول من السطر الأول للسطر الثاني -- رمزين, رمز التنزيل سطر Line Feed ورمز الحامل ReturnCarrige
ثم هناك نزول ثاني من سطر asd الى سطر فارغ--يعني رمزين اضافيين
ثم هناك نزول من السطر الفارغ الى سطر حرف H--رمزين اضافيين
بالنسبة لك ملف الاكسل السابق هو كما تراه امام عينك (أنت ترى أربعة أسطر أحدها فارغ)
بالنسبة للآلة هي سطر واحد محتواه: ahmedCRLFasdCRLFCRLFH
CL قبل LFآخر تعديل بواسطة سلمان_العتيبي ، 26-03-2020 الساعة 03:41 PM
- 26-03-2020, 03:32 PM #4
- 26-03-2020, 03:41 PM #5
لذا اذا اردتها من الجذور, ترجع للأقدم, للمكتبة java.io
هل ترى ردي هذا الذي كتبته! أنه io
io=input/output
ترسله input فيستقبله الآخر كـ output
فلسفة الإرسال نفسها كيف تتم؟ هو مانتحدث عنه هنا.آخر تعديل بواسطة سلمان_العتيبي ، 26-03-2020 الساعة 03:44 PM
- 26-03-2020, 04:37 PM #6
قاعدة: إذا أغلقت الباب لن تدخل القطة!
InputStream أم جميع الكلاسات لـ الـ input streams
هي من نوع abstract وبالتالي لايمكن ان تستخدم لانشاء الكائنات instantiation,--تستخدم فقط في تعريف الكائن declaration,
كررنا هذا الكلام كثيرا سابقا في الموضوع الأول, عند الحديث عن List مثلا وتابعتها ArrayList
أساسيات جافا:
abstract classes can not instaniate objects
وأيضا
interfaces can not instantiate objects
اذن في هذه الحالة انشاء الكائن يتم من خلال أحد الكلاسات التي تنتمي لها -- هذه الكلاسات بالتأكيد ليست abstract
نحن هنا نتعامل مع ملف--ملف اكسل--اذن سنستخدم FileInputStream
والمنطق في هذه الحالة يفرض أن :
FileInputStream extends InputStream
- 26-03-2020, 04:39 PM #7
دائما هنا تعود فعل الشر لكي تعرفه وتعرف أثره,--تعمد الخطأ
سننشئ كائن من خلال abstract class
سيمر علينا عدة مطبات او اخطاء لابد نعرفها لكي نعرف علاجها:
انسخ الكود التالي ثم حفظ ثم كمبلة كما شرحنا في الموضوع الأول:
حاليا في الرحلة مع هذه الجزئية سنمر بخمس مطبات: لابد تفهم ايش تعني.
كود:public class Example { public static void main(String[] args) { InputStream input = new InputStream("D:\\testout.txt"); } }
أساسا الـ abstract classes لايوجد لها كوسنتركتور وبالتالي لايمكن ان تستخدم لانشاء الكائنات.
- 26-03-2020, 04:47 PM #8
لاحظ الصورة-- هو أساسا لم يدرك ان InputStream من أدوات io فما بالك بالقدرة على الحديث عن انشاء كائن الخ!
حتى الان بالنسبة له كلاس عدمي لايوجد أساسا
صورة يا سمير:
الملف المرفق 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
- 26-03-2020, 05:05 PM #9
يا ليل ما أطولك!!
تم استيراد InputStream فأدرك الآن ان هناك كلاسا بهذا الاسم وليس عدمياً وحل المشكلة السابقة.
ولكن اصبحنا نرى مشاكل أخرى!
يا ليل أبو حطبة!
الخطأ مترجماً: لايمكن استخدام لانشاء الكائنات.
Cannot instantiate the type InputStream
صورة يا سمير:
وبناء عليه, نبحث عن أحد الكلاسات التي تسوي extends لهذه الكلاس
- 26-03-2020, 05:09 PM #10وبناء عليه, نبحث عن أحد الكلاسات التي تسوي extends لهذه الكلاس
فهي 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
- 26-03-2020, 05:14 PM #11
بعد الكمبلة -- طلع لنا مشكلة أن البرنامج لم يفهم FileInputStream ؟؟
يتساءل البرنامج "أنت منين جايبها"
ودائما هناك احتمالين!
الاحتمال الأول: هل هي كلاس من تصميمك الشخصي؟ اين مكانها؟ بالتأكيد ليست داخل البكج الذي كتبنا تحته الكود!
أم
الاحتمال الثاني: هل هي كلاس جافوي جاهز؟؟ لماذا لم تستودرها؟
نتوقع المشكلة التالية:
FileInputStream cannot be resolved to a type
آخر تعديل بواسطة سلمان_العتيبي ، 26-03-2020 الساعة 05:18 PM
- 26-03-2020, 05:19 PM #12
مرينا ب 3 مشاكل وتبقى اثنتين
تجي تحلها من هنا, تخرب من هناك!
- 26-03-2020, 05:24 PM #13
تم إضافة 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"); } }
- 26-03-2020, 05:26 PM #14
صورة يا سمير تبين الخطأ بالاحمر والتحذير بالأحمر
التحذير خط برتقالي تحت المتغير input وهو من اختيارنا,
الملف المرفق 521842
- 26-03-2020, 05:29 PM #15
فلأنك تتعامل مع ملفات لابد من وجود الاستثناء exception ذي العلاقة بالملفات
وبالتالي اذا لايوجد الملف تدري أن FileNotFoundException
والاستثناءات تستخدم بكثرة في الجافا,
دعنا نحل الخطأ error أولا ثم نلتفت للتحذير warning بعد ذلك.