Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];




Вниз

Реестр 


vlv   (2001-12-27 20:49) [0]

Нет ли какой-нить готовой процедурки(компонента), сохраняющей реестр в файд?



SergVlad   (2001-12-28 00:26) [1]

Реестр это тоже файл.
Если надо, то копируй в новый.



OlegY   (2001-12-28 12:08) [2]

Вот функция сохранения раздела и подразделов в TStrings str.
Она сделана для CBuilder, но её очень просто переписать для Delphi:


bool SaveSubKey(TRegistry *reg, AnsiString key, TStrings *str)
{
byte data[50 * 1024]; //50k
TStrings *Keys = new TStringList();
TStrings *Values = new TStringList();

reg->OpenKey(key,false);
str->Add("");
str->Add("[HKEY_LOCAL_MACHINE" + key + AnsiString("]"));


reg->GetValueNames(Values);
reg->GetKeyNames(Keys);
for(int i = 0; i < Values->Count; i++)
{
TRegDataType type = reg->GetDataType(Values->Strings[i]);
int size = reg->GetDataSize(Values->Strings[i]);
AnsiString value = "\"" + Values->Strings[i] + AnsiString("\"=");
switch(type)
{
case rdUnknown:
case rdString:
case rdExpandString:
value += "\"" + reg->ReadString(Values->Strings[i]) + AnsiString("\"");
break;
case rdInteger:
value += "dword:" + IntToHex(reg->ReadInteger(Values->Strings[i]),8);
break;
case rdBinary:
reg->ReadBinaryData(Values->Strings[i],data,sizeof(data));
value += "hex:";
for(int j = 0; j < size; j++)
{
if(j) value += ",";
value += IntToHex(data[j],2);
}
break;
}

str->Add(value);
}

for(int i = 0; i < Keys->Count; i++)
{
AnsiString Subkey = key;
Subkey += "\\";
Subkey += Keys->Strings[i];
SaveSubKey(reg,Subkey,str); //Рекурсивный вызов самой себя
}

delete Keys;
delete Values;
return true;
}




Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.043 c
3-90728           Dima Kopachev         2002-02-27 20:37  2002.03.28  
Объект


1-90848           lipskiy               2002-03-16 18:54  2002.03.28  
Memo: как погасить курсор и прокрутить программно.


1-90961           Turalyon              2002-03-14 10:00  2002.03.28  
Динамические массивы как параметры


1-90968           Tadeush               2002-03-14 12:58  2002.03.28  
Focus


1-90953           novom                 2002-03-13 15:06  2002.03.28  
Преобразовать в стандартный формат.