View Full Version : معادل کد های VB6 به C#
butterfly8528
سه شنبه 06 اردیبهشت 1390, 11:22 صبح
سلام دوستان عزیز.
بعد یه مدت طولانی فرصتی شد که به سایت سربزنم و در خدمت اساتید باشم .
خیلی از دوستان بارها قصد مهاجرت از VB6 به .NET رو داشتن اما متاسفانه بنا به دلایلی مانند ترس از یادگیری سینتکس و کار با IDE و ابزار های جدید .Net از این امر مهم صرف نظر کردند.
بنده قصد دارم در این تاپیک معادل کدهای VB6 رو به C# قرار بدم تا تا انشاالله کمکی باشه واسه دوستانی که قصد مهاجرت به ابن زبان ساده ( اما دست و پاگیر ) رو دارند .
انشاالله به کمک دوستان مرجعی کامل رو شاهد باشیم :قلب:.
butterfly8528
سه شنبه 06 اردیبهشت 1390, 11:50 صبح
برای شروع،کار رو با نام خدا و تعریف متغیبر ها و مقدار دهی پیشفرض آنها آغاز می کنم .
تعریف متغیر ها در VB6:
تعریف و مقدار دهی پیشفرض یک متغییر عددی (Integer) :
Dim i As Integer
تعریف و مقدار دهی پیشفرض یک متغییر رشته ای (String) :
Dim a As String
* متغییر ها در VB6 پس از تعریف به صورت اتوماتیک مقدار دهی پیشفرض می شوند،به این صورت که متغییر های عددی با عدد 0 و متغییر های رشته ای با یک رشته با ارزش 0 (vbNullString) مقدار دهی می شوند.
تعریف متغیر ها در C#:
تعریف و مقدار دهی پیشفرض یک متغییر عددی (Integer) :
int i = 0;
تعریف و مقدار دهی پیشفرض یک متغییر رشته ای (String) :
string a = "barnamenevis.org";
ali.rezaei7
سه شنبه 06 اردیبهشت 1390, 12:02 عصر
سلام منم موافقم امیدوارم برای دوستان کاربردی باشه ولی بهتر بود در ابتدا یک فهرستی رو برای آموزش درنظر می گرفتید.
_behnam_
سه شنبه 06 اردیبهشت 1390, 12:22 عصر
بنده هم موافق هستم و مایلم هر کمکی که از دستم میاد انجام بدم
butterfly8528
سه شنبه 06 اردیبهشت 1390, 13:18 عصر
سلام.
ابتدا از علی و بهنام عزیز تشکر می کنم .
سلام منم موافقم امیدوارم برای دوستان کاربردی باشه ولی بهتر بود در ابتدا یک فهرستی رو برای آموزش درنظر می گرفتید.
علی جان فکر خوبیه ، اما به دلیل اینکه پرسش و پاسخ هایی بین کاربران پیش خواهد آمد این کار فکر نمی کنم امکان پذیر باشه .
_behnam_
سه شنبه 06 اردیبهشت 1390, 16:24 عصر
با اجازه دوستان ;
* چند توابعی که زیاد بکار میان
OupPut برای خروجی گرفتن از اطلاعات
in VB
msgbox "Ok"
in C#
MessageBox.Show("Ok");
Input برای ورود اطلاعات به برنامه
in Vb
dim Y as string
y = inputbox("")
in C#
string Y;
Y = Interaction.InputBox("Msg", "", "", -1, -1);
Trimاین تابع برای حذف Space های اضافه در انتها و ابتدای رشته بکار میره
in VB
Dim X as string
X = " Salam "
msgbox Trim(x)
in C#
string X;
X = " Salam ".Trim();
MessageBox.Show(X);
Lcase & Ucaseاین توابع برای یکنواخت کردن رشته ها از نظر بزرگی و کوچکی حروف بکار میروند
Ucase in VB
msgbox Ucase("SaLaM")
Lcase in VB
msgbox Lcase("SaLaM")
Ucase in C#
MessageBox.Show("saLam".ToUpper());
Lcase in C#
MessageBox.Show("saLam".ToLower());
InStr این تابع برای بدست آوردن محل یک یا چند کاراکتر در رشته بکار میرود
in VB
msgbox instr(1,"ovv_l@yahoo.com","@")
in C#
MessageBox.Show(System.Convert.ToString("ovv_l@yahoo.com".IndexOf("@") + 1));
Mid این تابع برای بدست آوردن یک یا چند کاراکتر مشخص از نظر جایگاه در رشته بکار میرود
in VB
msgbox Mid("salam",2,3)
in C#
MessageBox.Show("salam".Substring(1, 3));
Replace این تابع برای جایگزین کردن یک یا چند کاراکتر در رشته بکار میرود
in VB
msgbox Replace("barnamenevis.NET",".NET",".Org")
in C#
MessageBox.Show("barnamenevis.NET".Replace(".NET", ".Org"));
Len این تابع برای شمارش کاراکترهای رشته بکار میرود
in VB
msgbox len("Salam")
in C#
MessageBox.Show(System.Convert.ToString("salam".Length));
_behnam_
سه شنبه 06 اردیبهشت 1390, 16:43 عصر
تغییر خصوصیات تکست باکس , لیست باکس و کامند
* دوستان توجه کنید! من از هر کدوم یک مثال میزارم که فقط با روال کار آشنا بشید و کار دستتون بیاد تقریبا واسه خصوصیات دیگه هم همینجور باید عمل کرد
اضافه کردن یک آیتم به لیست باکس
in VB
list1.AddItem "Test String"
in C#
listBox1.Items.Add("Test String");
قرار دادن رشته در تکست باکس
In VB
Text1.text = "Text String"
In C#
textBox1.Text = "Test String";
تغییر کپشن کامند
In VB
Command1.Caption = "Test String"
in C#
Button1.Text = "Test String";
butterfly8528
سه شنبه 06 اردیبهشت 1390, 17:07 عصر
تعریف ثابت ها در VB6:
تعریف یک ثابت با نوع مشخص :
Private Const p As Double = 3.14
Private Const MySite As String = "www.arshamsoft.com"
تعریف یک ثابت با نوع نامشخص :
Private Const a = 123
Private Const MySite = "www.arshamsoft.com"
تعریف ثابت ها در C#:
تعریف یک ثابت با نوع مشخص :
private const double p = 3.14;
private const string MySite = "www.arshamsoft.com";
تعریف یک ثابت با نوع نامشخص :
#define a 123
#define MySite "www.arshamsoft.com"
butterfly8528
سه شنبه 06 اردیبهشت 1390, 17:21 عصر
سلام .
بهنام جان بابت همکاریت ممنون،اما لطفا شما و دیگر دوستان هم به چند نکته زیر برای هرچه بهتر شدن تاپیک دقت کنید :
1- کد های vb6 و C# رو به صورت جداگانه و داخل تگ های کد مخصوص به خودشون قرار بدید.
2- سعی کنید کدهایی که در یک پست قرار میدید ترجیها هم موضوع باشن که بعدا واسه جستجو و دسته بندی و تهیه فهرست کار راحت تر باشه.
3- یک توضیح مختصر هم راجع به کد ها بنویسید.
بهنام جان بی زحمت پست هات رو ویرایش کن و نکات بالا رو رعایت کن.
با تشکر .
butterfly8528
چهارشنبه 07 اردیبهشت 1390, 15:53 عصر
دستورات شرطی IF:
vb6:
If Number >= 10 Then
MsgBox "Pass"
Else
MsgBox "Failed"
End If
C#:
if (Number >= 10 )
MessageBox.Show( "Pass");
else
MessageBox.Show("Failed");
VB6:
If Avrg = 20 Then
MsgBox "Great"
ElseIf Avrg >= 18 Then
MsgBox "Good"
ElseIf Avrg >= 14 Then
MsgBox "Not Bad"
ElseIf Avrg >= 10 Then
MsgBox "Pass"
Else
MsgBox "Failed"
End If
C#:
if (Avrg == 20 )
MessageBox.Show("Great");
else if(Avrg >=18)
MessageBox.Show("Good");
else if (Avrg >= 14)
MessageBox.Show("Not Bad");
else if (Avrg >= 10)
MessageBox.Show("Pass");
else
MessageBox.Show("Failed");
Restlesa
شنبه 10 اردیبهشت 1390, 07:10 صبح
با تشکر از همه ی دوستان
به نظر شما بهتر نیست ابتدا فرم کلی دستو ر رو بگین و بعد در موردش مثلا های متفاوتی بزنید ؟؟؟
فکر کنم این طوری بهتر و برای دیگر دوستان قابل فهم تر باشه
مثلا :
ساختار تعریف متغیر در C# :
DataType NameData [=Value];
DataType : نوع داده ای متغیر
NameData : اسم متغیر
[Valeu=] : اختصاص دادن یک مقدار اولیه که اختیاری می باشد
مثال
int a=0;
نظرتون چیه ؟؟؟:لبخندساده:لبخندساده:لب ندساده:
ali.rezaei7
دوشنبه 12 اردیبهشت 1390, 00:52 صبح
Select Case=Switch
ساختار:
switch (عبارت)
{
case مقدار1:
//دستوارت
break;//خروج از بلاک
case مقدار2:
//دستورات
break;//خروج از بلاک
default://case else
//دستورات
break;//خروج از بلاک
}
اجرای یک قطعه کد برای چند case:
int i = 5;
switch (i)
{
case 1:
//اگر یک باشد
MessageBox.Show("1");
break;//خروج از بلاک
case 2:
//اگر دو باشد
MessageBox.Show("1");
break;//خروج از بلاک
case 3:
case 4:
case 5:
//اگر از سه تا پنج باشد
MessageBox.Show("مقدار بین 3 تا 5 می باشد");
break;//خروج از بلاک
}
پرش به case با goto case
int i=4;
switch (i)
{
case 1:
//اگر یک باشد
MessageBox.Show((4/2).ToString());
break;//خروج از بلاک
case 2:
//اگر دو باشد
MessageBox.Show("2");
break;//خروج از بلاک
case 3:
case 4:
case 5:
//اگر از سه تا پنج باشد
goto case 1;
break;//خروج از بلاک
}
butterfly8528
شنبه 17 اردیبهشت 1390, 12:01 عصر
سلام .
ابتدا به خاطر تاخیری که داشتم عذر خواهی می کنم.
با تشکر از همه ی دوستان
به نظر شما بهتر نیست ابتدا فرم کلی دستو ر رو بگین و بعد در موردش مثلا های متفاوتی بزنید ؟؟؟
فکر کنم این طوری بهتر و برای دیگر دوستان قابل فهم تر باشه
Restlesa عزيز اول نظر خود من هم همين بود،اما اين کار يخورده زمان بر هست و ممکنه بعضي از دوستان وقت ويا حوصله کافي واسه اين کار نداشته باشند ، واسه همين بيان فرم کلي دستورات بهتره از قوانين تاپيک نباشه.
به هر حال شما و ديگر دوستان ميتونيد به اين روش تاپيک رو ادامه بديد.
ali.rezaei7 عزیز شما هم لطف کن کدهای معادل رو به هر دو زبان قرار بده .
با تشکر :لبخندساده:
akbarg64
پنج شنبه 22 اردیبهشت 1390, 10:16 صبح
سلام.با تشکر از مطالب مفیدتون.من معادل app.path رو در ویژال بیسیک واسه سی شارپ میخواستم.ممنون میشم کمک کنید.
ali.rezaei7
پنج شنبه 22 اردیبهشت 1390, 11:04 صبح
سلام.با تشکر از مطالب مفیدتون.من معادل app.path رو در ویژال بیسیک واسه سی شارپ میخواستم.ممنون میشم کمک کنید.
سلام. برای بدست آوردن مسیر قرارگیری فایل برنامه از Application.StartupPath استفاده کنید.
برای بدست آوردن مسیر همرا با نام فایل برنامه از Application.ExecutablePath استفاده کنید.
البته نیازی نیست که برای دسترسی به منابعی که در کنار فایل برنامه قرار دارند، از StartupPath استفاده کنید. به عنوان مثال اگر می خواهید به پایگاه داده ای متصل بشید که در کنار فایل برنامه تون قرار داره، فقط کافیه که نام فایل رو بنویسید.
موفق باشید.
ali reza mansoori 2
جمعه 23 اردیبهشت 1390, 12:14 عصر
سلام
به همه دوستان خسته نباشد میگم
به نظر من بهترین کار برای رفتن به سمت #C همینه که شما دارید انجام میدید اگر این قسمت به کمک دوستان پیشرفت کنه خیلی مفید واقع میشه.
راستی کد های که می نویسید رو میشه داخل C#2010 استفاده کرد؟
ali.rezaei7
جمعه 23 اردیبهشت 1390, 15:57 عصر
سلام
به همه دوستان خسته نباشد میگم
به نظر من بهترین کار برای رفتن به سمت #C همینه که شما دارید انجام میدید اگر این قسمت به کمک دوستان پیشرفت کنه خیلی مفید واقع میشه.
راستی کد های که می نویسید رو میشه داخل C#2010 استفاده کرد؟
ممنون از حمایتی که میکنید.
بله این کدها در تمامی نسخه های #C قابل استفاده می باشد.
ali.rezaei7
جمعه 23 اردیبهشت 1390, 16:20 عصر
تابع IIf در سی شارپ:
VB
Dim num As Integer
Dim msg As String
num=Val(Text1)
msg=IIf(num<100,"کوچکتر از صد","بزرگ از صد")
msgbox msg
C#
int num;
string msg;
num=int.parse(textBox1.text);
msg=(num<100) ? "بزرگتر از صد" : "کوچکتر از صد"
MessageBox.Show(msg);
در سی شارپ بعد از کارکتر "؟" مقدار درستی می گیرد(True Part) و بعد از کارکتر ":" مقدار نادرستی می گیرد(False Part)
butterfly8528
یک شنبه 25 اردیبهشت 1390, 19:35 عصر
سلام .
string Y;
Y = Interaction.InputBox("Msg", "", "", -1, -1);
بهنام جان این کد کار نمیکنه !
---------------------------------------------------------------------
دوستان لطفا سعی کنید در مواردی که لازم هست توضیحات لازم رو هم درج کنید .
برای استفاده از inputBox در C# باید ابتدا رفرنس Microsoft.VisualBasic رو به برنامه اضافه کنید و از آن به صورت زیر استفاده کنید :
http://www.up.iranblog.com/images/8z12n0qt79wgi6fxat0f.jpg
string Y;
Y = Microsoft.VisualBasic.Interaction.InputBox("Msg", "", "", -1, -1);
البته بهتره Microsoft.VisualBasic رو با استفاده دستور using به برنامه وارد کنیم که دیگه موقع فراخوانی متود Interaction.InputBox نیازی نباشه فضای نام Microsoft.VisualBasic رو هم بنویسیم.
using Microsoft.VisualBasic;
Y = Interaction.InputBox("Msg", "", "", -1, -1);
butterfly8528
یک شنبه 25 اردیبهشت 1390, 19:59 عصر
حلقه While :
VB6:
Dim i As Integer
i = 0
While i <= 10
MsgBox i
i = i + 1
Wend
Dim i As Integer
i = 0
Do While i <= 10
MsgBox i
i = i + 1
Loop
C#:
int i = 0;
while (i <= 10)
{
MessageBox.Show(i.ToString());
i=i+1; // i++
}
butterfly8528
پنج شنبه 04 خرداد 1391, 02:02 صبح
بعد از مدتی به لطف خدا فرصتی پیدا شد که بتونم در خدمت دوستان باشم و این تاپیک رو آپ کنم .
عملگر ها :
87414
به دلیل عدم پشتیبانی ادیتور انجمن از جدول ها ، مجبور شدم عکس قرار بدم .
http://barnamenevis.org/images/misc/pencil.png
moharam1370
چهارشنبه 12 تیر 1392, 17:20 عصر
سلام
on error resume next معادل چي ميشه ؟
دانشجوی تویسرکانی
چهارشنبه 12 تیر 1392, 17:31 عصر
سلام
on error resume next معادل چي ميشه ؟
از TRY , CATCH باید استفاده کرد
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.