Форум: "Потрепаться";
Текущий архив: 2002.06.10;
Скачать: [xml.tar.bz2];
ВнизЗначения в .INI файлах Найти похожие ветки
← →
Чужой (2002-04-22 11:27) [0]Как мы знаем, .INI файлы, присваивают значения какому-либо параметру - 0 или 1. Можно ли сделать так, чтобы присваивались, другие значения, например, 3, 4 и т.д. Если да, то как?
← →
gek (2002-04-22 11:31) [1]Я что-то не совсем понял, ну а как же writestring, writeinteger ?
Честно говоря что-то не припомню, чтобы у меня string, 1 или 0 записывался
← →
Чужой (2002-04-22 11:35) [2]Покажите мне свой исходничОк - чтение и запись.
← →
Андрей Сенченко (2002-04-22 11:37) [3]По-моему Вы чего-то недопонимаете или не правильно объясняете.
INI-файлы - это файлы, содержащие информацию в виде,структурированном следующим образом:
[ БЛОК 1 ]
ПАРАМЕТР1 = ЗНАЧЕНИЕ1
Собственно в поле "значение может содержаться все, что угодно
Пример ( вполне реальный ):
[SYSTEM]
CLACASE="ABCDEFGHIJKLMNOPQRSTUVWXYZАБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ","abcdefghijklmnopqrstuvwxyzабвгдежзиклмнопрстуфхцчшщъыьэюя"
CLAVM=XMS,.,64,3,4
CLATMP=c:\TEMP
CLAVGA=VGA256
CLASTOP=0
CLABREAK=OFF
← →
Андрей Сенченко (2002-04-22 11:49) [4]Вот паример из реальной программы:
ЧТЕНИЕ
// Читаем основной файл инициализации.
IniFile := TIniFile.Create(MainDir+ProgrammName+".ini");
ServCheckTime := IniFile.ReadInteger("MAIN","TimerServInterval",60);
WorkCheckTime := IniFile.ReadInteger("MAIN","TimerWorkInterval",20);
ServMagPath := IniFile.ReadString("MAIN","ServMagPath","C:\") + TmpFileName;
ServShopsPath := IniFile.ReadString("MAIN","ServShopsPath","C:\") + TmpFileName;
pathRARfile := IniFile.ReadString("EXTERNAL","pathRARfile","C:\");
СОХРАНЕНИЕ
// Перепрошиваем файл инициализации
IniFile.WriteInteger("MAIN","TimerServInterval",ServCheckTime);
IniFile.WriteInteger("MAIN","TimerWorkInterval",WorkCheckTime);
IniFile.WriteString("MAIN","ServMagPath",ServMagPath);
IniFile.WriteString("MAIN","ServShopsPath",ServShopsPath);
IniFile.WriteString("EXTERNAL","pathRARfile",pathRARfile);
← →
Чужой (2002-04-22 11:50) [5]Все я прекрасно понимаю.
Я использую .INI файл для хранения текущих настроек моей проги.
Настройки записуються так, как я рассказал Выше - 1/0 и по-другому не хотят. Т.е, например, отмечен CheckBox - 1, не отмечен -0.
Пожалуйста, покажите код, которым Вы пользуютесь.
← →
gek (2002-04-22 11:54) [6]Ёшки-матрёшки
Ну а какие еще значения могут быть у CheckBox
0-false 1-true
Также и Writebool или 1 или 0
← →
Чужой (2002-04-22 11:57) [7]>gek ©
Так изменить их нельзя, Ёшки-матрёшки ?
← →
Андрей Сенченко (2002-04-22 12:00) [8]Гмы. Попробуйте записать в IniFile.ReadBool значение "4" - что получите ? Правильно RunTime error.
Дык зачем же хранить в INI-шке значение, которое заведомо не подходит элементу ?
← →
Андрей Сенченко (2002-04-22 12:04) [9]>> Чужой (22.04.02 11:57)
>> Так изменить их нельзя, Ёшки-матрёшки ?
Ёшки-матершки ! :::))) А зачем менять на то, что вышибет Вашу программу по RunTime ?
← →
ShaggyDoc (2002-04-22 12:58) [10]1 или ноль для логических пишет конкретный штатный TIniFile.
Но бывают и другие варианты.
У меня, например, для совместимости с разными программами, есть варианты значений "1", "0" ,"Да", "Нет", "Yes", "Ага" и так далее. Внутри, разумеется, все читается как строка, а потом перевод в логическое значение.
← →
Чужой (2002-04-22 13:09) [11]> ShaggyDoc ©
Как реализовать такой вариант? Как?
← →
gek (2002-04-22 13:18) [12]Использовать WriteString и все
← →
Чужой (2002-04-22 13:21) [13]> gek ©
> Использовать WriteString и все
Как подставить свое значение? А то я не бум-бум.
← →
gek (2002-04-22 13:25) [14]var
s:string;
begin
if checkBox1.Checked then
s:="Check_Ok"
else
s:="Check_No";
fIni.WriteString("CHECKS","CHECK1",s);
считываем
s:=fIni.WriteString("CHECKS","CHECK1","Check_No"");
checkBox1.Checked:=s = "Check_Ok";
Ну теперь понятно ?
← →
Чужой (2002-04-25 15:41) [15]> gek
Вот это считывание компилятору не ндравится:
s:=fIni.WriteString("CHECKS","CHECK1","Check_No"");
checkBox1.Checked:=s = "Check_Ok";
← →
Song (2002-04-25 15:46) [16]В Д3 такая хрень не прокатит. Пишите полностью:
With CheckBox1 Do IF S="Check_Ok" then Checked:=True else Checked:=False;
← →
Игорь Шевченко (2002-04-25 15:51) [17]День добрый,
И давно считывание происходит по вызову функции WriteString ???
Может быть, имелось в виду ReadString ?
С уважением,
← →
Чужой (2002-04-25 16:27) [18]> Игорь Шевченко ©
Точно. А и внимания не обратил, слепо доверяя советам.
← →
Anatoly Podgoretsky (2002-04-25 16:48) [19]Зачем только писать как строку? Есть же специально методы для работы с логическими значениями.
← →
Derr (2002-05-07 11:25) [20]> gek
>считываем
>s:=fIni.WriteString("CHECKS","CHECK1","Check_No"");
это круто !
← →
VID (2002-05-07 12:00) [21]TO Чужой: А чего ты извращаешься ? Чем обычный Bool-тип в ini-файлах не устраивает ? Хочешь что бы польователи имели возможность непосредственного редактирования ini-файла, и писали в логических параметрах "Хочу/Нехочу" ? :)))
← →
limon (2002-05-07 15:52) [22]> VID © (07.05.02 12:00)
Да нет, ему ж 4 надо было записать.
А это из области Хочу/Могу/Не могу/Может быть/Не хочу и т.д. :)
← →
VID (2002-05-07 20:16) [23]to limon: cool:)
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2002.06.10;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.009 c