Автор Тема: [Данные, строки] Как превратить данные массива, полученные из .txt в в переменные  (Прочитано 209 раз)

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

Оффлайн GubinEdward [?]

  • Новичок
  • *
  • Сообщений: 2
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Всем привет, случился вопрос, который не в состоянии разрешить самостоятельно.

Суть задачи:
Есть текстовый файл.txt с данными - в нем буквы. Данные в документе расположены построчно, т.е.:
a
b
c
...
но каждый раз, количество букв в файле.txt может быть разным, т.е:
a
b
f
z
При этом мы знаем, что в английском алфавите 26 букв. По коду получается так, что есть 26 переменных, каждой из которых нужно из полученного массива присвоить букву так, чтобы данные не разъезжались, т.е.:
1   a
2   b
..
6   f
..
25
26 z

Как правильно возможно данные из массива присвоить к списку переменных, чтобы структура не поехала?
Рационально ли вообще такое решение, или есть более оптимальный способ разрешения?

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


Онлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3549
  • Репутация: 935
    • Награды
  • Версия AutoIt: 3.3.14.0
GubinEdward  [?]
Цитировать
Рационально ли вообще такое решение
26 переменных, идущих подряд, - это уже не рационально.

Хотелось бы понять цель подобных манипуляций :think:
Код: AutoIt [Выделить]
#include <Array.au3>

; вариант 1
Global $abc[27]
$arr = FileReadToArray("abc.txt")
$str = "abcdefjhijklmnopqrstuvwxyz"
For $i = 0 To UBound($arr) - 1
  $abc[StringInStr($str, $arr[$i])] = $arr[$i]
Next
_ArrayDisplay($abc)

; вариант 2
Global $abc[27]
$arr = FileReadToArray("abc.txt")
For $i = 0 To UBound($arr) - 1
  $j = Asc($arr[$i]) - 96
  If $j > 0 Then $abc[$j] = $arr[$i]
Next
_ArrayDisplay($abc)


Оффлайн GubinEdward [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
GubinEdward  [?]
Цитировать
Рационально ли вообще такое решение
26 переменных, идущих подряд, - это уже не рационально.

Хотелось бы понять цель подобных манипуляций :think: [autoit]#include <Array.au3>

Спасибо, за ответ, но пока что не проверил. Отпишу, что получится позже.

Файловый документ, в котором данные, формируется из списка папок. Название папок всегда разное.
Получается что путь\часть пути к файлам, которые лежат в самом конце папок - динамический.
В конце каждого пути есть файл, который нужно запустить, но из-за постоянной смены названия одной из папок это сделать не так просто.(по крайней мере мне так кажется=))
Как вариант разрешения подумал, что можно
Место пути с отличием получить в виде .тхт, прочитать его как массив и потом, в процедуре запуска, подставить через переменную в часть пути. чтоб запустить .ехе
« Последнее редактирование: Октябрь 12, 2017, 20:52:36 от GubinEdward, Причина: уточнение ответа »

Оффлайн ra4o [?]

  • Скриптер
  • ****
  • Сообщений: 645
  • Репутация: 106
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Приведите пример и то, что Вы хотите выделить/получить в результате

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


 

Похожие темы

  Тема / Автор Ответов Последний ответ
11 Ответов
5033 Просмотров
Последний ответ Сентябрь 15, 2010, 16:01:25
от tarasov.evgeny
1 Ответов
3593 Просмотров
Последний ответ Сентябрь 17, 2010, 13:31:45
от axlwor
2 Ответов
5737 Просмотров
Последний ответ Декабрь 28, 2010, 09:19:53
от gregaz
4 Ответов
4511 Просмотров
Последний ответ Март 12, 2011, 21:08:22
от Maalik
0 Ответов
3091 Просмотров
Последний ответ Март 13, 2011, 20:34:05
от madmasles
5 Ответов
3197 Просмотров
Последний ответ Июнь 24, 2011, 13:57:54
от Houl777
20 Ответов
5417 Просмотров
Последний ответ Июнь 15, 2013, 10:51:05
от prokazzza
4 Ответов
1382 Просмотров
Последний ответ Июль 27, 2013, 21:45:56
от Aspro
2 Ответов
1633 Просмотров
Последний ответ Октябрь 23, 2013, 06:32:15
от joiner
2 Ответов
759 Просмотров
Последний ответ Февраль 26, 2016, 18:28:12
от BlackPhreaker