Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.04.2011, 12:25
basov basov вне форума
Прохожий
 
Регистрация: 28.04.2011
Сообщения: 12
Репутация: 9
По умолчанию Запись Dword в реестр

У меня возникла следующая проблема
Я пытаюсь записать параметр типа DWORD в реестр, а он у меня упорно записывается как строка.
Даю команду:
и так
Код:
FIniFile.WriteInteger('Default', 'Present', 1);
и вот так
Код:
FIniFile.WriteInteger('Default', 'Present', dword(00000001));
а в результате в реестре всё одно получаю
Код:
Present   REG_SZ   1
В чем ошибка?
Что неправильно?
Ответить с цитированием
  #2  
Старый 28.04.2011, 13:04
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

А зачем через FIniFile? Есть стандартный компонент для работы с реестром (кажется TRegistry или че-то в этом духе). И, в конце-концов, есть WinAPI функции для реестра.
А IniFile вообще текстовый, туда и будет писаться текст, если считать реестр инишкой.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 28.04.2011, 13:06
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

В объекте. FIniFile как я понял у тебя TRegIniFile, а он только строки записывает. Юзай TRegistry.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #4  
Старый 28.04.2011, 13:45
basov basov вне форума
Прохожий
 
Регистрация: 28.04.2011
Сообщения: 12
Репутация: 9
Хорошо

Цитата:
Сообщение от Bargest
А зачем через FIniFile? ...
А IniFile вообще текстовый, туда и будет писаться текст, если считать реестр инишкой.
Цитата:
Сообщение от Aristarh Dark
В объекте. FIniFile как я понял у тебя TRegIniFile, а он только строки записывает. Юзай TRegistry.
Огромное спасибо!
Заработало так как надо.
Ответить с цитированием
  #5  
Старый 28.04.2011, 14:16
basov basov вне форума
Прохожий
 
Регистрация: 28.04.2011
Сообщения: 12
Репутация: 9
Вопрос Еще один вопрос

Как мне записать в реестр параметр типа String длинной более 255 символов?
Ответить с цитированием
  #6  
Старый 28.04.2011, 14:33
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

И что мешает?
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #7  
Старый 28.04.2011, 14:40
basov basov вне форума
Прохожий
 
Регистрация: 28.04.2011
Сообщения: 12
Репутация: 9
По умолчанию

Цитата:
Сообщение от Aristarh Dark
И что мешает?
Мешает компилятор. Ругается
String literals may have at most 255 elements
Ответить с цитированием
  #8  
Старый 28.04.2011, 14:54
Janom Janom вне форума
Начинающий
 
Регистрация: 04.02.2011
Адрес: Москва
Сообщения: 148
Версия Delphi: 7
Репутация: 133
По умолчанию

Код:
procedure TForm1.FormCreate(Sender: TObject);
Var S1:String;
    S2:String;
begin
S1:='qwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwert';
S2:='qwertqwertqwertqwertqwer'+'tqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwertqwert';
end;
первое выдает ошибку второе нет хотя строки одинаковые, за исключением того что вторая как буд-то из двух строк склеена;
вот от этого и отталкивайся;
Ответить с цитированием
  #9  
Старый 28.04.2011, 15:02
basov basov вне форума
Прохожий
 
Регистрация: 28.04.2011
Сообщения: 12
Репутация: 9
По умолчанию

Спасибо!Помогло.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:52.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025