Нужен алгоритм удаления повторяющихся строк в reg-файле
имеем к примру образец
[HKEY_CLASSES_ROOT\htmlfile]
[HKEY_CLASSES_ROOT\htmlfile\BrowseInPlace]
[HKEY_CLASSES_ROOT\htmlfile\CLSID]
[HKEY_CLASSES_ROOT\htmlfile\DefaultIcon]
[HKEY_CLASSES_ROOT\htmlfile\ScriptHostEncode]
нужно удалить все строки кроме [HKEY_CLASSES_ROOT\htmlfile], это нужно для экспорта по данным рег-файла.
Есть два варианта
1. Копирую данные файла в переменную и одновременно копирую их же в массив построчно. Далее создаю цикл в котором проверяется каждяй элемент массива, то есть беру элемент массива [HKEY_CLASSES_ROOT\htmlfile] и проверяю есть ли строка [HKEY_CLASSES_ROOT\htmlfile\ в переменной файла, если да, то удаляется.
Но проблема, в том, что неизвестно количество элементов массива, так как он был разбит регулярным выражением $aRegfileT1 = StringRegExp($regfileT1, "(\[HK.*?\])", 3)
Есть возможность отправить его в буфер обмена _ArrayToClip и оттуда разбать используя StringSplit в котором уже будет количество элементов в массива в первом элементе $array[0].
Но неужели нельзя это сделать проще?
2. Ещё варинат: хотел выполнить цикл, типа такого:
то есть объединения массива, в принципе и количество элементов можно было бы посчитать, но как отработать строке IsDeclared ("regfileT1[$d]"), то есть проверка существования элемента массива?
имеем к примру образец
[HKEY_CLASSES_ROOT\htmlfile]
[HKEY_CLASSES_ROOT\htmlfile\BrowseInPlace]
[HKEY_CLASSES_ROOT\htmlfile\CLSID]
[HKEY_CLASSES_ROOT\htmlfile\DefaultIcon]
[HKEY_CLASSES_ROOT\htmlfile\ScriptHostEncode]
нужно удалить все строки кроме [HKEY_CLASSES_ROOT\htmlfile], это нужно для экспорта по данным рег-файла.
Есть два варианта
1. Копирую данные файла в переменную и одновременно копирую их же в массив построчно. Далее создаю цикл в котором проверяется каждяй элемент массива, то есть беру элемент массива [HKEY_CLASSES_ROOT\htmlfile] и проверяю есть ли строка [HKEY_CLASSES_ROOT\htmlfile\ в переменной файла, если да, то удаляется.
Но проблема, в том, что неизвестно количество элементов массива, так как он был разбит регулярным выражением $aRegfileT1 = StringRegExp($regfileT1, "(\[HK.*?\])", 3)
Есть возможность отправить его в буфер обмена _ArrayToClip и оттуда разбать используя StringSplit в котором уже будет количество элементов в массива в первом элементе $array[0].
Но неужели нельзя это сделать проще?
2. Ещё варинат: хотел выполнить цикл, типа такого:
Код:
$tt=''
$d=0
While 1
If Not IsDeclared ("regfileT1[$d]") then ExitLoop
$tt&=$regfileT1[$d]&@CRLF
$d=+1
WEnd
то есть объединения массива, в принципе и количество элементов можно было бы посчитать, но как отработать строке IsDeclared ("regfileT1[$d]"), то есть проверка существования элемента массива?