PDA

View Full Version : سوال: تبدیل کد vb6 به #c



gissoft
دوشنبه 09 فروردین 1389, 11:16 صبح
لطفا این کد رو در به سی شارپ ترجمه کنید (قسمت Set a = f.Parent ان در سی شارپ معادل چیست ، همجنین nothingمعادل چیست؟)


private Sub Form_Load()
Dim f As IDocument
Dim a As IVbaApplication
Set f = New MxDocument
Set a = f.Parent
a.CreateCodeModule "project", "my"
Dim s As String
s = "public sub m " & vbNewLine & "msgbox application.document.title" & vbNewLine & "end sub"
a.InsertCode "project", "my", s
a.RunVBAMacro "project", "my", "m", Nothing
End Sub

Mohandes2009
دوشنبه 09 فروردین 1389, 12:03 عصر
Set f = New MxDocument
Set a = f.Parent



Form f = new Form();
a = f.Parent;

gissoft
سه شنبه 17 فروردین 1389, 12:59 عصر
پس لطقا بگین به جای nothing باید از چه عبارتی استفاده کنم؟ ممنون

tjsoft
جمعه 08 اسفند 1393, 16:07 عصر
سلام به همگی ، من میخوام این سورس ها به سی شارپ تغیر کنه ، لطفا کمکم کنید



'
' Program Name: chatterbot3
' Description: this is an improved version of the previous chatterbot program "chatterbot2"
' this one will try a littlebit more to understand what the user is trying to say and will also
' try to avoid repeating himself too much.
'
' Author: Gonzales Cenelia
'


Option Explicit


Private KnowledgeBase As Variant
Private nNumOfLines As Integer


Const maxInput = 1
Const maxResp = 3
Const Delim = "?!.;,"
Const EM_LINESCROLL = &HB6


Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, _
ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long




Private Sub Form_Load()
KnowledgeBase = Array(Array("اسمت چي هست؟", "ميتوني منو هامان صدا کني", "اسمم هامان هستش", "برا چي ميخواي اسمم رو بدوني؟ :D"), _
Array("سلام", "سلام خوبي؟", "سام عليک :D", "سلام"), _
Array("حالت چطوره؟", "من خوبم ممنون", "من خوبم تو چطوري؟", "عجب ، پس حال من برات مهم شده :D"), _
Array("تو کي هستي؟", "ها!", "قطعا منو ميشناسي ، يکم فکر کن ;)", "حالا گيرم که بدوني :D بعد؟"), _
Array("گفتم بگو تو کي هستي", "هي بابا گفتم که من هامانم بابا جان", "اي بابا چرا منو نميشناسي تو هامانم ديگه", "اسمم رو تو گوگل سرچ کن حالشو ببر :D"), _
Array("عجب هوشي", "پَ نَ پَ عجب موشي :D", "چي؟ هوش؟ موش؟ کوش؟ قاشوق؟ :D", "آري فرزندم من بسيار هوشمندم :D"), _
Array("جدي ميگي؟", "پس چي :D", "تازه کجاشو ديدي", "من هميشه جدي ميگم"))

'seed random generator
Randomize Timer

Timer1.Enabled = False
Timer2.Enabled = False
End Sub


Private Sub Copy(Str As Variant, destArray As Variant, nPos As Integer)
destArray(nPos) = Str
End Sub


Private Sub PrintLine(Str As String)
Text2.Text = Text2.Text & Str & vbNewLine
nNumOfLines = nNumOfLines + 1
If nNumOfLines > 10 Then
Call SendMessage(Text2.hwnd, EM_LINESCROLL, 0, (nNumOfLines - 10) * 4)
End If
End Sub


Private Sub PreProcessInput(strInput As String)
CleanString strInput
strInput = UCase(strInput)
End Sub


Private Sub RemoveElement(sourceArray As Variant, nPos As Integer)
Dim tempArray() As String
Dim i As Integer
ReDim tempArray(UBound(sourceArray))
Call CopyArray(sourceArray, tempArray, 0, nPos)
Call CopyArray(sourceArray, tempArray, nPos + 1, UBound(sourceArray))
ReDim sourceArray(UBound(sourceArray) - 1)
Call CopyArray(tempArray, sourceArray, 0, UBound(sourceArray))
End Sub


