0

現在、スクリプト言語 (EngineScript) を作成しています。現在、単一のコマンド/関数 (IE: ) しか入力できませんがsout "Hello world"、それを拡張したいと考えています。

だから、改行の後に入力された文字をVB2012.Netの別の変数に入れるコードを知っているかどうか疑問に思っていました. ありがとう :-)

これが私のコードです:

Public Class Form1

    Dim strvar0 As String
    Dim strvar1 As String
    Dim strvar2 As String
    Dim strvar3 As String
    Dim numvar As Integer


    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim first4Chars As String = TextBox1.Text.Substring(0, 4)
        Dim restOfChars As String = TextBox1.Text.ToString.Substring(5)

        Select Case first4Chars
            Case "sout"
                Select Case restOfChars
                    Case "box:str0"
                        TextBox2.Text = strvar0 & vbCrLf & vbCrLf & vbCrLf & vbCrLf & "COMMAND //sout\\ has been successfully used"
                    Case Else
                        TextBox2.Text = restOfChars & vbCrLf & vbCrLf & vbCrLf & vbCrLf & "COMMAND //sout\\ has been successfully used"
                End Select

            Case "str0"
                strvar0 = restOfChars

            Case Else
                TextBox2.Text = "Error".ToString

        End Select

    End Sub



    Private Sub HelpToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles HelpToolStripMenuItem.Click
        Dim a As New Help
    End Sub

    Private Sub RunToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles RunToolStripMenuItem.Click
        Button1.PerformClick()
    End Sub

End Class

...これは Windows フォームです。

あなたのコードを使用するときの@Jamby:

Public Class Form1
    Dim strvar0 As String
    Dim strvar1 As String
    Dim strvar2 As String
    Dim strvar3 As String
    Dim numvar As Integer



    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        For Each Line In TextBox1.Text.Split(vbNewLine)

            Dim first4Chars As String = TextBox1.Text.Substring(0, 4)
            Dim restOfChars As String = TextBox1.Text.ToString.Substring(5)

            Select Case first4Chars
                Case "sout"
                    Select Case restOfChars
                        Case "box:str0"
                            TextBox2.Text = strvar0 & vbCrLf & vbCrLf & vbCrLf & vbCrLf & "COMMAND //sout\\ has been successfully used"
                        Case Else
                            TextBox2.Text = restOfChars & vbCrLf & vbCrLf & vbCrLf & vbCrLf & "COMMAND //sout\\ has been successfully used"
                    End Select

                Case "str0"
                    strvar0 = restOfChars


                Case "exit"
                    Me.Close()

                Case "lofi"

                    Select Case restOfChars
                        Case "box:str0"
                            Process.Start(strvar0)
                        Case Else
                            Process.Start(restOfChars)
                    End Select


                Case "inet"
                    Process.Start("iexplore.exe" + restOfChars)
                Case Else
                    TextBox2.Text = "Error".ToString


            End Select
        Next

        TextBox1.Clear()

    End Sub



    Private Sub HelpToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles HelpToolStripMenuItem.Click
        Dim a As New Help
    End Sub

    Private Sub RunToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles RunToolStripMenuItem.Click
        Button1.PerformClick()


    End Sub

    Private Sub MenuStrip1_ItemClicked(sender As Object, e As ToolStripItemClickedEventArgs) Handles MenuStrip1.ItemClicked

    End Sub
End Class

エラーは発生しませんが、入力すると

sout Hello 改行 sout World

出力ウィンドウから次のように出力されます。

Hello



COMMAND //sout\\ has been successfully used
World




COMMAND //sout\\ has been successfully used

しかし、代わりにこれが起こります:

Hello
sout World



COMMAND //sout\\ has been successfully used

ヘルプ!!!

4

2 に答える 2

0

使用したいのは、フォーム内の複数行のテキストボックスだと思います(テキストボックスの複数行のプロパティ/チェックボックスがあります)。

次に、テキストボックスから文字列を取得して、それを実行できますsplit('\n');。(もちろんVB構文で)

それはあなたの行である文字列の配列を返します。

分割するコードは次のようになります: (とにかく C# で)

string contents = MyTextBox.Text;
string[] lines = contents.Split('\n'); // or Environment.NewLine instead of '\n'
于 2013-05-05T04:28:11.550 に答える