View Full Version : سوال: تبدیل کد VB به C#
  
amin.m1993
دوشنبه 17 مهر 1391, 23:53 عصر
سلام.
دوستان کسی میتونه کد زیر رو به #C تبدیل کنه؟ کارم ضروریه همین امشب باید به جواب برسم. ممنون میشم کمکم کنید.
Private Sub Command1_Click()
    Dim N As Long, A() As Long, I As Long
    N = Val(Text1.Text)
    ReDim A(1 To N)
    For I = 1 To N
        A(I) = I
    Next
    List1.Clear
    MySub A, 1, N
End Sub
 
Private Sub MySub(ByRef List() As Long, ByVal Index As Long, ByVal Count As Long)
    Dim Pos As Long, Temp As Long
    If Index > Count Then
        ShowList List, Count
        Exit Sub
    End If
    MySub List, Index + 1, Count
    For Pos = Index + 1 To Count
        Temp = List(Pos)
        List(Pos) = List(Index)
        List(Index) = Temp
        MySub List, Index + 1, Count
        List(Index) = List(Pos)
        List(Pos) = Temp
    Next
End Sub
 
Private Sub ShowList(ByRef List() As Long, ByVal Count As Long)
    Dim Index As Long, Str As String, Num As String
    For Index = 1 To Count
        Str = Str & Chr(64 + List(Index)) & "  "
    Next
    Num = CStr(List1.ListCount + 1)
    Num = Space(4 - Len(Num)) & Num
    List1.AddItem Num & ")  " & Str
End Sub
xxnagin
سه شنبه 18 مهر 1391, 00:07 صبح
سلام
این کد برای vb6  هستش 
شما برای چه کاری  میخواین استفاده بکنین
من اینو در اوردم   #c و vb.net
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim N As Long, A() As Long, I As Long
        N = Val(TextBox1.Text)
        ReDim A(0 To N)
        For I = 1 To N
            A(I) = I
        Next
        ListBox1.Items.Clear()
        MySub(A, 1, N)
    End Sub
 
    Private Sub MySub(ByRef List() As Long, ByVal Index As Long, ByVal Count As Long)
        Dim Pos As Long, Temp As Long
        If Index > Count Then
            ShowList(List, Count)
            Exit Sub
        End If
        MySub(List, Index + 1, Count)
        For Pos = Index + 1 To Count
            Temp = List(Pos)
            List(Pos) = List(Index)
            List(Index) = Temp
            MySub(List, Index + 1, Count)
            List(Index) = List(Pos)
            List(Pos) = Temp
        Next
    End Sub
    Private Sub ShowList(ByRef List() As Long, ByVal Count As Long)
        Dim Index As Long, Str As String = "", Num As String
        For Index = 1 To Count
            Str = Str & Chr(64 + List(Index)) & "  "
        Next
        Num = CStr(ListBox1.Items.Count + 1)
        Num = Space(4 - Len(Num)) & Num
        ListBox1.Items.Add(Num & ")  " & Str)
    End Sub
private void  Button1_Click(System.Object sender, System.EventArgs e)
{
 long N;
 long[] A;
 long I;
 N = Val(TextBox1.Text);
  // ERROR: Not supported in C#: ReDimStatement
 for (I = 1; I <= N; I++) {
  A(I) = I;
 }
 ListBox1.Items.Clear();
 MySub(A, 1, N);
}
private void MySub(ref long[] List, long Index, long Count)
{
 long Pos;
 long Temp;
 if (Index > Count) 
{
  ShowList(List, Count);
  return;
 }
 MySub(List, Index + 1, Count);
 for (Pos = Index + 1; Pos <= Count; Pos++)
 {
  Temp = List(Pos);
  List(Pos) = List(Index);
  List(Index) = Temp;
  MySub(List, Index + 1, Count);
  List(Index) = List(Pos);
  List(Pos) = Temp;
 }
}
private void ShowList(ref long[] List, long Count)
{
 long Index;
 string Str = "";
 string Num;
 for (Index = 1; Index <= Count; Index++) {
  Str = Str + Chr(64 + List(Index)) + "  ";
 }
 Num = Convert.ToString(ListBox1.Items.Count + 1);
 Num = Space(4 - Len(Num)) + Num;
 ListBox1.Items.Add(Num + ")  " + Str);
}
amin.m1993
سه شنبه 18 مهر 1391, 00:33 صبح
خیلی ممنون جناب xxnagin
این کد مربوط میشه به نمایش جایگشت های n عضوی یه مجموعه ی n عضوی که باید تا فردا تحویلش میدادم.
ممنون از کمک شما فقط چطوری convert کردین؟
arash020
سه شنبه 18 مهر 1391, 06:16 صبح
سلام
خیلی راحت
هم سایت های زیادی هستن.
توی گوگل::: convert C# to VB.net
و
هم برنامه ش هست.
خودم کلاس اصلیشو که سایتا ازش استفاده میکنن رو دارم
سورسش هم به سی شارپه...
میتونی با webrequest خودت هم یدونه لوکالش رو واسه خودت بنویسی.
موفق باشی
xxnagin
سه شنبه 18 مهر 1391, 19:43 عصر
من فقط  سه تا تغییر  تو کد دادم 
 اونم مربوط به  listbox  هستش
 همین 3 تا  که  تو  vb.net استفاده  میشه 
بعدش با   Convert Net    (http://fishcodelib.com/files/ConvertNet2.zip)تبدیلش کردم  به #c
List1.Clear =  ListBox1.Items.Clear()
List1.ListCount  =  ListBox1.Items.Count
List1.AddItem  =  ListBox1.Items.Add
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.