خزن البينات في القرص الصلب بدل الميموري
#1
السلام عليكم اخواني الاعزاء

قمت بانشاء مصفوفه داخل التطبيق و هي تعمل
ولكن فوجات بن المصفوفه يتم تخزينها في الميمري رام فمثلا هذا الكود

كود :
type  ArrayIndex = 0..99999999;  TByteArray = array[ArrayIndex] of Byte;  PByteArray = ^TByteArray; procedure TForm1.GetDataAll; var  BufData : PByteArray; begin  GetMem(BufData, 1000000000); end; بعد املا البيانات يتم تخزينها في الرام  فهل يوجد حل لوضعها في الهارد  او ضغطها  و بارك الله فيكم
الرد
#2
وعليكم السلام ورحمة الله
يمكن انشاء ملف بالقرص واستخدامه لكن ما المشكل ؟ هل تخشى من عدم توفر ذاكر حية كافية!
اوضح حتى يمكن توجيهك
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
الرد
#3
(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;
الصوره في المرفقات جزاك الله خير هل من حل


الملفات المرفقة
.png   1.png (الحجم : 51.28 ك ب / التحميلات : 10)
الرد
#4
الحل تغيير طريقة تفكيرك/برمجتك
ما الذي تود القيام به ؟ او حسابه ؟
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
الرد
#5
(22-02-2016, 02:24 PM)B.M.AbdelAziZ كتب : الحل تغيير طريقة تفكيرك/برمجتك
ما الذي تود القيام به ؟ او حسابه ؟

خزن بيانات wavedata

لملفات عملاقه من نوع WAV

حجمها اكثر من بحدود 1 GB

هناك تطبيقات دون الحاجه الى memory وتخزن بيانات اكثر من 1 GB مثل تطبيق
Wave Editor

لحظت ان التطبيق لا يخزن البيانات في memory

فما الحل جزاك الله الف خير
الرد
#6
عليك ان تقسم العمل على اجزاء/قطع بحجم صغير لا يستهلك ذاكرة كثيرة
تاخذ جزء وتعمل عليه ثم تنتقل الى الجزء الموالي.. الى ان تنتهي

بدلا من Wave يمكن ان تستخدم صيغة مضغوطة كMP3 او OGG

يمكن ان تستعين بمكتبات او مكونات جاهزة مثل FFMPEG وغيرها
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
الرد


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


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