Форум: "Основная";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];
Вниз
Проверка существования строки в INI файле... Найти похожие ветки
← →
V.Turecky (2002-08-11 18:29) [0]Здравствуйте. Не подскажите, как организовать проверку существования строки в INI файле?
Я делал следующим образом, но это почему-то не работает. Ошибок никаких нет, просто проверка не выполняется. Я закоментировал неработающие строки.
procedure DeleteSystemIni;
var
s: string;
begin
IniFile:=TIniFile.Create(WindDir+"\system.ini");
try
// if s = IniFile.ReadString("386Enh","MessageBackColor",s) then
IniFile.DeleteKey("386Enh","MessageBackColor");
// if s = IniFile.ReadString("386Enh","MessageTextColor",s) then
IniFile.DeleteKey("386Enh","MessageTextColor");
finally
IniFile.Free;
end;
end;
← →
Anatoly Podgoretsky (2002-08-11 18:57) [1]S вообще никак не инциализировано, поэтому сравнение с ней неправомерно и опасно. Во вторых не стоит использовать S как Default параметр, заменить на константу, например "ReadError" или просто ""
← →
V.Turecky (2002-08-11 19:20) [2]2Anatoly Podgoretsky
То есть так:
if "" = IniFile.ReadString("386Enh","MessageBackColor", "") then
IniFile.DeleteKey("386Enh","MessageBackColor");
А может можно просто проверить существование параметра -"MessageBackColor" - а не значения? Если можно то как?
← →
Anatoly Podgoretsky (2002-08-11 19:26) [3]Нет надо сравнивать с тем содержимом, которое ты ожидаешь там увидеть. Может тебе стоит именно это объяснить?
← →
V.Turecky (2002-08-11 19:34) [4]Дело в том, что значение меняеться, поэтому сравнивать с заранее установленным значением нельзя.
← →
Anatoly Podgoretsky (2002-08-11 19:50) [5]А объяснить, что именно хочешь сделать не желаешь?
← →
V.Turecky (2002-08-11 19:54) [6]Нужно проверить: есть ли строка MessageBackColor (секция 386Enh) в INI файле. Если есть - удалить её.
← →
Anatoly Podgoretsky (2002-08-11 19:55) [7]ValueExists
← →
V.Turecky (2002-08-11 20:00) [8]Спасибо. А то я чего-то начал значение параметра проверять вместо того, что просто проверить существование самого параметра. Бывает...
← →
TTCustomDelphiMaster (2002-08-11 20:19) [9]V.Turecky (11.08.02 19:34)
:
> А может можно просто проверить существование параметра - "MessageBackColor"
> - а не значения? Если можно то как?
Retrieves a string value from an INI file.
function ReadString(const Section, Ident, Default: String): String; override;
Description
Call ReadString to read a string value from an INI file. Section identifies the section in the file that contains the desired key. Ident is the name of the key from which to retrieve the value. Default is the string value to return if the:
Section does not exist.
Key does not exist.
Data value for the key is not assigned.
Расшифровываю для тех кто в бронепоезде.
Третий параметр присваивается резульрату функции если:
Отсутствует раздел
Отсутствует ключ
Не присвоено значение ключу.
Отсьда вывод ЕСЛИ ПАРАМЕТРА (ключа) НЕ СУЩЕСТВУЕТ, ТО ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ МЕТОДА TIniFile.ReadString РАВНО Default.
← →
Ученик (2002-08-11 23:59) [10]TIniFile.ValueExists
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c