Перейти к содержимому

Фотография

Проверка файла *.reg


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 Kate4kina

Kate4kina

    Новый участник

  • Members
  • Pip
  • 16 сообщений

Отправлено 31 марта 2011 - 20:15

Помогите решить задачку.
Есть файл *.reg. В нем следующие строки:
REGEDIT4
[HKEY1]
Param1
[HKEY2]
Param2
Param3
Param4
[Hkey3]
Param1
[HKEY2]
Param4
Param5
Param1

Задание:
Нужно проверить что в данном файле в ветках [HKEY2] и [HKEY1] должны располагаться Param1 (или возможен такой вариант: в [HKEY2] должны быть параметры Param2, Param3 и Param4 )
Язык VBScript.

Очень нужна помощь.Уже просто голову сломала как это сделать(.
  • 0

#2 XXX

XXX

    Опытный участник

  • Members
  • PipPipPipPip
  • 284 сообщений
  • ФИО:Денис Викторович
  • Город:Санкт-Петербург


Отправлено 01 апреля 2011 - 09:47

Помогите решить задачку.
Есть файл *.reg. В нем следующие строки:
REGEDIT4
[HKEY1]
Param1
[HKEY2]
Param2
Param3
Param4
[Hkey3]
Param1
[HKEY2]
Param4
Param5
Param1

Задание:
Нужно проверить что в данном файле в ветках [HKEY2] и [HKEY1] должны располагаться Param1 (или возможен такой вариант: в [HKEY2] должны быть параметры Param2, Param3 и Param4 )
Язык VBScript.

Очень нужна помощь.Уже просто голову сломала как это сделать(.



Для работы с реестром есть объект Storages.Registry()
с помощью методов GetOption(), GetOptionName() можно определять параметры секции
  • 0

#3 ch_ip

ch_ip

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 097 сообщений
  • ФИО:Павел Абдюшев
  • Город:Москва


Отправлено 01 апреля 2011 - 11:39

Задание:
Нужно проверить что в данном файле в ветках [HKEY2] и [HKEY1] должны располагаться Param1 (или возможен такой вариант: в [HKEY2] должны быть параметры Param2, Param3 и Param4 )
Язык VBScript.
Очень нужна помощь.Уже просто голову сломала как это сделать(.

Для работы с реестром в VBScript используется объект WScript.Shell.
У него есть метод RegRead.

Или же Вы хотите проверить файл до того, как помещать информацию из него в реестр?
  • 0

#4 Kate4kina

Kate4kina

    Новый участник

  • Members
  • Pip
  • 16 сообщений

Отправлено 03 апреля 2011 - 15:10


Задание:
Нужно проверить что в данном файле в ветках [HKEY2] и [HKEY1] должны располагаться Param1 (или возможен такой вариант: в [HKEY2] должны быть параметры Param2, Param3 и Param4 )
Язык VBScript.
Очень нужна помощь.Уже просто голову сломала как это сделать(.

Для работы с реестром в VBScript используется объект WScript.Shell.
У него есть метод RegRead.

Или же Вы хотите проверить файл до того, как помещать информацию из него в реестр?


да. думаю что вышеперечисленные методы не подойдут ,т.к. проверяется сам файлик,его содержимое, до размещения в реестре.
  • 0

#5 SergeyP

SergeyP

    Специалист

  • Members
  • PipPipPipPipPip
  • 651 сообщений
  • Город:Москва

Отправлено 03 апреля 2011 - 15:30

ИМХО, единственный выход - парсинг файла, как текстового файла:

- ищите первую строку, в которой первый символ "[" и последний "]"
- читаете каждую последующую строку с анализом на конец файла, а также наличие / отсутствие "="
- если строка имеет "=", то это строка с параметром
- сравниваете параметр из строки с заданным параметром
- если строка без "=", то возможно это секция, пустая строка или строка-продолжение (если это параметры типа, значения которых могут быть на нескольких строках

Например:
"Param"=hex(2):25,73,79,73,74,65,6d,72,6f,6f,74,25,5c,73,79,73,74,\
65,6d,33,32,5c,64,75,6d,70,72,65,70,20,30,20,2d,6b,00
)

Как-то так...

Удач !

PS
Понимаю, что алгоритм парсинга и анализа параметров будет гораздо сложнее..
Как минимум, для этого надо понимать, как строится структура REG-файлов..
  • 0

#6 Kate4kina

Kate4kina

    Новый участник

  • Members
  • Pip
  • 16 сообщений

Отправлено 03 апреля 2011 - 17:44

а нельзя ли для Storages.Registry() указать пусть где лежит наш файлик?)
  • 0

#7 TC_Noob

TC_Noob

    Новый участник

  • Members
  • Pip
  • 45 сообщений

Отправлено 04 апреля 2011 - 09:34

А какая версия TestComplete ?
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных