Что нового

А возможно ли в цикле объявлять массивы?

ВиталийВВ

Новичок
Сообщения
177
Репутация
0
Добрый день!
Столкнулся с задачей. Есть некоторое, заранее неизвестное кол-во текстовых файлов, хочу их перечитать и каждый запихать в массив.
Файлы будут от 1.txt, до **.txt
Как написать цикл, чтобы 1.txt был передан в массив $a1, а **.txt в массив **?
Мало того, как написать цикл, чтоб в цикле перебирать эти массивы от первого до **?
Задача больше теоретическая, ибо проблему то решил уже, вычитываю файлы в двумерный массив, и там и перебираю их, но все равно есть желание подумать/решить первичную задачу.
 

gunter123

Продвинутый
Сообщения
159
Репутация
69
Можно использовать массив массивов, так будет удобней чем двухмерный массив
Код:
#include <Array.au3>
#include <File.au3>

$aFileList = _FileListToArray(@ScriptDir, '*.txt')
If @error Then Exit MsgBox(4096, "", "Файлы не найдены")
$iCount = $aFileList[0]
Dim $Array[$iCount]

For $i = 1 To $iCount
   $Array[$i -1] = FileReadToArray(@ScriptDir & "\" & $aFileList[$i])
Next

_ArrayDisplay($Array, "Общий массив")
_ArrayDisplay($Array[0], "Первый файл построчно")
MsgBox(4096, "Первая строка первого файла", ($Array[0])[0])
 

Astel064

Помог мой пост, ставь +!
Сообщения
276
Репутация
51
А это на случай, если требуется поиск во вложенных папках:
 

Вложения

  • Получение списка файлов.rar
    7.1 КБ · Просмотры: 8
Автор
В

ВиталийВВ

Новичок
Сообщения
177
Репутация
0
На самом деле суть проблемы была: дали 6 списков ОГРН, и среди них надо было организовать поиск, результатом поиска должен был быть флаг есть/нет в списках искомое.
Бяда в том, что в будущем эти списки могли меняться +, как вариант, допускаю, могли появляться новые (типа не 6, а 7-8-9.... как пойдет) и надо было организовать программу так, чтоб просто отдавать ей список списков и она б в этом искала что ищут.
Сперва хотел все в один файл слить, все исходники, но подумал, что объем будет сильно большой, поэтому сперва, в черновой версии перечитывал каждый список в свой массив и в массивах искал, а потом, в более правильной версии (текущей), сделал двумерный массив.
счас при поиске и нахождении в случае нахождения выдается норме списка где нашло (номер столбика) ну и позиция внутри этого списка.
Что то типа этого.
Еще заморочился: добавил типа контрольного файла, в котором есть первый и последний элементы каждого списка, и при инициализации программы (прочтении в массив) в готовом двумерном массиве ищутся/находятся эти контрольные элементы, в случае удачного нахождения, считается что массив собран верно. ЕСл нет - считается ошибкой и вываливается с кодом соответствующим.
 
Верх