PDA

View Full Version : تبدیل یک برنامه VB.NET به C#.NET



Ship Storm
جمعه 22 دی 1391, 18:41 عصر
سلام دوستان
من یک برنامه نوشتم VB.NET هست میخوام C#‎‎.NET اون رو هم داشته باشم ، فقط یک فرم هست با چند تا دکمه و خیلی پیچیده نیست میشه راهنمایی کنید چکار باید بکنم؟
یکسری سایت رو پیدا کردم که اینکار تبدیل رو انجام میداد ولی اصلا درست عمل نمیکنن و همشون ایراد دارن
ممنون از محبت شما

xxnagin
جمعه 22 دی 1391, 20:17 عصر
سلام
http://www.developerfusion.com/tools/convert/csharp-to-vb/

Ship Storm
جمعه 22 دی 1391, 21:18 عصر
سلام
http://www.developerfusion.com/tools/convert/csharp-to-vb/



این سایت رو تست کردم اصلا تبدیل رو انجام نمیده جدیدا نمیدونم چش شده

xxnagin
جمعه 22 دی 1391, 21:52 عصر
از این برنامه هم میتونی استفاده کنی

http://www.carlosag.net/tools/codetranslator/

http://codeconvert.codeplex.com/
http://download1us.softpedia.com/dl/5dbaceb7a566b4062ba7e55360133660/50f05fb7/100067071/software/programming/ConvertNet2.zip

Ship Storm
جمعه 22 دی 1391, 23:48 عصر
اینا همه رو تست کردم همشون ایراداتی دارن و درست تبدیل نمیکنن
حتی خود ماکروسافت هم یکی ارائه کرده بود که اونم پلاگین بود روی خود VS 2010 نصب میشد ولی اونم تو تبدیل کردن کلی ارور و خطا میده

Ship Storm
جمعه 22 دی 1391, 23:51 عصر
کل کد من اینه میشه درست تبدیلش کرد به سی شارپ بطوری که ارور نده ؟


Imports System.IO
Imports System.ComponentModel
Public Class Form1
Dim Prog As Integer
Dim Pause As Boolean
Dim Cancel As Boolean

Private Sub SaveBinaryFile(ByVal strFilename As String, ByVal bytesToWrite() As Byte, ByRef worker As BackgroundWorker)
Dim position As Integer = 0
Dim BufferSize As Integer = 4096

Using fsNew As FileStream = New FileStream(strFilename, FileMode.Create, FileAccess.Write)
Do
Dim intToCopy As Integer = Math.Min(BufferSize, bytesToWrite.Length - position)
Dim buffer(intToCopy - 1) As Byte
Array.Copy(bytesToWrite, position, buffer, 0, intToCopy)


Do While Pause
Loop


If (Cancel) Then
fsNew.Flush()
worker.CancelAsync()
Return
End If


fsNew.Write(buffer, 0, buffer.Length)
worker.ReportProgress(Prog + (((position / bytesToWrite.Length) * 100) / 2))

Application.DoEvents()
position += intToCopy
Loop While position < bytesToWrite.Length
worker.ReportProgress(0)
Prog = 0
End Using
End Sub
Private Function ReadBinaryFile(ByVal strFilename As String, ByRef worker As BackgroundWorker) As Byte()
Dim position As Integer = 0
Dim bufferSize As Integer = 4096
Dim bytes() As Byte
worker.ReportProgress(0)
Using fsOpen As FileStream = New FileStream(strFilename, FileMode.Open)
ReDim bytes((fsOpen.Length) - 1)
Do


Do While Pause
Loop


If (Cancel) Then
fsOpen.Flush()

worker.CancelAsync()
Return Nothing
End If

If (position + bufferSize) > fsOpen.Length Then
fsOpen.Read(bytes, position, fsOpen.Length - position)
Exit Do
Else
fsOpen.Read(bytes, position, bufferSize)
End If
Prog = ((position / fsOpen.Length) * 100) / 2
worker.ReportProgress(((position / fsOpen.Length) * 100) / 2)
' ProgressBar1.Refresh()
Application.DoEvents()
position += bufferSize
Loop

End Using
Return bytes
End Function
Private Sub btnSelectFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelectFile.Click
Dim ofd As New OpenFileDialog With {.Filter = "All Files|*.*"}
If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
txtFileDes.Text = ofd.FileName
txtFileSaveWhere.Text = ""
lblFileSize.Text = "File Size IS : " & Math.Round(CInt(New FileInfo(ofd.FileName).Length.ToString) / 1024 / 1024, 3) & " MB "
End If
End Sub

Private Sub btnWhereToSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnWhereToSave.Click
Dim sfd As New FolderBrowserDialog
If txtFileDes.Text.Length > 0 AndAlso sfd.ShowDialog = Windows.Forms.DialogResult.OK Then
txtFileSaveWhere.Text = sfd.SelectedPath & "\" & New FileInfo(txtFileDes.Text).Name
End If
End Sub
Private Sub btnCopyFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCopyFile.Click
Cancel = False
Pause = False

lblAction.Text = "Now Copying a File"
If txtFileDes.Text.Length > 0 AndAlso txtFileSaveWhere.Text.Length > 0 Then
BackgroundWorker1.RunWorkerAsync()


End If
End Sub

Private Sub SelectFileToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SelectFileToolStripMenuItem.Click
Dim ofd As New OpenFileDialog With {.Filter = "All Files|*.*"}
If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then
txtFileDes.Text = ofd.FileName
txtFileSaveWhere.Text = ""
lblFileSize.Text = "File Size IS : " & Math.Round(CInt(New FileInfo(ofd.FileName).Length.ToString) / 1024 / 1024, 3) & " MB "
End If
End Sub

Private Sub SelectDestinationToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SelectDestinationToolStripMenuItem.Click
Dim sfd As New FolderBrowserDialog
If txtFileDes.Text.Length > 0 AndAlso sfd.ShowDialog = Windows.Forms.DialogResult.OK Then
txtFileSaveWhere.Text = sfd.SelectedPath & "\" & New FileInfo(txtFileDes.Text).Name
End If
End Sub

Private Sub CopyFileToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CopyFileToolStripMenuItem.Click
If txtFileDes.Text.Length > 0 AndAlso txtFileSaveWhere.Text.Length > 0 Then
End If
End Sub

Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
End
End Sub

Private Sub AboutToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AboutToolStripMenuItem.Click
MsgBox("Email : hamed@gmail.com , Tel : 093999")
End Sub

Private Sub AboutToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AboutToolStripMenuItem1.Click
MsgBox("This Program Is Created With Hamed Kefayati Date : 1391/09/17 Version : 1.0.0")
End Sub

Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
SaveBinaryFile(txtFileSaveWhere.Text, ReadBinaryFile(txtFileDes.Text, sender), sender)
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Cancel = True

End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If Button1.Text = "Pause" Then
Button1.Text = "Resume"
Pause = True
Else
Button1.Text = "Pause"
Pause = False
End If


End Sub

Private Sub Panel3_Paint(sender As Object, e As PaintEventArgs) Handles Panel3.Paint
BackgroundWorker1.WorkerReportsProgress = True
BackgroundWorker1.WorkerSupportsCancellation = True

End Sub

Private Sub BackgroundWorker1_ProgressChanged(sender As Object, e As ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
ProgressBar1.Value = e.ProgressPercentage
End Sub

Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
lblAction.Text = "Finished!"
End Sub
End Class

xxnagin
شنبه 23 دی 1391, 16:24 عصر
سلام اینم از تبدیل کدتون
فقط تو این قسمت نتونستم کاریش کنم

MsgBox("Email : <a href="mailto:hamed@gmail.com">hamed@gmail.com</a> , Tel : 093999")

Ship Storm
شنبه 23 دی 1391, 18:06 عصر
ممنون از محبت شما دوست عزیزم
من ورژن 2010 ویژوال استدیو رو دارم گویا این با ورژن 2012 ساخته شده و برای من باز نمیشه
من فایل Exe این رو اجرا کردم ولی نرم افزار کار نمیکنه و فکر کنم یه جاهائیش مشکل پیدا کرده که از کار افتاده وقتی تبدیل شده اگر خواستید من اصل برنامه که تحت VB کار میکنه رو قرار بدم ملاحظه کنید که بخوبی کار میکنه و مشکلی نداره تو کپی فایل ها
باز هم ممنون از محبت شما و وقتی که صرف کردید در این زمینه برای کمک به بنده
ممنونم

xxnagin
شنبه 23 دی 1391, 18:27 عصر
اره من با ویندوز 8 نوشتمش
شما میتونید کدهاش رو با نودپد باز و کپی کنید وتو vb2010 پیست کنید
اگه میشه نسخه vb رو بذارید

Ship Storm
شنبه 23 دی 1391, 22:02 عصر
سلام و ممنون
این هم برنامه من

xxnagin
شنبه 23 دی 1391, 23:17 عصر
بفرما اینم از پروژهتون به زبان #C

Ship Storm
یک شنبه 24 دی 1391, 06:08 صبح
سلام و تشکر فراوان بایت زحمتی که کشیدید در این رابطه
فقط یک مشکل هست این جا که من بررسی کردم موقع کپی گرفتن Progressbar پر نمیشه و فکر کنم تو تبدیل کد تو این قسمت اختلالی بوجود اومده باشه

Ship Storm
جمعه 29 دی 1391, 00:42 صبح
این مشکل رو کسی از دوستان میتونه کمک کنه و برطرف کنه؟
ممنون

arash020
جمعه 29 دی 1391, 01:30 صبح
سلام یه برنامه تبدیل کد توی این وبلاگ هست
http://eaglevb.blogfa.com/
امتحانش کن...

Ship Storm
جمعه 29 دی 1391, 10:08 صبح
دوست خوبمون xxnagin (http://barnamenevis.org/member.php?92792-xxnagin) زحمت تبدیل کرد کد به سی شارپ رو انجام داده فقط یک مشکلی هست ورژن تبدیل شده با ورژن من همخوانی نداره و نمیتونم بازش کنم و الان یک مشکلی که داره اینه که Progressbar وقتی یک فایل داره کپی میشه پر نمیشه و الا نرم افزار بخوبی داره کار میکنه
یکی خواهشا این رو میتونه درستش کنه بخدا گیر کردیم سر همین