Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Хранение данных


Автор: alan86 12.3.2006, 00:51
Хе. Может я задолбал насчет радмина, но как сохранить настройки в реестре и считать их от туда.
ну типа 1-ый клиент его IP, порт по которому подключен и т.д, 2-ой так же.
Может почитать чего посоветуете?
Заранее признателен.

Автор: FRAGNATIC 12.3.2006, 01:47
Код

--------
uses registry;
--------
var RegIni:TRegIniFile;
begin
   {write}
    RegIni:=TRegIniFile.Create('Software');
    RegIni.RootKey:=HKEY_CURRENT_USER;
    RegIni.OpenKey('\Software\Microsoft\Windows\CurrentVersion', true);
    RegIni.WriteString('run','TesT', Application.ExeName);
   {а также все из раздела RegIni.Write* (типа writeinteger)}
    RegIni.Free;

   {read}
    RegIni:=TRegIniFile.Create('Software');
    RegIni.RootKey:=HKEY_CURRENT_USER;
    RegIni.OpenKey('\Software\Microsoft\Windows\CurrentVersion', true);
    MyString:= RegIni.ReadString('run','TesT');
    {а также все из раздела RegIni.Read* (типа readinteger)} 
    RegIni.Free;
  end;

end;

способ 2 (ни как с файлом работать)
Код

procedure TForm1.SaveSets;
var
  settings: TMemoryStream;
  R: TRegistry;
  i,b :integer;
  S: PChar;
  l: word;
  bb: boolean;
begin
   -----------

  settings := TMemoryStream.Create;

-------------


  R := TRegistry.Create;
  R.RootKey := HKEY_CURRENT_USER;
  R.OpenKey('Software\FragSoft\Test\', true);
  settings.Seek(0, soFromBeginning);
  R.WriteBinaryData('settings', settings.Memory^, settings.Size);
  R.Free;

  settings.free;
end;

procedure TForm1.LoadSets;
var
  settings: TMemoryStream;
  R: TRegistry;
  buf: PChar;
  size: integer;
  i,b :integer;
  l: word;
  bb: boolean;
begin
 ------------------------

  R := TRegistry.Create;
  R.RootKey := HKEY_CURRENT_USER;
  R.OpenKey('Software\FragSoft\Test\', true);

  if R.ValueExists('settings') then
  begin
    size := R.GetDataSize('settings');
    buf := GetMemory(size);
    R.ReadBinaryData('settings', buf^, size);

    settings := TMemoryStream.Create;
    settings.Write(buf^, size);
    FreeMemory(buf);
    settings.Seek(0, soFromBeginning);
   ----------------------------------
            FreeMemory(buf)
 ------------------------------
    end;

  ---------------------------

  settings.Free;
  R.Free;

end;

ну ещё можно и через winAPI рабоать с реестром =)

Автор: Yanis 13.3.2006, 10:13
Цитата(FRAGNATIC @ 12.3.2006, 01:47 Найти цитируемый пост)
ну ещё можно и через winAPI рабоать с реестром =)

Без WinAPI вообще нельзя работать с реестром smile

Автор: FRAGNATIC 13.3.2006, 13:51
Цитата(Yanis @ 13.3.2006, 10:13 Найти цитируемый пост)
Без WinAPI вообще нельзя работать с реестром

Да ты что.? smile
Может не будем к словам придератся.
Понятно что я имею ввиду рабоатать на примую можно.!!

Автор: bems 13.3.2006, 13:53
Цитата(Yanis @ 13.3.2006, 10:13 Найти цитируемый пост)
Без WinAPI вообще нельзя работать с реестром

Легко!
Добавлено @ 13:54
smile smile smile

Автор: Yanis 13.3.2006, 14:26
Хотя, что это я к WinAPI привязался, когда програмировать можно и вовсе без компьютера. smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)