Невозможно правильно разделить строку - PullRequest
0 голосов
/ 23 марта 2019

Кодовая логика

Я пытаюсь прочитать file_path и file_hash , хранящиеся в списке строк. Они оба разделены "+" как разделитель. Я хочу прочитать их во временном массиве "tempArray ()", где file_path будет принимать индекс 0, а file_hash - индекс 1.

Проблема

Невозможно выполнить String.Split () для разделения. Пробовал 2 решения после поиска.

Проверено, но не работает

  • Dim tempArray() As String = filepathhash.Split(" |+| ")
  • Dim tempArray() As String = filepathhash.Split(New [Char]() {CChar(" "), CChar("|"), CChar("+"), CChar("|"), CChar(" ")})

Полный код

For Each filepathhash In se_queryfile_hashes
  MsgBox(filepathhash.ToString)
  'Dim tempArray() As String = filepathhash.Split(New [Char]() {CChar(" "), CChar("|"), CChar("+"), CChar("|"), CChar(" ")}) ' |+|
   Dim tempArray() As String = filepathhash.Split(" |+| ") ' not working too..
   MsgBox(tempArray(0)) : MsgBox(tempArray(1)) 'testing using msgbox
   For Each malwarehash In temp_hash_values
      If tempArray(1) = malwarehash Then
         matched_files.Add(tempArray(0))
         matched_hashes.Add(tempArray(1))
      End If
      check_bgWorkerCancelled()
   Next
   tempcounter += 1
Next

Ожидаемое

Я ожидаю, что результаты будут:

  • MsgBox1 будет отображать C:/some/folder/file.exe
  • Msgbox2 будет отображать FileHashForTheAboveFile

Что я получу

Я получаю неожиданные результаты обоими способами String.Split (). Они оба разделяют порции с пробелами и всем остальным, но не из набора разделителей.

Кодовое изображение

Любая помощь приветствуется. Спасибо.

1 Ответ

0 голосов
/ 23 марта 2019

, поскольку вы используете vb.net, вы можете использовать функцию разделения VB вместо .NET

Dim tempArray() As String = split(filepathhash," |+| ")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...