| Библиотека программирование, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
Системные сочетания клавиш Строку в символ и обратно, Преобразование. Выделение текста Принтер, Как задать настройки принтеру ? Про TStringGrid Создание окон, KOL & MCK Как Вы относитесь к курящим девушкам? bpp bitmap'а, Как узнать? Знатоки модемов!Направьте на правильный путь., Состояние тел.линии, откл.модема Как построить 3d график? Базы данных, данные... Excel, документация по работе... Runtime Error, Как убрать проверку компонента Delphi7 и CBuilder6, компонента Delphi7 и CBuilder6 Текстовое сообщение через DCOMconnection как программно сделать Ping Передача данных по сети с помощью OLE объектов Непонятки с динамич.массивами Компонента Delphi Скан-код Создание подобия MessageDlg Распознавание текста, Помогите найти инфу Лезет ошибка, Вопрос Кикнуть досовский процесс, Не убивается и все... Делаю, как пишется в книге,, а всёравно вылетает ошибка... Изменить значок... Установка компонента, Путь к его библиотекам Создание отчетов Сокеы в Дельфи KOL Indy, Конфликт... SMTP Server, создание SMTP сервера. как поменять текущий каталог в OpenDialog?, как поменять текущий каталог в OpenDialo Поиск, в паскале BD, Перенести БД на другой комп. Помогите с функцией Требуется программист по делфи. Временная папка интернета Delphi 5 ofs, Почему ошибка TChart, Динамическое создание Копирование, в паскале Дельфи и базы данных Как прикрепит компонент или форму к нижней границе Помогите с реестром Мужики помогите!!! Про shutdown автозагрузка REG_MULTI_SZ, Как его считать? Контекстный поиск и замена., Подскажите какие функции... Резидент блокировки клавиатуры Компоненты CBuilder И Delphi Как Вы относитесь к курящим девушкам? DBGrid..., как программно поменять опции... Как сделать так что-бы компонент не ругался Как узнать, выбран ли item в DBLookupListBox?, есть свойство типа selected? Колонтитулы в QReport Программа ест память ... Как распечатать переменную типа TBitmap Размер процесса, Как? Как определить размер изображения в файле? Передвинуть курсор в Edit PWideChar & FileMapping Определение времени исполнения проги помогите с таблицой SHDocVw_tlb Малые вопросы Budy, Малые вопросы Budy Автосортировка в DBGridEh JPG Как распечатать переменную типа TBitmap SendMessage |
Платные хостинги Раскрутка сайта Книги по программированию REG_MULTI_SZ, Как его считать?
- может TRegistry подойдет - Всё о TRegisty можно узнать либо из Helpa, либо щёлкнув по нему с нажатой клавишей Ctrl кнопкой мыши, только добавь uses Registry;, там всё описание процедур и типов, жаль без коментариев. - Код uses Types;function RegReadMultiStr(Rkey: HKEY; Key: String; Param: String): String;// Чтение мульти строк из реестра// В случаи ошибки функция возвращает пустую строкуvar r: TRegistry; tmp: array[0..4095] of Char; len, i, n: Integer; tmpStr: String; tmpResult: TStringDynArray;begin Result:= ''; SetLength(tmpResult, 0); r:= TRegistry.Create; n:= 0; try try r.RootKey:= Rkey; r.OpenKeyReadOnly(Key); if not r.ValueExists(Param) then exit; if r.GetDataType(Param) <> rdUnknown then exit; // Не мульти строка r.ReadBinaryData(Param, tmp, SizeOf(tmp)); len:= r.GetDataSize(Param); for i:= 0 to len-2 do begin if tmp[i]<> #0 then tmpStr:= tmpStr + CharStr(tmp[i], 1) else begin SetLength(tmpResult, Length(tmpResult)+1); tmpResult[n]:= tmpStr; Inc(n); tmpStr:= ''; end; end; Result:= DelimitedText(tmpResult); except on ERegistryException do Exit; end; finally FreeAndNil(r); end;end;highlightSyntax('delphizk4ODQ','delphi'); - я б лучше так сделал:Код unit RegistryEx;interfaceuses Windows, Classes, Registry;type TRegistryEx = class(TRegistry) public procedure ReadStrings(const Name: String; List: TStrings); procedure WriteStrings(const Name: String; List: TStrings); end;implementationuses RTLConsts;{ TRegistryEx }procedure TRegistryEx.ReadStrings(const Name: String; List: TStrings);var Data: String; Info: TRegDataInfo; i: Integer;begin if GetDataInfo(Name, Info) then begin if Info.DataSize <> 0 then begin SetLength(Data, Info.DataSize); ReadBinaryData(Name, Pointer(Data)^, Info.DataSize); SetLength(Data, Info.DataSize - 2); for i := 1 to Length(Data) do if Data[i] = #0 then Data[i] := #13; List.Text := Data; end else List.Text := ''; end else List.Text := '';end;procedure TRegistryEx.WriteStrings(const Name: String; List: TStrings);var i: Integer; Data: String;begin Data := ''; for i := 0 to List.Count - 1 do Data := Data + List[i] + #13; if Data = '' then Data := #13#13 else Data := Data + #13; for i := 1 to Length(Data) do if Data[i] = #13 then Data[i] := #0; if RegSetValueEx(CurrentKey, PChar(Name), 0, REG_MULTI_SZ, Pointer(Data), Length(Data)) <> ERROR_SUCCESS then raise ERegistryException.CreateResFmt(@SRegSetDataFailed, [Name]);end;end.highlightSyntax('delphiOTE0NW','delphi'); - И использовал бы так:Код uses RegistryEx;var reg: TRegistryEx;begin reg := TRegistryEx.Create; ... reg.ReadStrings('Value1', Memo1.Lines); ... reg.WriteStrings('Value2', ListBox2.Items); ... reg.Free;end;highlightSyntax('delphiWQwZGI','delphi'); |