PDA

View Full Version : trace کردن یک تکه کد



نسرین2000
سه شنبه 15 بهمن 1392, 08:11 صبح
سلام
من با کد زیر می خوام مقدار های دو تا تکس باکس رو در هم ضرب کنم ولی مقداری برام نشون نمی ده و صفر می ذاره . اگه بخوام کدم رو قدم به قدم trace کنم که ببینم کجای کار ایراد داره و مقدار نمی گیره باید چیکار کنم ؟

Private Sub txtmodat_eghamat_TextChanged(sender As Object, e As EventArgs) Handles txtmodat_eghamat.TextChanged
txtpardakht.Text = Val(txtmodat_eghamat.Text) * Val(txtpay_night.Text)
End Sub

damanpak
سه شنبه 15 بهمن 1392, 11:54 صبح
سلام
توی کد شما اشکالی وجود نداره و باید درست جواب بده
گرچه من برای اطمینان این کد شما رو در سیستمم تست کردم و جواب داد و مشکلی نداشت
پروژه ات رو بزار ببینم مشکل کجاست

نسرین2000
چهارشنبه 16 بهمن 1392, 07:13 صبح
ولی متاسفانه درست جواب نمی ده

Mani_rf
چهارشنبه 16 بهمن 1392, 08:25 صبح
به این شکل بنویس و قدم به قدم تریس کن ببین مشکل کجاست :

Private Sub txtmodat_eghamat_TextChanged(sender As Object, e As EventArgs) Handles txtmodat_eghamat.TextChanged
Dim a As Integer = Val(txtmodat_eghamat.Text)
Dim b As Integer = Val(txtpay_night.Text)
txtpardakht.Text = a * b
End Sub

نسرین2000
چهارشنبه 16 بهمن 1392, 09:27 صبح
دوستان واقعا گیج شدم مقادیر a و b به جای اینکه مقدارهای تکس باکس را بگیرند هر دو صفر می گیرند.
به نظرتون کجا دارم اشتباه می کنم ؟

Mani_rf
چهارشنبه 16 بهمن 1392, 09:41 صبح
مطمعنا مقداری که داری توی تکس باکس وارد میکنی عددی نیست، احتمالا استاندارد کی بردت عوض شده. برای این که مطمعن بشی یک عدد توی یکی از تکست باکس ها بزن و بعد با تابع ASC مقدار کد اسکی رو بگیر ببین بهت چی بر میگردونه.
طبق جدول اسکی (http://www.ascii-code.com/) باید به این شکل باشه

48 060 30 00110000 0 0 Zero
49 061 31 00110001 1 1 One
50 062 32 00110010 2 2 Two
51 063 33 00110011 3 3 Three
52 064 34 00110100 4 4 Four
53 065 35 00110101 5 5 Five
54 066 36 00110110 6 6 Six
55 067 37 00110111 7 7 Seven
56 070 38 00111000 8 8 Eight
57 071 39 00111001 9 9 Nine

یعنی به ازای
0 - 48
1 - 49
2 - 50
و تا آخر

محمد آشتیانی
چهارشنبه 16 بهمن 1392, 09:58 صبح
سلام

بجای اینکه کد رو تو TextChanged بنویسی ، یه Button اضافه کن و تو Clickاون بنویس ، ببین بازم همینه؟
احساس میکنم مشکل یه همچین چیزی باشه

نسرین2000
چهارشنبه 16 بهمن 1392, 11:16 صبح
مطمعنا مقداری که داری توی تکس باکس وارد میکنی عددی نیست، احتمالا استاندارد کی بردت عوض شده. برای این که مطمعن بشی یک عدد توی یکی از تکست باکس ها بزن و بعد با تابع ASC مقدار کد اسکی رو بگیر ببین بهت چی بر میگردونه.
طبق جدول اسکی (http://www.ascii-code.com/) باید به این شکل باشه

48 060 30 00110000 0 0 Zero
49 061 31 00110001 1 1 One
50 062 32 00110010 2 2 Two
51 063 33 00110011 3 3 Three
52 064 34 00110100 4 4 Four
53 065 35 00110101 5 5 Five
54 066 36 00110110 6 6 Six
55 067 37 00110111 7 7 Seven
56 070 38 00111000 8 8 Eight
57 071 39 00111001 9 9 Nine

یعنی به ازای
0 - 48
1 - 49
2 - 50
و تا آخر
من هر عددی می نویسم 63 رو برمی گردونه در مورد کاراکترها کد اسکی رو درست برمی گردونه مثلا A میشه 65 ولی در مورد اعداد 63 رو برمی گردونه
کد زیر رو در یک باتن نوشتم :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
MessageBox.Show(Asc(txtmodat_eghamat.Text))
End Sub
چرا؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟:متفکر:

نسرین2000
چهارشنبه 16 بهمن 1392, 11:18 صبح
سلام

بجای اینکه کد رو تو TextChanged بنویسی ، یه Button اضافه کن و تو Clickاون بنویس ، ببین بازم همینه؟
احساس میکنم مشکل یه همچین چیزی باشه
آقای western این راه رو قبلا امتحان کردم چون خودم هم همچین چیزی فکر می کردم ولی باز هم به جواب نمی رسم.

Mani_rf
چهارشنبه 16 بهمن 1392, 11:25 صبح
احتمالا مشکل از همون استاندارد کیبرد باشه، از یک سایت یک عدد کپی کن و توی تکست باکس پیست کن اگر دیدی بازم کد اسکی صحیح نداد برنامه رو اینجا بزار تا ببینیمش

نسرین2000
چهارشنبه 16 بهمن 1392, 12:06 عصر
احتمالا مشکل از همون استاندارد کی برد باشه، از یک سایت یک عدد کپی کن و توی تکست باکس پیست کن اگر دیدی بازم کد اسکی صحیح نداد برنامه رو اینجا بزار تا ببینیمش
عدد 48 رو کپی کردم ولی باز هم کد اسکی 63 رو برگردوند

mehdi_79
چهارشنبه 16 بهمن 1392, 17:25 عصر
من هم چنین مشکلی داشتم چون عدد ها با فونت فارسی است مقدار عددی صفر می شود با تابع زیر تبدیل به انگلیسی کن

Function LatinNumber(ByVal Textstr As String)
For i As Integer = 0 To 9
Textstr = Textstr.Replace(ChrW(i + 1776), ChrW(i + 48))
Next
Return Textstr
End Function

نسرین2000
شنبه 19 بهمن 1392, 09:03 صبح
بی نهایت ممنون مشکل حل شد
حالا من می خوام اعدادم فارسی باشند راهی نیست که هم اعداد فارسی باشند و هم اعمال ریاضی درست اعمال بشن ؟