PDA

View Full Version : افزایش حافظه مورد استفاده memo



omidsm
چهارشنبه 01 مهر 1383, 13:02 عصر
سلام
دوستان می دونین که برای TMemo یا بهتره بگیم TSTRINGS در ویندوز 98 محدودیت وجود داره یعنی اگه اشتباه نکنم بیشتر از 64 کیلو رو نمی شه در یک TSTRINGS قرار داد البته من وقتی اندازه می گیرم کمتر از 64کیلو است ولی خوب کسی می دونه جه طوری این مشکلو میشه حل کرد

_alish_
چهارشنبه 01 مهر 1383, 14:47 عصر
فکر نکنم انطور باشد
چون محدوده یک رشته بینهایته (البته RAM) فکر نکنم یک TStrings هم محدودیت داشته باشه
( بر اساس کتاب Delphi Develop 6 انتشارات SAMS )
بعد هم فیلد Memo در Paradox تا 240 mb که برای متن قابل توجه است و فکرنکنم کسی بتونه از کلش استفاده کنه

omidsm
چهارشنبه 01 مهر 1383, 14:59 عصر
ممنون از جوابتون ولی آیا تا به حال امتحال کردین که اگر فایلتون بیشتر از یه حدی باشه notepad ویندوز 98 اون رو باز نم کنه؟؟؟؟؟؟؟؟؟؟؟؟ :?: :wink:

یه نگاهی به این برنامه بندازین شمارنده حلقه for تا 50000 میره ولی فقط در دستگاه من با ویندوز 98 تا نزدیکای 700 میره :shock: :!: :cry:

این توضیحیه که help دلفی 6 در TMEMO نوشته

Note: Under Win 9x, there is a limit of 64k of text for this control.

omidsm
یک شنبه 05 مهر 1383, 08:13 صبح
یعنی کسی تا حالا به همچین مشکلی بر نخورده :!:

MToloo
چهارشنبه 08 مهر 1383, 13:43 عصر
چرا من به این مشکل خوردم. تو کتاب 296 برنامه اجرا شده در دلفی یه برنامه داره که این میزان و زیاد میکنه. ولی اصلا به درد نمیخوره چون سرعت و میاره پایین. من تو برنامه ام از ListBox استفاده کردم. چون نیازی به ویرایش اون متن نداشتم. ولی شما ... .
میخوایی از همون روش کتابه استفاده کن.

omidsm
شنبه 11 مهر 1383, 07:09 صبح
من تو برنامه ام از ListBox استفاده کردم. چون نیازی به ویرایش اون متن نداشتم
اگه لیست باکس باشه مشکل حله؟
آیا لیست باکس بیشتر از این مقدار ها می تونه ذخیره کنه؟

MToloo
دوشنبه 13 مهر 1383, 09:43 صبح
آره من خودم آزمایش کردم. سرعت اضافه کردن بهش هم بیشتره. تازه اگه یه از ‌‌BeginUpdate و EndUpdate استفاده کنی سریعتر هم میشه :


procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
ListBox1.Items.BeginUpdate;
try
for i:= 1 to 100000 do
ListBox1.Items.Add(IntToStr(i));
finally
ListBox1.Items.EndUpdate;
end;
end;
البته این و برای Memo هم میشه نوشت ولی سرعتش به ListBox نمیرسه.

omidsm
دوشنبه 13 مهر 1383, 09:58 صبح
ممنون از MToloo عزیز مشکل حل شد :flower: :heart:

MToloo
دوشنبه 13 مهر 1383, 20:47 عصر
:flower: