![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TRegIniFile.Read(Write)Integer [D7, Win2k]
Bobby © (2005-09-02 11:05:00)Всем добрый день!
TRegIniFile.Read(Write)Integer
А внутри этих методов читает и пишет строку.
И если надо прочитать DWORD он все равно пытается читать строку и ругается на тип.
Стало быть, если сам пишешь и читаешь, то такое дело пройдет, (сам запишешь и прочитаешь строку) если читаешь другие ключи то беда.
Что это за безобразие?
Плохиш (2005-09-02 13:41:00) [1]
> Bobby (02.09.05 12:13) [3]
> Это Borland всюду подставляет строки. А кто его просит?
> Нелогично.
ini-файлы являются текстовыми файлами, информация из текстовых файлов читается построчно. Целые числа при чтении/записи в текстовый файл должны быть преобразованы из/в строку. Так в чём "нелогично"?
Digitman (2005-09-02 13:41:00) [2]
> Borland всюду подставляет строки. А кто его просит? Нелогично
с чего бы нелогично-то ?
ты работаешь с TReg IniFile, который работает искл-но с файлами в формате *.ini, которые всю жизнь были текстовыми и в которых никаких DWORD'ов и прочей бинарной лабуды и в помине не было ..
> если надо прочитать DWORD он все равно пытается читать строку
> и ругается на тип
а что ему еще пытаться читать ? в ini-файле кроме текста больше ничего нет ...
пусть ini-файл содержит след.строки
[SomeSection]
SomeIntegerValue=1234
когда ты вызываешь
SomeDwordValue := RegIniFile.ReadInteger('SomeSection', 'SomeIntegerValue', 0)
Борланд находит секцию SomeSection, в этой секции находит строку-параметр SomeIntegerValue, считывает текст, идущий за знаком равенства и пытается преобразовать ожидаемое строковое представление Integer-значения в само Integer-значение
если преобразование возможно, Борланд записывает в SomeDwordValue результат преобразования, в противном случае (например, если параметр SomeIntegerValue=галиматья) возбудит упомянутое тобой исключение
Игорь Шевченко (2005-09-02 13:30:00) [3]
> Повозможности реестром лучше вообще не пользоваться
Всякий овощ приносит пользу, будучи употреблен надлежащим образом в надлежащее время.
Не стоит бездумно повторять чужие глупости.
alpet (2005-09-02 13:17:00) [4][3] Bobby (02.09.05 12:13)
Повозможности реестром лучше вообще не пользоваться. MS поняла какую она ошибку в его реализации допустила, и теперь рекомендует настройки программ хранить в папке Documents and Settings\User\Application Data\AppName
Bobby (2005-09-02 12:13:00) [5]Спасибо всем. Тема снята. Надо пользоваться TRegistry.
Я-то как раз пытаюсь прочитать методом ReadInteger тип DWORD. Это Borland всюду подставляет строки. А кто его просит? Нелогично.
Плохиш (2005-09-02 11:16:00) [6]Удалено модератором
Примечание: Выражения выбираем, не в пивной. За повторением последует чтение
Reindeer Moss Eater (2005-09-02 11:13:00) [7]function GetDataType(const ValueName: String): TRegDataType;