مشاهدة نتائج الإستطلاع: هل ترغب في الانتقال للمستوى الأعلى بالدورة لعمل برامج تحليل باستخدام لغة السي شارب
نعم - سأتابعها بإذن الله
80.00%
لا - يفضل الأعضاء استخدام الإكسل لأنه أسهل
20.00%
المصوتون: 50. أنت لم تصوت في هذا الإستطلاع

إضافة رد
قديم 09-02-2019, 04:08 PM
  المشاركه #193

عضو هوامير المميز

تاريخ التسجيل: Mar 2018
المشاركات: 6
hossamabuzaid غير متواجد حالياً  

ما شاء الله عليكم استاذنا العزيز


رد مع اقتباس
 
 

قديم 20-03-2019, 12:07 AM
  المشاركه #194

عضو هوامير المميز

تاريخ التسجيل: Mar 2018
المشاركات: 6
hossamabuzaid غير متواجد حالياً  

لعل المانع خيرا ان شاء الله مش عارف اطبق الجزء الخاص باستخراج بيانات كل سهم فى ملف اكسيل


رد مع اقتباس
قديم 01-02-2020, 08:34 AM
  المشاركه #195

عضو موقوف

تاريخ التسجيل: May 2019
المشاركات: 5,722
AL_LAZZAM غير متواجد حالياً  

زادك الله من علمه ونفع بك


رد مع اقتباس
قديم 02-09-2022, 07:56 AM
  المشاركه #196

عضو هوامير المؤسس

تاريخ التسجيل: May 2005
المشاركات: 3
سهم لاين غير متواجد حالياً  

جزاك الله خير يامن قدم الشرح الجميل


رد مع اقتباس
قديم 05-10-2022, 05:04 PM
  المشاركه #197

عضو هوامير المميز

تاريخ التسجيل: Apr 2007
المشاركات: 43
سمير2 غير متواجد حالياً  

اقتباس:
المشاركة الأصلية كتبت بواسطة يزينها الله مشاهدة المشاركة
كود:
sub main()
    'تحديد اتجاه الصفحة من اليمين إلى اليسار (اللهم اجعلنا من أهل اليمين)
    activesheet.displayrighttoleft = true
    cells.font.name = "arial unicode ms"
    cells.font.size = 10

    'عامود كود السهم
    columns(1).columnwidth = 8                  'سمكه صغير نسبيًا
    columns(1).horizontalalignment = xlcenter   'محاذاة للمنتصف
    columns(1).font.color = vbred               'اللون الأحمر
    columns(1).font.bold = true                 'الخط الثقيل
    
    'عامود إسم السهم
    columns(2).columnwidth = 25                 'سمكه كبير
    columns(2).horizontalalignment = xlright    'محاذاة لليمين
    columns(2).font.color = vbblue              'اللون الأزرق
    columns(2).font.bold = true                 'الخط الثقيل
    
    'عامود مسار ملف الميتاستوك الخاص بالسهم
    columns(3).columnwidth = 80                'سمكه كبير جدًا
    columns(3).horizontalalignment = xlleft     'محاذاة لليسار
    
    'تلوين صف عناوين الأعمدة
    rows(1).interior.color = rgb(220, 220, 255)
    rows(1).font.bold = true                 'الخط الثقيل
    
    'تحديد أسماء الأعمدة ومحاذتها
    cells(1, 1) = "الكود"
    cells(1, 2) = "إسم السهم"
    cells(1, 2).horizontalalignment = xlcenter   'محاذاة للمنتصف
    cells(1, 3) = "مسار ملف الميتاستوك"
    cells(1, 3).horizontalalignment = xlcenter   'محاذاة للمنتصف
    cells(1, 4) = "الإغلاق"
    cells(1, 4).horizontalalignment = xlcenter
    cells(1, 5) = "التغير%"
    cells(1, 5).horizontalalignment = xlcenter
    'مسار المجلد الذي يحتوي على الإي ماستر بجهازك
    dim path as string
    path = "c:\users\vip pc\dfn\directfnpro10-saudi\saif09990\metastock\history\tdwl\"            'هنا مسار مجلد الميتاستوك
    
    'قراءة ملف الإي ماستر وتحويله إلى مصفوفة من البايتس
    dim bytes() as byte
    bytes = getfilebytes(path + "emaster")
    
    dim bytes_code(3) as byte       'عدد 4 بايت لتخزين كود السهم
    dim bytes_name(51) as byte      'عدد 52 بايت لتخزين إسم السهم
    'البايت الخاصة بالحرف الذي يمثل الفترة
    'i - d - w - m
    dim byteperiodletter as byte
    byteperiodletter = bytes(192 + 60)
    
    'البايت الخاصة بعدد دقائق الفترات أقل من اليومية
    dim byteperiodminutes as byte
    byteperiodminutes = bytes(192 + 62)
    
    'متغير لتخزين الفترة من النوع النصي
    dim period as string
    
    'نبحث عن الحرف
    select case byteperiodletter
        case 73 'ascii table -> i (intraday)
            period = "m" + cstr(byteperiodminutes)    'إضافة بايت الدقيقة
        case 68 'ascii table -> d (daily)
            period = "daily"
        case 87 'ascii table -> w (weekly)
            period = "weekly"
        case 77 'ascii table -> m (monthly)
            period = "monthly"
    end select
    
    'نعيد تسمية إسم السهم لوضع الفترة بجواره
    cells(1, 2) = "إسم السهم (" + period + ")"
    
    'نبحث عن قيمة خطوة البايتس المطلوبة لقراءة ملف أسعار الفترة
    dim step as integer
    select case byteperiodletter
        case 73         'ascii table -> i (intraday)
            step = 32
        case else       'لأي بيانات أخرى
            step = 28
    end select

    'تكرار الأوامر الآتية بعدد الأسهم كلها
    for i = 1 to ubound(bytes) / 192
        'هنا يتم استخراج بيانات السهم
        
        'أولًا كود السهم ويتكون من عدد 4 بايت بداية من البايت رقم 11
        for j = 0 to 3
            bytes_code(j) = bytes(i * 192 + 11 + j)
        next j
        cells(i + 1, 1) = strconv(bytes_code, vbunicode)
        
        'ثانيًا إسم السهم ويتكون من عدد 52 بايت بداية من البايت رقم 139
        for j = 0 to 51
            bytes_name(j) = bytes(i * 192 + 139 + j)
        next j
        cells(i + 1, 2) = strconv(bytes_name, vbunicode, &h401)
        
        'ثالثًا رقم ملف الميتاستوك الخاص بالسهم وهو بالبايت رقم 2
        cells(i + 1, 3) = path + "f" + cstr(bytes(i * 192 + 2)) + ".dat"
    next i
