Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.10;
Скачать: CL | DM;

Вниз

Значения в .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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.014 c
1-30853
Ascan
2002-05-28 18:40
2002.06.10
Отключить оптимизацию кода в Delphi


6-30951
vilka
2002-03-31 14:50
2002.06.10
Как определить IP по URL


3-30708
AndyM
2002-05-16 15:05
2002.06.10
Динамическое изменение данных на всех клиентах


1-30877
kserg@ukr.net
2002-05-29 18:03
2002.06.10
Как отправить на


1-30789
den12
2002-05-31 09:18
2002.06.10
Как получить свойства объекта