ورود

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
موفق باشيد .

سلام
ممنونم کاملاً درسته ...منم به این نتیجه رسیده بودم ولی علتشو نمیدونستم
متشکرم