|
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 10
|
||||||||||||||||
GetPrivateProfileString не выводит все ключи05.05.2014, 14:46. Показов 5432. Ответов 10
Метки нет (Все метки)
Добрый день!
Мучаюсь уже несколько дней, так и не пойму в чем загвоздка. Вообщем есть WinApi функция GetPrivateProfileString :
lpAppName — имя секции, в которой находится считываемй ключ. Если в качестве этого параметра передать NULL, функция вернет список всех секций в указанном INI-файле lpKeyName — имя ключа, чье значение нужно считать. Если в качестве параметра передать NULL, то функция, по аналогии с секциями, вернет имена всех ключей в секции. lpDefault — строка по умолчанию. Если в указанном INI-файле ключ lpKeyName не найден, то функция вернет это значение. lpReturnedString — буфер, в который будут записаны возвращаемые функцией данные lpFileName — имя считываемого INI-файла. То есть код типа :
Вот мой код (Visual Studio C++):
Но количество символов считает правильно. Спасибо за помощь.
0
|
||||||||||||||||
| 05.05.2014, 14:46 | |
|
Ответы с готовыми решениями:
10
GetPrivateProfileString
|
|
68 / 65 / 21
Регистрация: 01.05.2014
Сообщений: 247
|
|||||||||||
| 05.05.2014, 16:19 | |||||||||||
|
Приветствую!
Ваш код немного не изящен. Плюс нужно указать имя переменной, а так вы получаете только первую строку секции. Конечно, следует отталкиваться от типа переменной - которую желаете получить. Не так давно, я "обернул" два класса: Чтение и Запись в *.INI файл. - выдержка-пример (при желании, вложение zip):
Кликните здесь для просмотра всего текста
* Чтение / Запись "*.INI" файла: ReadIni.zip
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 10
|
||
| 05.05.2014, 17:02 [ТС] | ||
|
Спасибо.
Я только начинаю заниматься VS C++ и приведенный Вами пример мне разобрать пока не под силу. Вы написали
Работая в RadStudio и читая описание компонентов, процедура работы с ini файлами прошла легко и быстро. Я удивлен,что WinApi функция не выполняет функционал из своего же описания, и мой мозг отказывается это понять уже вторую неделю. Неужели, чтобы вывести все ключи (или секции) из .ini файла необходим код в 71 строку?
0
|
||
|
68 / 65 / 21
Регистрация: 01.05.2014
Сообщений: 247
|
|
| 05.05.2014, 17:14 | |
|
Зачем в Семьдесят Одну Строку - Обижаете...
"Хотел как лучше, а получилось как всегда..." - из какого-то Юмористического сюжета. Согласен: "вам ленно" просмотреть код, тогда, вот: -----------------------------------[ ваш код ]----------------------------------------- char* out = new char[4096]; String^ outStr; GetPrivateProfileStringA("Section", NULL, NULL, out, 200, (LPCSTR)".\\inifile.ini"); ---------------------------------------| | -----печатайте здесь Имя_Переменной
1
|
|
|
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 10
|
|||||||||
| 06.05.2014, 11:48 [ТС] | |||||||||
Но что то мне подсказывает, что такая вещь, как чтение .ini посредством WinApi реализуется в пару строк. Судя по поиску в интернете, такое ощущение, что я один, кто столкнулся с данной проблемой. Вот единственное, что нашел похожее, но решение там несколько абстрактно
Неужели никто не сможет помочь?
0
|
|||||||||
|
Исследователь
318 / 317 / 24
Регистрация: 06.04.2011
Сообщений: 872
|
||
| 07.05.2014, 13:28 | ||
|
6eH, функция GetPrivateProfileString предназначена для чтения одной строки секции:
Возможно, также будет интересна функция GetPrivateProfileSectionNames.
1
|
||
|
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 10
|
|||||||||||
| 07.05.2014, 17:53 [ТС] | |||||||||||
|
GrayWolf предложенные Вами функции тоже выводили только первый результат, но Ваш ответ натолкнул меня на верное решение.
Вообщем был всего лишь необходим цикл перехода строки в буфере. Выкладываю рабочий код (выводит все секции):
0
|
|||||||||||
|
Исследователь
318 / 317 / 24
Регистрация: 06.04.2011
Сообщений: 872
|
||
| 07.05.2014, 19:01 | ||
|
Впрочем, каким бы ни было решение, главное было "пнуть" человека в нужном направлении
0
|
||
|
25 / 9 / 17
Регистрация: 22.12.2015
Сообщений: 2,097
|
||||||
| 05.02.2017, 22:14 | ||||||
|
у меня выводит много мусора если выводить в секции Европа,ключ Турцию,да его его значение выведеться это Анкара и очень много мусора.
А если просто список всех ключей секции Европы то все ок и без мусора.Что делать? Добавлено через 22 секунды
0
|
||||||
|
25 / 9 / 17
Регистрация: 22.12.2015
Сообщений: 2,097
|
|
| 05.02.2017, 22:15 | |
|
test.zip
это ини файл,я пробовал вместо 4096 ставить 2 и 3 все равно мусор.
0
|
|
|
Исследователь
318 / 317 / 24
Регистрация: 06.04.2011
Сообщений: 872
|
|
| 06.02.2017, 03:28 | |
|
1) Не используйте без крайней на то необходимости завершающие A и W в именах функций;
2) функция GetPrivateProfileString возвращает указатель на строку типа TCHAR, вы используете char* отсюда и ваш "мусор"; 3) старайтесь использовать Unicode, времена ASCII давно ушли. Используйте либо указатель на массив TCHAR, либо выполняйте преобразование из TCHAR в char.
0
|
|
| 06.02.2017, 03:28 | |
|
Помогаю со студенческими работами здесь
11
Бинарное дерево(увеличить все ключи дерева на число k) Узнать все ключи в реестре, которые создала программа
Непонятки с GetPrivateProfileString() Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|