Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 31

Считать параметры из указанной папки реестра

23.01.2015, 14:39. Показов 2172. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем здравствуйте! Задача в следующем - прочитать все параметры из указанной папки в реестре. Все хорошо работает, НО как только натыкаюсь на параметр типа DWORD или QWORD вылазит ошибка "Invalid Data Type". Как я читаю параметры:

C++
1
2
3
4
5
6
7
r->OpenKey(Здесь путь к папке реестра,false);
TStringList *k = new TStringList();     // Создаю список, чтобы поместить туда все параметры в данной папке
r->GetValueNames(k);                     //Получаю список параметров
for (int j = 0; j < k->Count;j++)       //Цикл для перебора параметров
        { 
          AnsiString value=r->ReadString(k->Strings[j]);   // Считываем значение текущего параметра (тут и вылазит ошибка)
        }
Понятное дело, что AnsiString для хранения DWORD не подойдет и для него нужно брать отдельную переменную с таким же типом, но как заранее определить какой тип параметра у данного значения, чтобы избежать ошибок?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.01.2015, 14:39
Ответы с готовыми решениями:

Считать с указанной папки содержимое текстовых файлов в массив
Пользователь выбирает папку, там находятся текстовые файлы. В текстовых файлах находится числа. Пример: 101101 Надо считать в массив...

Открыть редактор реестра в указанной ветке
нужен батник который открывает реестр по пути HKCR:local settings\software\microsoft\windows\shell\muicache\ заранее спасибо)

Открывать последовательно папки, и из каждой папки считать определенный документ
Подскажите, пожалуйста, как открывать последовательно папки(папки годами называются) и из каждой папки считать определенный документ (в...

5
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33374 / 21499 / 8235
Регистрация: 22.10.2011
Сообщений: 36,894
Записей в блоге: 12
23.01.2015, 14:47
Получать тип данных через GetDataType, и в зависимости от результата выбирать правильную функцию чтения значения.
1
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 31
23.01.2015, 20:00  [ТС]
Цитата Сообщение от volvo Посмотреть сообщение
Получать тип данных через GetDataType, и в зависимости от результата выбирать правильную функцию чтения значения.
Отлично! То что нужно! спасибо большое!
0
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 31
24.01.2015, 21:09  [ТС]
Так теперь вторая проблема, пытаюсь вызвать выше указанную функция однако получаю ошибку:

Call to undefined function 'GetDataType'

Хотя вроде файл Registry.hpp подключил и там она объявлена.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33374 / 21499 / 8235
Регистрация: 22.10.2011
Сообщений: 36,894
Записей в блоге: 12
24.01.2015, 21:56
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    TStringList *k = new TStringList();
    // Создаю список, чтобы поместить туда все параметры в данной папке
    r->GetValueNames(k); // Получаю список параметров
 
    AnsiString sValue;
    DWORD dwValue;
    for (int j = 0; j < k->Count; j++) // Цикл для перебора параметров
    {
        switch (r->GetDataType(k->Strings[j]))
        {
        case rdString:
            // читаем строку
            sValue = r->ReadString(k->Strings[j]);
            break;
        case rdInteger:
            // читаем число
            dwValue = r->ReadInteger(k->Strings[j]);
            break;
        }
        // ...
    }
Никаких ошибок нет
0
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 31
25.01.2015, 11:49  [ТС]
Спасибо за пример с рабочим кодом, все работает прекрасно, моя ошибка была в том что вызывал функцию GetDataType напрямую без обращения к реестру r->
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.01.2015, 11:49
Помогаю со студенческими работами здесь

Параметры реестра
Здравствуйте! Есть определенные вопросы. Когда создаешь новый ключ, в нем есть параметр REG_SZ с именем &quot;(По умолчанию)&quot; и со...

Можно ли как-то узнать сколько подкаталогов содержится в указанной ветке реестра?
Добрый день. Пытаюсь считать из реестра не могу понять в чем ошибка. Выдает не то, что требуется. Подскажите пожалуйста. И можно ли...

Параметры REG_DWORD из реестра
Как получить в прогу параметры типа REG_DWORD. У меня всегда выводятся нули. Прежде чем отвечать пожалуйста попробуйте у себя код на...

Вытащить параметры ветки реестра
Как из ветки реестра вытащить все доступные параметры? желательно в массив загнать, чтобы потом использовать любой из параметров

Как определить параметры флэшек из реестра?
В программе DevView имеется возможность определять первое включение флэшки (Created Data), последнее включение-отключение (Last Plug/Unplug...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru