У меня возникли проблемы с манипулированием одномерным массивом строк в VB.NET, и я прошу вашей помощи, пожалуйста.
Моя цель - получить 4 переменные (если возможно) из пути к файлу. Эти переменные:
myCountry, myCity, myStreet, Filename. Все объявлено как строка. Расположение файла также объявляется как строка. Итак, у меня есть:
Dim filePath As String
, чтобы проиллюстрировать мою проблему и то, что я пытаюсь сделать, у меня есть следующие примеры:
1
C: \ my \ location \ is \ UK \ Birmingham \ Summer Road \ this house.txt.
В этом примере myCountry будет = UK. myCity = Бирмингем. myStreet = Летняя дорога. Имя файла = this house.txt
2-
C: \ my Location \ is \ France \ Lyon \ that house.txt.
здесь myCountry = Франция. MyCity = Лион. Там нет улицы. Имя файла = этот дом.txt
3-
C: \ мое местоположение \ Германия \ другой house.txt
Здесь myCountry = Германия. Нет города. Нет улицы Имя файла = другой дом.txt
То, что я пытаюсь сказать, я заранее не знаю о длине строки или о положении переменных, которые я хочу. Я также не знаю, собираюсь ли я найти / получить название города или улицы в пути.
Однако я точно знаю, что получу myCountry, и это будет один из 5 вариантов: Великобритания, Франция, Германия, Испания, Италия.
Для решения моей проблемы первое, что я сделал, было:
Dim pathArr() As String = filePath.Split("\")
Чтобы получить FileName, я сделал:
FileName = pathArr.Last
Чтобы получить мою страну, я сделал:
If filePath.Contains("UK") Then
myCountry = "UK"
ElseIf filePath.Contains("France") Then
myCountry = "France"
ElseIf filePath.Contains("Germany") Then
myCountry = "Germany"
ElseIf filePath.Contains("Spain") Then
myCountry = "Spain"
ElseIf filePath.Contains("Italy") Then
myCountry = "Italy"
End If
При попытке выяснить myCity и myStreet (и существуют ли они в первую очередь в строке) я начал с:
Dim ind As Integer = Array.IndexOf(pathArr, myCountry)
Чтобы получить индекс строки myCountry. Я думал, что смогу уйти оттуда, но я застрял и не знаю, что делать дальше. Любая помощь будет оценена.