PDA

View Full Version : سوال: کاربرد in



mehdi_moosavi
پنج شنبه 04 دی 1393, 11:40 صبح
وقت بخیر,
دوستان محترم لطفا راهنمایی کنید میخوام کد زیر رو :

... if ax in [2,5,9] then

بصورت:

... if ax in [edit1.text] then

بنویسم و مثلا 2و5و7 یا 15و89 رو از طریق edit وارد کنم.
با تشکر

pezhvakco
پنج شنبه 04 دی 1393, 12:17 عصر
کار زیاد ساده ای نیست + روش های زیادی دارین
=>
یک آرایه تعریف کنید
با 1 حلقه رشته درون Edit رو پیمایش کنید و با رسیدن به کاراکتر جدا کننده اعداد (،) رشته کاکتری قبلی رو به عدد تبدیل نمایید و داخل یک آرایه ذخیره نمایید .
(بهتر است داده ورودی به Edit را کنترل نمایید تا کاربر فقط عدد و همون جدا کننده را بتونه وارد کند)
و در پایان داده خودتون رو با داده ها همون ارایه بررسی نمایید .

mehdi_moosavi
پنج شنبه 04 دی 1393, 14:50 عصر
ولی باید یه راه بهتری باشه شاید مثلا با استفاده از تعریف یک set

idehrayan
پنج شنبه 04 دی 1393, 21:26 عصر
سلام


if pos('ax',edit1.text) >0 then
;('موجود است')showmessage

Mask
جمعه 05 دی 1393, 00:45 صبح
وقت بخیر,
دوستان محترم لطفا راهنمایی کنید میخوام کد زیر رو :

... if ax in [2,5,9] then

بصورت:

... if ax in [edit1.text] then

بنویسم و مثلا 2و5و7 یا 15و89 رو از طریق edit وارد کنم.
با تشکر
اینجوری بنویس:
procedure TForm1.Button1Click(Sender: TObject);begin
if StrToInt(Edit1.Text) in [2..9] then
ShowMessage('');
end;

mehdi_moosavi
جمعه 05 دی 1393, 02:19 صبح
ax یک متغیره مثلا مقدار 5 درون اون ریخته شده
در edit باید نوشته بشه: 2 و 3 و 8 یعنی 3 تا عدد وارد شده که با کاما از هم جدا میشن
برنامه باید اینطور عمل کنه که اگر مقدار متغیر ax برابر هر یک از اعداد 2 یا 3 یا 8 بود اعلام کنه، یعنی مقدار 5 سه بار با سه عدد مقایسه میشه یکبار با2 یکبار با3 یکبار با 8
درعین حال ممکنه این سه عدد که از طریق edit وارد میشن و با کاما از هم جدا میشن بار بعد مثلا 2 تا یا 4 تا بشن
پس درواقع هیچکدام از دو روش بالا جواب نمیده
البته لازم به ذکره که بوسیله حلقه for و با استفاده از آرایه و چند خط کدنویسی بیشتر این کار قابل انجامه ولی میخواستم بدونم آیا بوسیله in هم شدنی هست؟
لطفا راهنمایی کنید
باتشکر

idehrayan
شنبه 06 دی 1393, 10:48 صبح
وقت بخیر
اگه کد رو اینجوری بنویسید دقیقا همون چیزی میشه که شما میخواهید
;ax:=5
if pos(ax,edit1.text) >0 then
;('موجود است')showmessage

pezhvakco
شنبه 06 دی 1393, 18:04 عصر
اگه داده درون Edit این نوشته ها باشد :
51، 52، 25، 35، 11، 96
و این کد را بنویسیم

ax:=5
if pos(ax,edit1.text) >0 then
;('موجود است')showmessage
شاید درست پاسخ درست ندهد .