Private Sub CopyArray(sourceArray As Variant, destArray As Variant, startPos As Integer, endPos As Integer)
Dim i As Integer
For i = startPos To endPos Step 1
destArray(i) = sourceArray(i)
Next
End Sub


Private Function IsPunc(ch As String) As Boolean
IsPunc = (InStr(Delim, ch) <> 0)
End Function


Private Sub CleanString(Str As String)
Dim nLen As Integer
Dim i As Integer
Dim curChar As String
Dim prevChar As String
Dim temp As String
prevChar = 0
nLen = Len(Str)
For i = 1 To nLen Step 1
curChar = Mid(Str, i, 1)
If ((curChar = " " And prevChar <> " ") Or Not IsPunc(curChar)) Then
temp = temp & curChar
prevChar = curChar
ElseIf (prevChar <> " " And IsPunc(curChar)) Then
temp = temp & " "
End If
Next i
Str = RTrim(temp)
End Sub




Private Sub Respond(strInput As String)
Static strResponse As String
Dim strPrevResponse As String
Dim respList As Variant
Dim nSelection As Integer
respList = FindMatch(strInput)
If strInput = "باي" And Len(Text2.Text) < 20 Then
strResponse = "اي بابا نيومده رفتي؟ بودي حالا"
Timer2.Enabled = True
ElseIf strInput = "باي" Then
strResponse = "چت خوبي بود ، موفق و شاد باشي جوان"
Timer2.Enabled = True
ElseIf Len(respList(0)) = 0 Then
strResponse = "متوجه نشدم چي گفتي!!!"
Else
'saving previous response
strPrevResponse = strResponse
nSelection = (Rnd * (UBound(respList) - 1))
strResponse = respList(nSelection)
'avoids repeating the same response
If strResponse = strPrevResponse Then
Call RemoveElement(respList, nSelection)
nSelection = (Rnd * UBound(respList))
strResponse = respList(nSelection)
End If
End If
PrintLine (strResponse)
End Sub


Private Function FindMatch(strInput As String) As String()
Dim i As Integer
Dim j As Integer
Dim respList() As String
ReDim respList(maxResp)
For i = 0 To UBound(KnowledgeBase) Step 1
If KnowledgeBase(i)(j) = strInput Then
For j = maxInput To maxResp Step 1
Call Copy(KnowledgeBase(i)(j), respList, j - maxInput)
Next
Exit For
End If
Next
FindMatch = respList
End Function


Private Sub Command1_Click()
PrintLine (">" & Text1.Text)
Timer1.Enabled = True
End Sub


Private Sub Timer1_Timer()
Dim strUserInput As String
strUserInput = Text1.Text
Call PreProcessInput(strUserInput)
Respond (strUserInput)
Text1.Text = ""
Timer1.Enabled = False
End Sub


Private Sub Timer2_Timer()
Unload Chatterbot3
End Sub

SabaSabouhi
جمعه 08 اسفند 1393, 22:26 عصر
پس لطقا بگین به جای nothing باید از چه عبارتی استفاده کنم؟ ممنون

سلام
از null استفاده کن.

صبا صبوحی

SabaSabouhi
جمعه 08 اسفند 1393, 22:28 عصر
سلام
دوست عزیز، ممکنه برخی از دوستان نظر من رو نپسندن. اما به نظر من هیچ کدی رو از VB به #C ترجمه نکن.
کد رو از اول بنویس.
اما اگه اصرار داری، تو اینترنت بعضی سایت‌ها هستن که online این ترجمه رو برات انجام می‌دن. ( متاسفانه الان آدرس ندارم. جستجو کنی زیاد پیدا می‌شه )

صبا صبوحی

tjsoft
چهارشنبه 13 اسفند 1393, 13:46 عصر
با سلام خانم صبوحی ، من جستجو کردم تبدیلم کردم ولی وقتی تبدیل میکنه خیلی از قسمت هاش مشکل داره مثلا تعریف متغیر تو سی شارپ و vb باهم فرق داره ولی این برنامه ها کلا عوضش میکنن و برنامه خراب میشه .
اگر کسی لطف کنه و این برنامه رو برا من ترجمه کنه ممنون میشم خیلی سادست کل کدهاش یک صفحست! ممنون میشم ازتون

از اینجا میتونید دانلود کنید برنامه به زبان vb رو
http://up.iweeb.ir/upload/6slfaxbjenll0irdyd87.zip