PDA

View Full Version : مشکل در تعریف مجموعه ها



پنج شنبه 31 اردیبهشت 1383, 12:33 عصر
سلام
من یه مجموعه به این صورت تعریف کردم:

type word=set of (ali,hasan,reza)
بعد یه متغیر از word تعریف کردم به اسم myset حالا چرا برنامه به این خط error میده:

if edit1.text in myset then do something...
پیغام خطا:

incompatible types ,tcaption and enumeration
چطوری این مشکل رو حل کنم :?: :?:

مهدی کرامتی
پنج شنبه 31 اردیبهشت 1383, 13:07 عصر
استفاده از Set بدین شکل مقدور نیست، زیرا عناصر یک مجموعه صرفا شامل Constant ها میباشد، در حالیکه شما سعی کرده‌اید یک متغیر را با یک سری Constant مقایسه کنید.
در کد فوق مقایسه بدین شکل میتواند صحیح باشد:

بخش تعریف:

type mword=set of (ali,hasan,reza);
var
myset:mword;

بخش کد:

myset:=[ali];
if ali in myset then showmessage('ok');

اگر اشتباه بیان کرده‌ام دوستان اصلاح نمایند.

پنج شنبه 31 اردیبهشت 1383, 16:14 عصر
سلام اقا مهدی
این روش شما جواب میده فقط یه مشکل داره اونم اینکه من میخام وجود علی رو تو کل مجموعه تست کنم
از این روش میخام برای جدا کردن کلمات موجود در فایل متنی استفاده کنم ضمنن لطفا یه سر به تاپید http://www.barnamenevis.org/forum/viewtopic.php?t=9947 هم بزنید

Sepidar
پنج شنبه 31 اردیبهشت 1383, 17:29 عصر
یه تابع تو آبجکت پاسکال هست که رشته رو تبدیل به انومریتد و انومریتد رو تبدیل به رشته می کنه (الان اسمش یادم نیست) اما دلفی توصیه میکنه از این توابع استفاده نکنید (و به همین خاطر هم فکر نکنم تو هلپ دلفی موجود باشه) اما تو vcl ازش استفاده شده.

به هر حال برای منظور شما به نظر میرسه تعریف یک کلاس StringSet یا حتی استفاده از TStrings به عنوان یک مجموعه، کار منطقی تری باشه.

Panje Tala
شنبه 02 خرداد 1383, 08:47 صبح
با سلام
امیدوارم سوال رو بد متوجه نشده باشم. اگر می خواهی یک عبارت رو تو یک متن پیدا کنی از تابع Pos می تونی استفاده کنی:

Pos('ali',edit1.text)

اگر عبارت ali در edit1.text وجودداشته باشد موقعیت آنرا بر میگرداند درغیر اینصورت تابع مقدار صفر را بر میگرداند.

شنبه 02 خرداد 1383, 08:57 صبح
عزیز کاملا بد متوجه شدی :roll:
وجود یه مجموعه از کلمات توی یه عبارت باید تست بشه