ورود

View Full Version : error در قراردادن مقدار در متغیر داینامیکی



mina_148m
دوشنبه 10 دی 1386, 00:43 صبح
سلام
من نمی تونم مقدارهای یه فیلد از جدولمو تو یک متغیر از نوع ارایه ای داینامیک بریزم
خطایی که به من میده می گه تو به یه ادرس رفتی البته تو اجرا این خطا رو می ده




var
m:array of string;
begin

adotable1.Active :=true;
adotable1.First ;
d:=datasource1.DataSet.RecordCount ;
setlength(m,d);
for b:=1 to d do
begin
m[b]:= adotable1.FieldByName('id').asstring;
adotable1.Next;
end;
end;

من خیلی خیلی شرمنده ام فکر می کردم کدو نوشتم
چون دیر وقت بود حواسم نبوده بازم بخشید
ولی با اینکه من دستور set length نوشتم باز به من اون خطای access violation میده
من خطارم می فرستم
ممنونم

mehrdad196
دوشنبه 10 دی 1386, 02:00 صبح
لطفاً کد خودتون را بزارید

vcldeveloper
دوشنبه 10 دی 1386, 02:20 صبح
خطایی که به من میده می گه تو به یه ادرس چیچی
این سبک جدید توضیح دادن درباره مشکل هست؟

حتما ما هم باید جواب بدیم، چک کنید قبل از مقدار دادن به متغیر چیچی، بهش با SetLength حافظه اختصاص داده باشید تا پیغام خطای Access Violation نگیرید.

mina_148m
سه شنبه 11 دی 1386, 10:46 صبح
سلام
ببخشید من هنوز مشکام حل نشده
از دوستان کسی نیست مثل همیشه منو راهنماییی کنه (خواهشا)
با تشکر

vcldeveloper
سه شنبه 11 دی 1386, 16:02 عصر
ببخشید من هنوز مشکام حل نشده
با SetLength اندازه آرایه را مشخص کردید؟

mina_148m
سه شنبه 11 دی 1386, 16:25 عصر
بله این کارو کردم
من همه کدمو دقیقا بالا قراردادم ولی هنوز موقع اجرا خطای accessviolation به من می ده




با تشکر

JAFO_IRAN
سه شنبه 11 دی 1386, 18:31 عصر
سلام

بردارهای پویا (مثل m شما) از صفر اندیس میشوند - پس وقتی با d عدد setlength شده باشند میشه از صفر تا d - 1 در آنها المان داشت - شما باید حلقه for را از صفر تا d - 1 تشکیل بدید...

ارادت