Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.47 MB
Время: 0.008 c
1-71113
poligalov1
2002-08-12 08:17
2002.08.22
вопрос


3-71034
shubin
2002-08-01 14:25
2002.08.22
Нужна тямная сеточка


1-71162
Иван
2002-08-09 11:38
2002.08.22
Анализ строки


6-71294
Денис Радченко
2002-06-10 11:33
2002.08.22
Подсщет интернет трафика


1-71208
dimanster
2002-08-10 18:45
2002.08.22
Как делать разделители в системе меню?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский