Автор Тема: Разделить строку на массив?  (Прочитано 328 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sh01u [?]

  • Новичок
  • *
  • Сообщений: 16
  • Репутация: 1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Разделить строку на массив?
« Создано: Февраль 11, 2018, 18:32:43 »
Здравствуйте, как разделить строку чтобы получился такой массив?


Код: AutoIt [Выделить]
$str = "C:\Program Files (x86)\Windows NT"

$array[0] = "C:"
$array[1] = "C:\Program Files (x86)"
$array[2] = "C:\Program Files (x86)\Windows NT"


Русское сообщество AutoIt

Разделить строку на массив?
« Отправлен: Февраль 11, 2018, 18:32:43 »

Оффлайн sh01u [?]

  • Новичок
  • *
  • Сообщений: 16

  • Автор темы
  • Репутация: 1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Разделить строку на массив?
« Ответ #1, Отправлен: Февраль 11, 2018, 19:24:54 »
Код: AutoIt [Выделить]
#include <Array.au3>

Global $aRes[0], $aRes2[0]

$string = "C:\Program Files (x86)\Windows NT"
$array = StringSplit($string, "\")
$str = ""

For $i = 2 To $array[0]+1

        $str &= $array[$i - 1] & "\"

        _ArrayAdd($aRes,$str)

Next


_ArrayDisplay($aRes)


Как теперь удалить "\" в конце строки, можно сделать с помощью второго цикла, хотелось бы обойтись без него.

Код: AutoIt [Выделить]
For $j = 0 To UBound($aRes) - 1

    If $j <> 0 Then

        _ArrayAdd($aRes2,StringTrimRight($aRes[$j], 1))

    Else
        _ArrayAdd($aRes2, $aRes[$j])

    EndIf

Next

« Последнее редактирование: Февраль 11, 2018, 20:47:40 от sh01u »

Помечен как лучший ответ пользователем sh01u Отправлен Февраль 11, 2018, 20:51:23

Онлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3933
  • Репутация: 1040
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Разделить строку на массив?
« Ответ #2, Отправлен: Февраль 11, 2018, 20:46:58 »
sh01u  [?]
Цитировать
разделить строку чтобы получился такой массив
Код: AutoIt [Выделить]
$str = "C:\Program Files (x86)\Windows NT\accessories\ru-RU\"
If StringRight($str, 1) = "\" Then $str = StringTrimRight($str, 1)

StringReplace($str, "\", "")
Dim $arr[@extended + 1]
For $i = 1 To UBound($arr) - 1
  $arr[$i - 1] = StringLeft($str, StringInStr($str, "\", 0, $i) - 1)
Next
$arr[UBound($arr) - 1] = $str

#include <Array.au3>
_ArrayDisplay($arr)


Цитировать
удалить "\" в конце строки
См. строку №2

Русское сообщество AutoIt

Re: Разделить строку на массив?
« Ответ #2 Отправлен: Февраль 11, 2018, 20:46:58 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
3 Ответов
4848 Просмотров
Последний ответ Январь 06, 2011, 05:59:39
от gregaz
8 Ответов
6999 Просмотров
Последний ответ Июль 24, 2011, 17:42:18
от madmasles
5 Ответов
5939 Просмотров
Последний ответ Январь 13, 2012, 16:08:00
от BaRsupillamy
6 Ответов
4050 Просмотров
Последний ответ Февраль 13, 2012, 17:04:35
от uppdrag
8 Ответов
5662 Просмотров
Последний ответ Июнь 24, 2012, 21:26:38
от StarEdik
3 Ответов
5745 Просмотров
Последний ответ Июль 01, 2012, 11:15:45
от ViktorSPB
1 Ответов
5669 Просмотров
Последний ответ Февраль 12, 2013, 14:23:53
от madmasles
4 Ответов
2132 Просмотров
Последний ответ Апрель 18, 2013, 07:51:46
от Marx
1 Ответов
888 Просмотров
Последний ответ Март 27, 2015, 13:04:41
от alex33
1 Ответов
183 Просмотров
Последний ответ Апрель 03, 2018, 23:01:53
от Tempo