end sub

'دالة قراءة أي ملف وتحويله إلى مصفوفة من البايت حيث يتم إدخال بها مسار الملف
public function getfilebytes(byval path as string) as byte()

    'فرض الملف
    dim file as long
    file = freefile()
    
    'فرض مصفوفة البايتس التي سيتم قراءة الملف فيها
    dim bytes() as byte

    if lenb(dir(path)) then     'التحقق من وجود الملف لتجنب حدوث أخطاء
    
        'فتح الملف لقراءته
        open path for binary access read as file
        
        'تحديد طول مصفوفة البايتس وهو طول الملف سالب واحد
        'وذلك لأن الترقيم بأي مصفوفة يبدأ من صفر وليس واحد
        redim bytes(lof(file) - 1) as byte
        
        'قراءة الملف داخل المصفوفة
        get file, , bytes
        
        'إغلاق الملف بعد الانتهاء من قراءته
        close file
    end if
    
    'إرجاع القيمة المطلوبة كناتج للدالة، وهي مصفوفة البايتس
    getfilebytes = bytes
end function
هذا الكود كامل حتى حل التطبيق الثاني ، بس طلع عندي خلايا فاضية بالأعمدة اعلى وادنى سعر خلال سنة واعلى وادنى خلال 6 أشهر
السلام عليكم الله يحفظك لا شك انك محترف ولكن كم اللي يستفيد منك من اخوانك فلو عملت واحده اكسل مبرمجه جاهزه للتحديث يوميا بعد الاقفال لكان هذا انفع لاخوانك والذي عنده القدره يتابعك فليكن بارك الله فيك ووفقك



رد مع اقتباس
إضافة رد


الكلمات الدلالية (Tags)
لتحليل, لربط, إصنع, والتاريخية, اللحظية, الإكسل, البيانات, احترافية, excel, برنامجك, دورة

أدوات الموضوع

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

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

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



12:48 PM