Вверх ↑
Этот топик читают: Гость
Ответов: 40
Рейтинг: 0
#1: 2026-04-17 09:58:18 ЛС | профиль | цитата
Здравия! Задача: Имеется ini файл некого приложения, который использует одинаковые названия ключей в секции с разными значениями. Возможно ли штатными инструментами HiAsm читать их и редактировать?
Благодарю!

Думаю можно через работу с текстом, но хотелось бы через элемент "Работа с ini файлами"

Редактировалось 1 раз(а), последний 2026-04-17 10:04:15
карма: 1

0
Ответов: 1093
Рейтинг: 223
#2: 2026-04-17 15:00:38 ЛС | профиль | цитата
DSAnd писал(а):
Имеется ini файл некого приложения, который использует одинаковые названия ключей в секции с разными значениями. Возможно ли штатными инструментами HiAsm читать их и редактировать?

Покажи свой ini- файл, конечно, если в нём нет ничего секретного.
карма: 20

0
Ответов: 40
Рейтинг: 0
#3: 2026-04-17 15:09:58 ЛС | профиль | цитата
Текст ini (для примера):

[XYZ]

ABC=123
ABC=456
ABC=789

Кодировка файла родная: UTF-16 LE (с этим тоже пока закавыка)
карма: 1

0
Ответов: 1093
Рейтинг: 223
#4: 2026-04-17 17:37:43 ЛС | профиль | цитата
DSAnd писал(а):
Кодировка файла родная: UTF-16 LE (с этим тоже пока закавыка)

https://forum.hiasm.com/getfile/40622
С элементом INI это врядли можно сделать. Попробовал через библиотеку - https://github.com/MarioZ/MadMilkman.Ini, но тоже как-то громоздко получается. Проще элементами вкладки "Строки".
карма: 20

0
файлы: 1INI_UTF-16 LE.zip [1.3KB] [65]
Разработчик
Ответов: 26343
Рейтинг: 2149
#5: 2026-04-17 18:21:15 ЛС | профиль | цитата
Gunta писал(а):
С элементом INI это врядли можно сделать

Это под виндой не получится


карма: 23

0
Ответов: 1093
Рейтинг: 223
#6: 2026-04-17 19:41:25 ЛС | профиль | цитата
nesco писал(а):
Это под виндой не получится

Не совсем точно. Вот пример с использованием сторонней DLL
https://forum.hiasm.com/getfile/40623
Нужно всё разархивировать в одну папку. Dll должна быть рядом со схемой.
карма: 20

0
файлы: 1Edit INI file using DLL and PS.zip [19.3KB] [73]
Разработчик
Ответов: 26343
Рейтинг: 2149
#7: 2026-04-17 22:18:56 ЛС | профиль | цитата
Gunta писал(а):
Вот пример с использованием сторонней DLL

Это использование костылей в виде сторонней dll, а не нативный Win API
карма: 23

0
Ответов: 40
Рейтинг: 0
#8: 2026-04-18 01:11:48 ЛС | профиль | цитата
Gunta, nesco, благодарю за ответы. Буду через строки "инишник" редактировать.
карма: 1

0
Ответов: 4675
Рейтинг: 768
#9: 2026-04-19 09:48:40 ЛС | профиль | цитата
Используйте метод doSectionData компонента Ini с ручной выборкой нужного значения.
карма: 26

0
Ответов: 40
Рейтинг: 0
#10: 2026-04-19 11:29:12 ЛС | профиль | цитата
Netspirit, это только чтение.
карма: 1

0
Ответов: 40
Рейтинг: 0
#11: 2026-04-27 13:20:34 ЛС | профиль | цитата
Вроде, как получилось стандартным компонентом "работа с ini" записать ключи вида:

[xyz]
abc=1
abc=2
abc=3
Соединил в строку abc=1\nabc=2\nabc, подал на точку key, а последнее значение "3" на точку value. Единственное неудобство заключается в том, что приходится удалять всю секцию и записывать заново, при этом секция уходит вниз файла. Пробовал одновременно удалять все ключи из секции и записывать в пустую, но программа падает с ошибкой.
Более правильный метод был бы с компонентом StrList, но в нём нет поддержки кодировок. Не помню почему и как на одном из компов этот компонент имел поддержку кодировок (InCharset, OutCharset, OutBOM) всегда обновлялся из офф.репозитория SVN. Но ввиду шаловливых рук, этот компонент был утрачен и заменён на последний с SVN на яндексе, в котором этой фишки нет.

P.S.: Нашёл откуда у меня были эти фишки https://forum.hiasm.com/topic/61538

Редактировалось 2 раз(а), последний 2026-04-27 19:16:17
карма: 1

0
11
Сообщение
...
Прикрепленные файлы
(файлы не залиты)