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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2011, 17:05   #1
darvin232
 
Регистрация: 10.04.2011
Сообщений: 6
По умолчанию Проверка значения в ini файле

Подскажите, пожалуйста.
Мне нужно с помощью if проверить, существует ли значение(текст) в ini файле

[General]
Path=c:\project1.ini <-- есть ли тут текст

Елси существует, то выполнить ...
darvin232 вне форума Ответить с цитированием
Старый 10.04.2011, 17:20   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Проще пареной репы:
Код:
function IniValueDataExists(aIniFile, aIniSection, aIniValue: AnsiString): Boolean;
var
  ini: TIniFile;
  tempS: AnsiString;
begin
  ini := TIniFile.Create(aIniFile);
  try
    if ini.SectionExists(aIniSection) then
    begin
      if ini.ValueExists(aIniSection, aIniValue) then
      begin
        tempS := ini.ReadString(aIniSection, aIniValue, '');
        if Length(tempS) > 0 then
          Result := True
        else
          Result := False;
      end
      else
        Result := False;
    end
    else
      Result := False;
  finally
    FreeAndNil(ini);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  ini: TIniFile;
  myDir, s: string;
begin
  myDir := ExtractFilePath(ParamStr(0));
  s := '';
  ini := TIniFile.Create(myDir + 'cfg.ini');
  try
    ini.WriteString('Main', 'v0', myDir);
    ini.WriteString('Main', 'v1', s);
  finally
    ini.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  myDir: string;
begin
  myDir := ExtractFilePath(ParamStr(0));
  if IniValueDataExists(myDir + 'cfg.ini', 'Main', 'v0') then
    Memo1.Lines.Add('Значение переменной v0 не пустое')
  else
    Memo1.Lines.Add('Значение переменной v0 пустое');
  if IniValueDataExists(myDir + 'cfg.ini', 'Main', 'v1') then
    Memo1.Lines.Add('Значение переменной v1 не пустое')
  else
    Memo1.Lines.Add('Значение переменной v1 пустое');
end;
Человек_Борща вне форума Ответить с цитированием
Старый 10.04.2011, 17:24   #3
darvin232
 
Регистрация: 10.04.2011
Сообщений: 6
По умолчанию

спасибо, работает!!
только я его сократил в пол раза))

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
if IniValueDataExists('d:\p1.ini', 'General', 'PathGame') then
    Memo1.Lines.Add('PathGame не пустой')
  else
    Memo1.Lines.Add('PathGame пустой');
end;

Последний раз редактировалось Stilet; 10.04.2011 в 19:29.
darvin232 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удалить секцию в Ini файле Viten2 Общие вопросы Delphi 6 11.07.2011 18:13
Очистка секции в ini файле Lone Hyena Общие вопросы Delphi 5 04.07.2010 22:21
Непонятная строка в ini файле ZuBy Общие вопросы Delphi 11 11.12.2009 08:59
Пути к файлам в INI файле Shouldercannon Общие вопросы Delphi 1 17.12.2008 18:46
Form1.Caption в ini файле AngelOfDeath Общие вопросы Delphi 1 12.04.2008 10:33