Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net VB解析字符串并放入文本框_.net_Vb.net - Fatal编程技术网

.net VB解析字符串并放入文本框

.net VB解析字符串并放入文本框,.net,vb.net,.net,Vb.net,我有一项任务要完成,但我想不出如何去完成 以下是一个例子: 我有一个带有首选项的文本文件。我阅读了文件,在一行中找到了如下文本: If InStr(sLine, "avidDirectory") Then 这是我在文本文件中的行: avidDirectory "S:\Avid MediaFiles\" "D:\Avid MediaFiles\" "Z:\Avid MediaFiles\" 我需要做的是读取quoations标记之间的每个字符串,并将每个字符串放在文本框中 如果上面有5个不

我有一项任务要完成,但我想不出如何去完成

以下是一个例子:

我有一个带有首选项的文本文件。我阅读了文件,在一行中找到了如下文本:

 If InStr(sLine, "avidDirectory") Then
这是我在文本文件中的行:

 avidDirectory "S:\Avid MediaFiles\" "D:\Avid MediaFiles\" "Z:\Avid MediaFiles\"
我需要做的是读取quoations标记之间的每个字符串,并将每个字符串放在文本框中

如果上面有5个不同的目录,我可以使用5个文本框(在上面的例子中只有3个)

所以我想我需要捕获引号之间的文本,从中创建一个新字符串,然后将该字符串放入文本框中

ie; 字符串1=textbox1.txt 等

我将如何处理这个问题


谢谢。

创建一个新的Windows应用程序,并将一个按钮和五个文本框添加到要启动的表单中,并用此代码替换表单的代码

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim txt As String = "avidDirectory ""S:\Avid MediaFiles\"" ""D:\Avid MediaFiles\"" ""Z:\Avid MediaFiles\"""
        Dim insideAQuotation As Boolean = False
        Dim array(5) As String
        Dim currentString As Integer = 0


        For i = 1 To Len(txt)
            If Mid(txt, i, 1) = Chr(34) And insideAQuotation Then
                insideAQuotation = False
                currentString += 1
            ElseIf Mid(txt, i, 1) = Chr(34) And insideAQuotation = False Then
                insideAQuotation = True
            End If

            If insideAQuotation Then
                If Mid(txt, i, 1) <> Chr(34) Then    'This is to avoid the quotation marks inside the text boxes.
                    array(currentString) &= Mid(txt, i, 1)
                End If
            End If
        Next

        Me.TextBox1.Text = array(0)
        Me.TextBox2.Text = array(1)
        Me.TextBox3.Text = array(2)
        Me.TextBox4.Text = array(3)
        Me.TextBox5.Text = array(4)



    End Sub
End Class
公共类表单1
私有子按钮1\u单击(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理按钮1。单击
Dim txt格式为String=“avidDirectory”S:\Avid MediaFiles\“D:\Avid MediaFiles\”“Z:\Avid MediaFiles\”
Dim InsideaQuotence为布尔值=False
作为字符串的Dim数组(5)
Dim currentString作为整数=0
对于i=1到Len(txt)
如果Mid(txt,i,1)=Chr(34)和inlineaquote,则
InsideaQuotence=False
currentString+=1
ElseIf Mid(txt,i,1)=Chr(34),InsideaQuotence=False
InsideaQuotence=True
如果结束
如果是这样的话
如果Mid(txt,i,1)Chr(34),则“这是为了避免文本框内的引号。
数组(currentString)&=Mid(txt,i,1)
如果结束
如果结束
下一个
Me.TextBox1.Text=数组(0)
Me.TextBox2.Text=数组(1)
Me.TextBox3.Text=数组(2)
Me.TextBox4.Text=数组(3)
Me.TextBox5.Text=数组(4)
端接头
末级

哇,谢谢,我并不期待完整的代码,但我认为这是完美的。在.Net代码中,像Instr()这样的函数调用是一种代码味道。因此,类型前缀也是如此。现代代码中的“If”行应该是这样的:
If-line.Contains(“avidDirectory”)那么什么是代码气味Joel?代码气味本身并不完全是错误的,但看起来仍然很奇怪,以至于您认为可能需要仔细查看该代码和周围的代码才能确定。