View Full Version : آرایه ای از رشته ها
tik_tak
یک شنبه 21 مهر 1387, 12:21 عصر
سلام
من میخواستم بدوونم چه طوری تو دلفی میتونم آرایه ای از رشته ها string رو تعریف کنم
مثلاً آرایه از اسمها
و میخوام طول این آرایه متغیر باشه مثلا ممکنه یه جا برنامه م بخوام طول این آرایه 5 (5 تا اسم رو ذخیره کنه ) باشه یه جایی از برنامه م طولش 7 (7 تا اسم رو ذخیره کنه)باشه
پیشاپیش ممنونم
s.mostafa.rahmani
یک شنبه 21 مهر 1387, 13:23 عصر
s: array of string;
و با دستور زير ميتوان طول آرايه را تعيين كرد.
SetLength(s, 5);
tik_tak
یک شنبه 21 مهر 1387, 15:21 عصر
سلام
من اگه بخوام خروجی تابعی این نوع آرایه باشه باید اینجوری تابع رو تعریف کنم ؟
function a(s:string;j:integer):array of string;
ولی ارور میده
Expected an identifier but ARRAY found.
Mahmood_M
یک شنبه 21 مهر 1387, 20:59 عصر
خروجی تابعی این نوع آرایه باشه
این صفحه رو ببینید ، دقیقا این موضوع توضیح داده شده ، اگه نیاز به راهنمایی هست بگید تا بگم !
صفحه : http://delphi.about.com/od/delphitips2007/qt/array_parameter.htm
موفق باشید ...
tik_tak
یک شنبه 21 مهر 1387, 21:33 عصر
ممنونم حتماً میرم میخونمش
ولی یه اشکال دیگه :
من این آرایه رو اون بالای فرمم تو قسمت var اینجوری تعریف میکنم:
D:array of string;
درواقع میخوام همه تابعام یا پروسیجر ام بتونن ازش استفاده کنند یه جورایی متغیر سراسری بشه
بعد
میام اینجوری مثلا مقدارش میدم
J:=strtoint(edit1.text);
s:=edit2.text;
SetLength(D,j);
for i:=1 to j do
D[i]:=s;
ولی این ارور میاد؟ نمیدونم چرا ؟
access viloation at address 00403f16 in module'project1.exe'.read of address 00000022.
shervin farzin
یک شنبه 21 مهر 1387, 23:41 عصر
سلام
مشكل از اينجاست كه وقتي شما از Dynamic Array استفاده ميكنين و درون كد برنامه اندازه
براش مشخص ميكنين به طور اتوماتيك نوشتن درون آرايه از سلول شماره 0 شروع ميشه يعني
اگه كاربر درون Edit1 مقدار 5 رو وارد كنه خونه هاي آرايه شما شمارشون ميشه 0 ، 1 ، 2 ، 3 و 4
حالا به خط 4 كدتون نگاه كنين . حلقه For شروع به پر كردن آرايه از سلول شماره 1 ميكنه و آخرين
باري كه حلقه تكرار ميشه سعي داره مقدار S رو دورن سلولي به شماره 5 بريزه در حالي كه
ميدونيم هيچ سلولي با اين شماره وجود نداره . پس اون حلقه For رو به شكل زير بايد تغيير بدين
For i := 0 to j-1 do
موفق باشيد .
tik_tak
دوشنبه 22 مهر 1387, 17:55 عصر
سلام
مشكل از اينجاست كه وقتي شما از Dynamic Array استفاده ميكنين و درون كد برنامه اندازه
براش مشخص ميكنين به طور اتوماتيك نوشتن درون آرايه از سلول شماره 0 شروع ميشه يعني
اگه كاربر درون Edit1 مقدار 5 رو وارد كنه خونه هاي آرايه شما شمارشون ميشه 0 ، 1 ، 2 ، 3 و 4
حالا به خط 4 كدتون نگاه كنين . حلقه For شروع به پر كردن آرايه از سلول شماره 1 ميكنه و آخرين
باري كه حلقه تكرار ميشه سعي داره مقدار S رو دورن سلولي به شماره 5 بريزه در حالي كه
ميدونيم هيچ سلولي با اين شماره وجود نداره . پس اون حلقه For رو به شكل زير بايد تغيير بدين
کد:
For i := 0 to j-1 do
موفق باشيد .
سلام
ممنونم کاملاً درسته ...منم به این نتیجه رسیده بودم ولی علتشو نمیدونستم
متشکرم
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.