Содержание материала

 

Code:

type

{©Drkb v.3(2007): www.drkb.ru}

 

TExRegistry = class(TRegistry)

public

   function ReadStrings(const ValueName: String): String;

end;

 

function TExRegistry.ReadStrings(const ValueName: String): String;

var

ValueType : DWORD;

ValueLen  : DWORD;

P, Buffer : PChar;

begin

Result := '';

SetLastError(RegQueryValueEx(CurrentKey, PChar (ValueName), nil,

   @ValueType, nil, @ValueLen));

if GetLastError = ERROR_SUCCESS then

begin

   if ValueType = REG_MULTI_SZ then

   begin

     GetMem(Buffer, ValueLen);

     try

       RegQueryValueEx(CurrentKey, PChar(ValueName), nil, nil, PBYTE(Buffer), @ValueLen);

       P := Buffer;

       while P^ <> #0 do

       begin

         if Result <> '' then

           Result := Result + sLineBreak;

         Result := Result + P;

         Inc(P, lstrlen(P) + 1);

       end;

     finally

       FreeMem (Buffer);

     end;

   end

   else

     raise ERegistryException.Create ('String list expected');

end

else

   raise Exception.Create ('Unable read MULTI_SZ value');

end;

 

 
Автор: Александр (Rouse_) Багель

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить