PDA

View Full Version : سوال: مشکل در کم کردن مبالغ



mohsen gh
پنج شنبه 02 دی 1389, 11:29 صبح
سلام دوستان من یه برنامه حسابداری دارم مینویسم که با این کد (کد زیر)بین مبلغ کاما (،) میندازم
If TextBox1.TextLength > 0 Then
TextBox1.Text = FormatNumber(TextBox1.Text, 0)
TextBox1.SelectionStart = TextBox1.TextLength
End If

وقتی میخوام یه مبلغی رو از مبلغ کل کم کنم جواب نمیده چون کاما بین ارقام هستش

1،000،000
-
5،00،000
--------------
؟؟؟؟؟؟؟؟

pedram_ns
پنج شنبه 02 دی 1389, 15:27 عصر
با دستور replace کاما رو از بین ببرید و بعد عملیات رو انجام بدید:


Dim number As String = TextBox1.Text.Replace("،", "")

mohsen gh
پنج شنبه 02 دی 1389, 19:23 عصر
دوست عزیز این کد کاما هارو ور نداشت

pedram_ns
پنج شنبه 02 دی 1389, 21:50 عصر
کد شما این کاراکتر (,) رو بین اعداد ایجاد می کنه ولی شما در مثالتون این کاراکتر(،) رو داده بودید کافیه کد رو به این صورت تغییر بدید:


Dim number As String = TextBox1.Text.Replace(",", "")

دستور replace کاراکتر اول رو در رشته با کاراکتر دوم که در این کد مقدار خالی هست جایگزین می کنه.

mohsen gh
پنج شنبه 02 دی 1389, 22:00 عصر
دوست عزیز اینم مثل اون کار نمیکنه

کد بالا ، رو تولید میکنه

aminhackerman
پنج شنبه 02 دی 1389, 22:16 عصر
اینو تست کنین :
Dim x, y As String
x = "1،000،000"
y = x.Replace("،", Nothing)
MessageBox.Show(y - 500000)

pedram_ns
جمعه 03 دی 1389, 09:58 صبح
من کد خودتون رو استفاده کردم به این صورت:


Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If TextBox1.TextLength > 0 Then
TextBox1.Text = FormatNumber(TextBox1.Text, 0)
TextBox1.SelectionStart = TextBox1.TextLength
End If
End Sub


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim number As String = TextBox1.Text.Replace(",", "")
Label1.Text = number
End Sub

و این کاراکتر(,) رو ایجاد می کنه و با تبدیل اون کاراکتر به مقدار null در لیبل عدد بدون کاراکتر اضافه نمایش داده می شه و کاملا درست کار می کنه.
کد دوستمون هم همین طور:


Dim number As String = TextBox1.Text.Replace(",", Nothing)

به هر حال در هر رشته هر کاراکتری رو با دستور replace می شه به کاراکتر دیگه تبدیل کرد شما ببینید چه کاراکتری ایجاد می شه همون رو با مقدار nothing جایگزین کنید:

تبدیل حرف a به b :


TextBox1.Text.Replace("a", "b")

aminhackerman
جمعه 03 دی 1389, 10:46 صبح
من کد خودتون رو استفاده کردم به این صورت:


Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If TextBox1.TextLength > 0 Then
TextBox1.Text = FormatNumber(TextBox1.Text, 0)
TextBox1.SelectionStart = TextBox1.TextLength
End If
End Sub


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim number As String = TextBox1.Text.Replace(",", "")
Label1.Text = number
End Sub

و این کاراکتر(,) رو ایجاد می کنه و با تبدیل اون کاراکتر به مقدار null در لیبل عدد بدون کاراکتر اضافه نمایش داده می شه و کاملا درست کار می کنه.
کد دوستمون هم همین طور:


Dim number As String = TextBox1.Text.Replace(",", Nothing)

به هر حال در هر رشته هر کاراکتری رو با دستور replace می شه به کاراکتر دیگه تبدیل کرد شما ببینید چه کاراکتری ایجاد می شه همون رو با مقدار nothing جایگزین کنید:

تبدیل حرف a به b :


TextBox1.Text.Replace("a", "b")

در تکمیل صحبت های دوستمون اگه شما دارید واقعا یک برنامه حسابداری می نویسید که میخواهید با کمترین اشکال ممکن روبرو باشد
بهتر است تمام جمع و تفریق ها را درون برنامه بدون کاما انجام دهید و تنها هنگامی که نیاز است در خروجی نمایش داده شود عدد مورد نظر را به یک تابع یا ساب واحد بفرستید که قدرت تشخیص تعداد عدد و گذاشتن کاما بین حروف رو داشته باشد.(اینو از رو تجربه گفتم خود دانید)

mohsen gh
جمعه 03 دی 1389, 11:25 صبح
سلام دوست عزیز
باور کنید همه رو امتحان کردم ولی باز هم نشد اگه نمونه ای دارید ممنون میشم که بزارید

aminhackerman
جمعه 03 دی 1389, 11:56 صبح
دوست عزیز یک همچین سوالی جایه این همه بحث نداره
تعجب می کنم میگین همه رو امتحان کردین الان یکی از همین کدا رو تو محیط وارد کردم شما اینو دریافت کنین ببینین کاماها رو بر می داره ولی چیزی که من میدونم اینه که یک تست کوچیک هم نزدید
کاربر دستور Replace
64028
الان این برنامه رو Run کنین ببینین دستور Replace کاما ها رو بر میداره یا نه :متفکر: