الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

جلب بيانات من موقع تداول الاسهم السعودية

مغلق
بدأه أبو محمـد في 26 مايو 2005 · 14 رد · 3,396 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

هل استطيع - باستخدام دلفي 7 - جلب البيانات من موقع تداول الاسهم السعودية

http://www.tadawul.com.sa/wps/portal/!...s.7_0_A/7_0_4AI

وحفظها داخل قاعدة بيانات - بدون دخول قاعدة بيانات الموقع -

#2

السلام عليكم ورحمة الله وبركاته.

اخي ابو محمد يوجد طريقة سهله بشرط ان الموقع المذكور يعطي هذه الخدمه وهي عن طريق الحصول على ملف ال .XML للبيانات . ومن ثم يمكنك حفظها في قاعده البيانات لديك عن طريق ادوات مرفقه مع الدلفي

ولقد قمت باستعمال هذه الطريقة حيث ان برنامجي يقوم بالحصول على اسعار العملات الاجنبيه من موقع احد البنوك حيث ان الموقع يعطي هذه الخدمه .

يمكنك الاتصال بالموقع المراد والاستفسار عن كيفية الحصول على البيانات !

ارجو لك التوفيق . :)

لنكن الافضل , هكذا كنا.

#4

السلام عليكم ،،،

أخي ماهر صرصور : أتوقع أنني استطيع الحصول على ملف xml ولكن بمقابل مادي ، وأنا ارغب بالحصول عليها لأغراض شخصية لذلك أبحث عن أقصر الطرق .

أخي سبيشل دلفي : الموقع حكومي فطبييعي حقوقه محفوظة .

#5

السلام عليكم

وش عندك يا ابومحمد على الأسهم ؟؟؟ ... لايكون انك هامور ... من اللي قلبو السوق احمر قبل امس .. :lol:

طلبك موجود وهو جزء من برنامج اعمل علية حاليآ ... وجلب الداتا سهل وذالك بجلب سورس الصفحة

لكن الشغل في التعامل مع السترنق واستخلاص الداتا منة .. اسعار ... كميات ... التغيير ... الخ

عمومآ هذي فنكشن عملتها خصيصآ للتعامل مع موقع تداول ... وتنفعك في اشياء اخرى غير الأسعار الفورية

مثل التقرير اليومي ... الأسعار المفصلة للشركة ... وغيرة

function Download_Data(Url, sPos : string; len, No: integer): Boolean;
var
  i, x: integer;
  s1, s, ss: string;
label
  Jump;
begin
  x := No;
  try
    s1 := form1.IdHTTP1.Get(Url);
  except
    Result := false;
    exit;
  end;
  repeat
    try
      i := ansipos(sPos, s1);
      i := i + len;
      while S1 <> '<' do
      begin
        s := s + s1;
        inc(i);
      end;
      s := Trim(s);
      if Length(s) <= 0 then goto Jump;
            if not ((s[1]) in ['0'..'9', '-']) then goto Jump;
      if x = No then
      begin
        ss := s + ';';
        x := x - 1;
        goto Jump
      end;
      if x > 1 then
      begin
        ss := s + ';' + ss;
        x := x - 1;
        goto Jump
      end;
      if x = 1 then
      begin
          ss := s + ';' + ss;
          LString.Add(ss);
          ss := '';
          x := No;
      end;
      Jump:
      Delete(s1, i - len, length(sPos));
      s := '';
    except
    end;
  until
    AnsiPos(spos, s1) <= 0;
  LString.SaveToFile('Data.txt');
  Result := true;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
DataUrl : string;
begin
    LString := TStringList.Create;
  DataUrl := 'http://www.tadawul.com.sa/wps/portal/!ut/p/.cmd/cs/.ce/7_0_A/.s/7_0_4AI/_s.7_0_A/7_0_4AI';
  Download_Data_Now(DataUrl, 'height="18">', 12, 13);
  LString.Free;
end;

عندي احساس ان الكود سد نفسك ... :D

لكن يا ابو محمد انت استاذنا ولا عندي شك انك راح تعرف الفكرة صح ... لكن تحتاج تمخمخ عليها شوي .. :D

ولا تنسى ان تضيف LString : TStringList; الى المتغير العام ... او القلوبل ... مدري وش يسمونة ... اللي فوق .... :D

تحياااااااااااااتي

#6

السلام عليكم

اقتباس
وش عندك يا ابومحمد على الأسهم ؟؟؟ ... لايكون انك هامور ... من اللي قلبو السوق احمر قبل امس .. 

لا يكون تعلقت مثلي :(

اللـــه لا يخسر مسلم.

اللـــه يعطيك الف عافية على الكود ، فعلا هذه الفكرة التي أبحث عنها .

#7

السلام عليكم

لقد عمل الكود بشكل رائع واعطاني كل الاسعار .

سأدرسه جيدا هذه الليلة وسأزعجك ببعض الاسئلة عليه . لأنني أرغب باستيراد بعض البيانات التي لم يستوردها .

ولكن قبل ذلك لدي سؤالين عليه وهو :

هل قام باستيراد البيانات من الصفحة مباشرة من السوس كود للصفحة ( الذي نصل إليه عن طريق view ثم source ) ، هناك بيانات موجودة بال SOURCE وغير موجودة بالصفحة .

ماذا تقصد بالرقمين 12 و 13

شاكر جدا تعاونك

تم تعديل هذه المشاركة بواسطة أبو محمـد في 27 مايو 2005 في 17:03

#8

عذرا : تكرر الرد . :rolleyes:

تم تعديل هذه المشاركة بواسطة أبو محمـد في 27 مايو 2005 في 17:01

#9

بروح أعلمهم lol

#10

السلام عليكم

هذي والله الساعة المباركة يا ابومحمد ..... لكن تراي ماشي بالبركة ... انا هاوي لا درست ولا اعرف اشرح زي الناس .. لكن ابشر باللي اقدر علية

والأرقام هذي الأول 12 هذا اللينث length الخاص بالبزوشن (height="18"> )الي يتم اخذ السترنق بعدها ..... الى ان يصل الى ( > )

i := ansipos(sPos, s1);

i := i + len;

while S1 <> '<' do

اما الأنتيقر الثاني 13 هذا علشان كل شركة لها 13 معلومة ... والكود عندك يعرف اذا وصل 13 على طول يضيفها الى اليست سترنق وهكذا الى ان ينهي الشركات كلها

اقصد يداء يحسب من 13 وكل مرة ياخذ معلومة يضيفها الى المعلومة السابقة بعد ان يضيف اليها ( ; )وينقص واحد (-1) حتى اذا انتهى من اخذ معلومات الشركة كاملة

اضافها الى الليست سترنق .... وكل شركة لها سترنق في خاص بها في الليست .. فية كل المعلومات : مثل

786.00;810.00;792.25;463;805.50;170;805.25;72,427;150;1.29;10.25;30;805.25;

وانت تقدر توزعها بالطريقة اللي تناسبك .. ولما عملت ال 12 و 13 متغير لأني استخدم الفنكشن لأكثر من صفحة وكل صفحة تحتاج لينث وعدد خاص بها

وبانسبة للسؤال الأول .... نعم من نفس سورس الصفحة ... s1 := form1.IdHTTP1.Get(Url);

اعرض الــ S1 في ميمو وشوف

وانا جاهز لأي استفسار ... وثق اني ماراح اتأخر عليك باللي اقدر علية .

سبيشل دلفي >>>> هههههههه اجل تبي تعلم علينا .... رح علم ... انا مالي دخل ... هذا ابو محمد اللي يبي يلطشهم ... انا فقط اساعد برمجيآ ... :)

#11

أخي ماهر وبقية الأخرة

أنا أريد تطوير برنامج بلغة سي شارب لاستحضار أسعار العملات وأبحث عن موقع يوفر هذه الخدمة ، أعني الاتصال به لاستحضار أسعار العملات ويكون موقعاً موثوقاً به ويتم تحديثه يومياً

مع الشكر الجزيل

#12

شكر لك أخي

تم تعديل هذه المشاركة بواسطة mshooot في 12 يوليو 2005 في 15:07

#13

السلام عليكم

ابو محمد يا ليت نسخة من البرنامج .:)

460.gif

#14

السلام عليكم

كيف حالكم يا اخوان

معليش احنا جيرانكم في الفيجوال بيسك >>> لا احد يحقد بس عندنا وعندكم الخير ههههههههه

ابو محمد ممكن نعرف كيف نحصل على الاسعار بالفيجوال بيسك اذا احد عنده فكرة ؟

مشكورين :)

#15

برنامج استيراد البيانات من موقع تداول.... برمجة ابو محمد

كيف نحصل عليه؟؟؟

بارك الله فيكم..

هذا الموضوع مغلق.

مواضيع مشابهة