Эта строка возвращает новую строку:
RichTextBox1.Text.Remove(0, 33)
Она не изменяет текстовое поле на месте.На следующей итерации цикла вы продолжаете работать с исходным значением, просматривая тот же набор из 32 символов в начале строки.
Кроме того, в этом коде ничего не инициализирует переменную extsHandled
,Вы должны включить Option Strict
, что поможет отловить такую ошибку.Запуск Option Strict off - плохая практика.Вы также должны дать значимое имя любому элементу управления, на который вы фактически будете ссылаться из кода.
Мне сейчас не совсем понятен точный формат.Если это все в одной строке (без символов разрыва строки как части строки, даже если она переносится), это должно работать:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If String.IsNullOrWhitespace(RichTextBox1.Text) Then
MsgBox("Please enter the raw extensions from Chrome://policy")
Exit Sub
End If
RichTextBox3.Text = RichTextBox1.Text
Dim exts() As String
Using rdr As New TextFieldParser(RichTextBox1.Text)
rdr.TextFieldType = FileIO.FieldType.Delimited
rdr.Delimiters = New String() {","}
exts = rdr.ReadFields()
End Using
For Each ext As String In exts
RichTextBox2.AppendText(ext)
Next ext
RichTextBox1.Text = ""
End Sub
Проблема в том, что этот код ничего не делает.Массив исчезает, когда метод заканчивается.Подумайте о том, чтобы сделать массив свойством класса или иметь метод, который возвращает массив в качестве результата.
Вы также можете посмотреть на это, чтобы сохранить ввод в текстовое поле, хотя это всего лишь отправная точка:
Public Function GetChromeExtensionKeys() As IEnumerable(Of String)
Dim BasePath As String =
EndEnvironment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
BasePath = Path.Combine(BasePath, "Google\Chrome\User Data")
Dim dflt As String = Path.Combine(BasePath, "Default\Extensions")
Dim profileExts() As String = Directory.GetDirectories(BasePath, "Profile *").
Select(Function(p) Path.Combine(p, "Extensions"))
Dim result As New List(Of String)()
result.AddRange(Directory.GetDirectories(dflt))
For Each folder As String In profiles
result.AddRange(Directory.GetDirectories(folder))
Next folder
Return result.Select(Function(e) Path.GetFileName(e)).Distinct()
Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
For Each ext As String In GetChromeExtensionKeys()
RichTextBox2.AppendText(ext)
Next ext
End Sub