Не создается INI-файл

Рейтинг: 0Ответов: 1Опубликовано: 24.11.2014

Скажите, в чем может быть проблема? Где моя ошибка?

Руководствуясь, http://code-code.narod.ru/art/ini.html , я сделал все, как указано там. А именно:

  1. Создал проект.
  2. В uses добавил модуль IniFiles.
  3. Далее объявил глобальную переменную IniFile: TIniFile;.
  4. Ну и сделал так, чтобы при нажатии на кнопку Button1 создавался ini-файл:

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      IniFile:=TIniFile.Create('D:\test\settings.ini');
    end;
    

Ошибок или предупреждений при компиляции нету.

Ответы

▲ 4Принят

Это рабочий пример из моего проекта. В ini хранятся настройки подключения к базе MySql. Попробуй так, все это разметив в коде событие нажатия кнопки. Файл будет создан там, откуда запущена прога.

Var
  Ini : TIniFile;
Begin
  Ini := nil;
  try
  Ini := TIniFile.Create(ExtractFileDir(Application.ExeName)+'\settings.ini');
  Ini.WriteString('mysql','basa',BaseName);
  Ini.WriteString('mysql','login',BaseLogin);
  Ini.WriteString('mysql','pass',BasePass);
  Ini.WriteString('mysql','host',BaseAddress);
  Ini.WriteString('any','prz',Punkt);
  Ini.WriteString('any','rewrite',ReWriteIni);
  Ini.Free;
  Except
   ShowMessage('Не удается сохранить настройки в файл : '+

Ini.FileName); end;

Сегодня сяду набросаю нормальный пример статьи. Смотри поже на myshinobi.ru. Если что не пойдет, напиши здесь же.

Обновление

Вы вместо переменных BaseName,BaseLogin указали значения? Так как переменные пустые, то по умолчанию файл пустой, поэтому может и не создает, как отмечалось выше в комментарии... Потому как он просто не может сохранить пустоту.

Чтобы не быть голословным, могу приложить сорцы. Напиши мыло, куда скинуть. Или вот смотри, поробуй вот так:

 Var
  Ini : TIniFile;
Begin
  Ini := nil;
  try
  Ini := TIniFile.Create(ExtractFileDir(Application.ExeName)+'\settings.ini');
  Ini.WriteString('mysql','basa','sdfsdf');
  Ini.WriteString('mysql','login','sdfsdf');
  Ini.WriteString('mysql','pass','asdadas');
  Ini.WriteString('mysql','host','Ddsafdsfs');

  Ini.Free;
  Except
   ShowMessage('Не удается сохранить настройки в файл : '+
Ini.FileName); end;

У меня отлично все отработало. Результат:

basa=sdfsdf
login=sdfsdf
pass=asdadas
host=Ddsafdsfs