PDA

View Full Version : مسئله اینست این حلقه اجرا نمیشه



saed2006
سه شنبه 03 اردیبهشت 1387, 10:58 صبح
به نظر شما چرا این حلقه if اجرا نمیشه در صورتی که هر دو شرط درسته (تو پنجره add wath هر دو عددcurrentx و w(0) جداگونه مساوی هستند w(0) = currentx ولی نتیجه این عبارت false
در صورتی که در هردو 18 ذخیره است


Function seek_high_fond(currentx, y_min, fond)
Dim max As AcadBlockReference
mm = y_min
f = False

Dim b2 As AcadEntity
For i = 0 To fond.Count - 1
w = fond.Item(i).InsertionPoint
If w(0) = currentx And w(1) >= mm Then
Set max = fond.Item(i)
mm = w(1)
f = True
End If
End If

Next i
If f = True Then
w = max.InsertionPoint
f = False
fff = False
Else: fff = True
End If
seek_high_fond = w
End Function

saed2006
چهارشنبه 04 اردیبهشت 1387, 18:09 عصر
خواهشا یکی جواب بده نیاز فوری دارم ممنون

اصلا چه اتفاقی میافته که دو متغییر مساوی نامساوی نشون داده بشن؟

ƒxmahdi
چهارشنبه 04 اردیبهشت 1387, 20:58 عصر
به احتمال زیاد مقدار یکی به صورت رشته ای است و مقدار اون یکی به صورت عددی که نتیجه مقایسه False می شه دستور if را به صورت زیر تغییر بده !

If Val(w(0)) = val(currentx) And w(1) >= mm Then

vbhamed
چهارشنبه 04 اردیبهشت 1387, 23:47 عصر
سلام
متغیرهای شما نوع ندارن پس از نوع variant تعریف میشن و این نوع متغیر اعشار هم قبول می کنه
متغیرهای اعشاری رو هم نمیشه اینطوری با یک مساوی ساده با هم مقایسه کرد چون حتی اگر دو مقدار اعشاری مساوی توشون قرار بدیم بازم ممکنه نتیجه شرط false بشه
شما متغیرهات رو از نوع Long یا Integer تعریف کن (متغیرهای پارامتر تابع هم یادت نره)

saed2006
پنج شنبه 05 اردیبهشت 1387, 09:12 صبح
ممنون حل شد