2014-10-02 106 views
0

我有如下用戶界面的輸出字符串,如何將字符串表達式轉換爲VB代碼?

strFormula ="gridControlName.Rows(i).cells("C1").value * 
       gridControlName.Rows(i).cells("C2").value" 

,如果我寫的代碼像

dblRes=gridControlName.Rows(i).cells("C1").value * 
      gridControlName.Rows(i).cells("C2").value 

它會給結果..但因爲它是一個字符串我不能讓導致

如何從上面的字符串中刪除雙引號,並使網格單元格中輸入的值相乘?

+4

對此的需求通常是設計缺陷的結果。 – 2014-10-02 15:19:39

+0

你是說用戶輸入的字符串? – 2014-10-02 20:20:55

回答

0

嗨,大家好感謝您的更新。我用你的概念和一些其他的代碼片段寫我自己的功能。我很張貼結果

Function generate(ByVal alg As String, ByVal intRow As Integer) As String Dim algSplit As String() = alg.Split(" "c) 

    For index As Int32 = 0 To algSplit.Length - 1 
     'algSplit(index) = algSplit(index).Replace("#"c, "Number") 
     If algSplit(index).Contains("[") Then 
      Dim i As Integer = algSplit(index).IndexOf("[") 
      Dim f As String = algSplit(index).Substring(i + 1, algSplit(index).IndexOf("]", i + 1) - i - 1) 
      Dim grdCell As Infragistics.Win.UltraWinGrid.UltraGridCell = dgExcelEstimate.Rows(intRow).Cells(f) 
      Dim dblVal As Double = grdCell.Value 
      algSplit(index) = dblVal 
     End If 

    Next 

    Dim result As String = String.Join("", algSplit) 
    'Dim dblRes As Double = Convert.ToDouble(result) 
    Return result 
End Function 

再次感謝每一位..預計未來

相同
0

我不認爲有一個'簡單'的方法來做到這一點,因爲VB.Net沒有像其他一些語言一樣的「eval()」。但是,它支持運行時編譯。這裏有一對夫婦的文章可以幫助您:

兩者都旨在不僅僅是執行單一的更穩健一點例如代碼行,允許用戶輸入自己代碼的整個文本框,但應該給你一些指導。兩者都包含示例項目。

相關問題