![]() |
|
خزن البينات في القرص الصلب بدل الميموري - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : خزن البينات في القرص الصلب بدل الميموري (/showthread.php?tid=7532) |
خزن البينات في القرص الصلب بدل الميموري - DevBlack - 18-02-2016 السلام عليكم اخواني الاعزاء قمت بانشاء مصفوفه داخل التطبيق و هي تعمل ولكن فوجات بن المصفوفه يتم تخزينها في الميمري رام فمثلا هذا الكود كود : type ArrayIndex = 0..99999999;
TByteArray = array[ArrayIndex] of Byte;
PByteArray = ^TByteArray;
procedure TForm1.GetDataAll;
var
BufData : PByteArray;
begin
GetMem(BufData, 1000000000);
end;
بعد املا البيانات يتم تخزينها في الرام
فهل يوجد حل لوضعها في الهارد
او ضغطها
و بارك الله فيكمRE: خزن البينات في القرص الصلب بدل الميموري - محمد عبد العزيز - 21-02-2016 وعليكم السلام ورحمة الله يمكن انشاء ملف بالقرص واستخدامه لكن ما المشكل ؟ هل تخشى من عدم توفر ذاكر حية كافية! اوضح حتى يمكن توجيهك RE: خزن البينات في القرص الصلب بدل الميموري - DevBlack - 22-02-2016 (21-02-2016, 02:00 PM)B.M.AbdelAziZ كتب : وعليكم السلام ورحمة الله جزاك الله الف خير لك و لوالديك انظر الى هذا الكود عندما اقوم بكتابته يقوم بحجز مساحه في الذاكره Memory و ان كان الحجم اكبر تظهر رساله Out of memory كود : procedure TForm1.btn1Click(Sender: TObject);
var
i: Integer;
databyte : PByteArray;
begin
GetMem(databyte, High(Integer) div 5);
for i := 0 to (High(Integer) div 5)-1 do
begin
databyte[i] := i;
Application.ProcessMessages;
end;
btn1.Caption := 'ok';
end;RE: خزن البينات في القرص الصلب بدل الميموري - محمد عبد العزيز - 22-02-2016 الحل تغيير طريقة تفكيرك/برمجتك ما الذي تود القيام به ؟ او حسابه ؟ RE: خزن البينات في القرص الصلب بدل الميموري - DevBlack - 22-02-2016 (22-02-2016, 02:24 PM)B.M.AbdelAziZ كتب : الحل تغيير طريقة تفكيرك/برمجتك خزن بيانات wavedata لملفات عملاقه من نوع WAV حجمها اكثر من بحدود 1 GB هناك تطبيقات دون الحاجه الى memory وتخزن بيانات اكثر من 1 GB مثل تطبيق Wave Editor لحظت ان التطبيق لا يخزن البيانات في memory فما الحل جزاك الله الف خير RE: خزن البينات في القرص الصلب بدل الميموري - محمد عبد العزيز - 23-02-2016 عليك ان تقسم العمل على اجزاء/قطع بحجم صغير لا يستهلك ذاكرة كثيرة تاخذ جزء وتعمل عليه ثم تنتقل الى الجزء الموالي.. الى ان تنتهي بدلا من Wave يمكن ان تستخدم صيغة مضغوطة كMP3 او OGG يمكن ان تستعين بمكتبات او مكونات جاهزة مثل FFMPEG وغيرها |