كيف استخرج بيانات من مصفوفة
#1
السلام عليكم اخواني

لدي مصفوفة
كود :
_data : array [0..7000000] of Integer;
الان كيف استخراج هذه البانات من الداتا
كود :
var i : integer; begin i := 0; for i := 0 to 7000000 do begin //...... end;
و لكنها بطاء جدا و قمت بادراج
Application.ProcessMessages;
داخل for .. loop و لم ينفع

المشكلة في for loop

هل تو جد طريقة لتقليل for loop
مثلا الـ for loop
يعد من 0 الى 700 بلا من 7000000 و يستخرج البانات كاملة دون القفز 10000 خطوة
و بارك الله بيكم
سبحان الله و بحمده سبحان الله العظيم
الرد
#2
ماذا تستعمل ؟
Delphi7 ?
XE ?
نلتقي لنرتقي
الرد
#3
انا استخدم دلفي 7
سبحان الله و بحمده سبحان الله العظيم
الرد
#4
وعليكم السلام

عندما تكون البيانات كثيرة استخدم قاعدة بيانات بدلا من مصفوفة
الرد
#5
إقتباس : عندما تكون البيانات كثيرة استخدم قاعدة بيانات بدلا من مصفوفة
1+

فقط جرب الكود الذي قمت بكتابته في الاعلى في برنامجك
وانظر هل يصبح جهازك ثقيل أم لا ( عن نفسي اضطررت إلى اعادة تشغيل جهازي مره آخرى -__- )
كذلك نقطة آخرى وهي انك ستقوم باستعمال قرابة 26 ميقا بايت في الذاكرة لتخزين هذه المصفوفة فقط !

اما من ناحية طريقة استخراج البيانات المصفوفه وهي تتم من خلال Loop
يتم فيه تحديد طوال المصفوفة وبعد ذلك يتم قراءة البيانات في المصفوفة عنصراً عنصراً .

مثال :
PHP كود :
var
  
_data: array [0..7000000] of Integer;
  
i: Cardinal;
  
CurrentItem: Integer;
begin
  
for i := 0 to 7000000 do
  
begin
    
// read item number (i) and give it to CurrentItem;
    
CurrentItem := _data[i];
    
//
    // do something with CurrentItem;
    //
  
end;
end; 
نلتقي لنرتقي
الرد


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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم