Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.08.2008, 22:44   #1
komex
Пользователь
 
Регистрация: 16.12.2006
Сообщений: 82
По умолчанию ReadBinaryData

Здравствуйте! Хочу считать данные из реестра типа rdBinary. Вот фрагмент кода:
Код:
var
  reg: TRegistry;
  List: TStringList;
  i, j, sz: Word;
  toWrite, str: string;
  buf: array of byte;
  info: TRegDataInfo;
begin
List := TStringList.Create;
reg := TRegistry.Create;
reg.RootKey := HKEY_CURRENT_USER;
try
  reg.OpenKey(Path, false);// Path - передается в параметрах процедуры
  reg.GetValueNames(List);
  if List.Count > 0 then begin
    for i := 0 to List.Count - 1 do begin
      reg.GetDataInfo(List[i], info);
      case info.RegData of
        rdBinary: begin
          sz := info.DataSize;
          SetLength(buf, sz);
          try
          reg.ReadBinaryData(List[i], buf[0], sz);
          except
           ShowMessage('Error:'+#10+Path);
          end;
          str := '';
          if sz > 0 then begin
          for j := 0 to sz - 1 do
            str := str + trim(Format('%2x',[buf[j]]))+' ';
          str := trim(str);
          end;
Некоторые значения считываются без проблем, а на некоторых вылетает ошибка: Raised exception class ERegistryException with message 'Invalid data type for "UserFile"'.
Я посмотрел с помощью regedit что там лежит. Вроде ничего особенного: параметр "UserFile" типа REG_BINARY. Не пойму даже от чего это зависит - вроде все тоже самое. Если кто сталкивался с этим, подскажите, плз!

P.S. На форуме искал, вроде никто такое проблемы не поднимал...

Последний раз редактировалось komex; 02.08.2008 в 22:47.
komex вне форума Ответить с цитированием
Старый 03.08.2008, 16:00   #2
komex
Пользователь
 
Регистрация: 16.12.2006
Сообщений: 82
По умолчанию

Хм. Никто не сталкивался что ли?
komex вне форума Ответить с цитированием
Старый 03.08.2008, 18:27   #3
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Сообщение

Странно, у меня читает нормально, посмотрите мой вариант во вложении:
Вложения
Тип файла: rar Бинарный ключ реестра, чтение.rar (6.1 Кб, 183 просмотров)
Alter вне форума Ответить с цитированием
Старый 03.08.2008, 19:37   #4
komex
Пользователь
 
Регистрация: 16.12.2006
Сообщений: 82
Хорошо

Цитата:
Сообщение от Alter Посмотреть сообщение
Странно, у меня читает нормально, посмотрите мой вариант во вложении:
О! Спасибо большое! Только я не понял, из-за чего твой код работает, а мой не всегда? Может из-за типов?
komex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц