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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 16.03.2010, 17:00   #1
SeRhy
Форумчанин
 
Аватар для SeRhy
 
Регистрация: 19.10.2007
Сообщений: 168
Вопрос Как записать многострочный текст в реестр

Здравстуйте.
Подскажите пожалуйста как записать многосторчный текст в реестр, а точнее текст + переход на новую строку.
Зарание спасибо.
SeRhy вне форума
Старый 16.03.2010, 17:12   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хм...
Я бы этот текст закатал в строку, в которой все символы переноса строки позаменял на другие разделители. Это мне кажется проще будет решить.
I'm learning to live...
Stilet вне форума
Старый 16.03.2010, 17:13   #3
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Гугл помог

Цитата:
Код:
{$R-,T-,H+,X+}

interface

uses Registry, Classes, Windows, Consts, SysUtils;


implementation

procedure WriteStringList(const name: string; list: TStringList);
var

Buffer: Pointer;
BufSize: DWORD;
i, j, k: Integer;
s: string;
p: PChar;
begin

{подготовим буфер к записи}
BufSize := 0;
for i := 0 to list.Count - 1 do
inc(BufSize, Length(list[i]) + 1);
inc(BufSize);
GetMem(Buffer, BufSize);
k := 0;
p := Buffer;
for i := 0 to list.Count - 1 do
begin
s := list[i];
for j := 0 to Length(s) - 1 do
begin
p[k] := s[j + 1];
inc(k);
end;
p[k] := chr(0);
inc(k);
end;
p[k] := chr(0);

{запись в реестр}
if RegSetValueEx(CurrentKey, PChar(name), 0, REG_MULTI_SZ, Buffer,
BufSize) <> ERROR_SUCCESS then
raise ERegistryException.CreateResFmt(@SR egSetDataFailed, [name]);
end;
TwiX вне форума
Старый 16.03.2010, 17:31   #4
SeRhy
Форумчанин
 
Аватар для SeRhy
 
Регистрация: 19.10.2007
Сообщений: 168
По умолчанию

Все зделал но пявляется ощибка "SR - переменная не зарегестрирована"
Менял на SRegSetDataFailed но кричит что незарегистрирована переменная SRegSetDataFailed
SeRhy вне форума
Старый 16.03.2010, 18:14   #5
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Эта строчка тупо возбуждает Exception.
Можно заменить на
Код:
raise Exception.Create('Writing to registry failed');
TwiX вне форума
Старый 16.03.2010, 18:25   #6
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

SeRhy, вам TwiX код то привел, но вот плохо что не полный(он то вроде и полный, но...упущено то, что это было все в модуле). Так вот, точнее теперь смотри вот тут ==> Ссылка
запихиваешь все в модуль (можно и без модуля переделать, то уже смотри сам) и в Uses добавь еще модуль RTLConsts. Сделай так, и все будет работать.
Будь проще и люди к тебе потянутся
spamer вне форума
Старый 16.03.2010, 19:12   #7
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

ТС просил только как записать многострочный текст в реест - я и привел)
А про то, что там класс был унаследован от TRegistry - не знаметил)
Значит @SRegSetDataFailed - в приватной секции была)
TwiX вне форума
Старый 16.03.2010, 19:36   #8
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

А может будешь каждую строчку как отдельный параметр писать? А ещё в отдельном параметре кол-во строк.

strsCount=3
str0="ТС просил только как записать многострочный текст в реест - я и привел)"
str1="А про то, что там класс был унаследован от TRegistry - не знаметил)"
str2="Значит @SRegSetDataFailed - в приватной секции была)"
Altera вне форума
Старый 16.03.2010, 20:02   #9
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

str0="Шутка не удалась"

2. Там было три разных по смыслу предложения - следовательно что? Они должны быть раделены абзацами
TwiX вне форума
Старый 17.03.2010, 05:16   #10
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Цитата:
Сообщение от TwiX Посмотреть сообщение
str0="Шутка не удалась"

2. Там было три разных по смыслу предложения - следовательно что? Они должны быть раделены абзацами
Какая разница. Ты ведь понял что я имел ввиду. А это как раз был многострочный текст.
Altera вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Сохранение параметров в реестр] Как сохранить параметры цвета в реестр. ZARO Общие вопросы Delphi 3 12.03.2010 21:24
как записать в реестр ключ типа dword? betirsolt Общие вопросы Delphi 3 08.02.2010 13:32
FoxPro. Как записать в поле Memo большой текст? zag БД в Delphi 5 30.05.2008 06:10
друзья!!! как записать в реестр мультистроковой параметр??? tetraciclinum+ Общие вопросы Delphi 5 04.11.2006 13:49