Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.09.29;
Скачать: [xml.tar.bz2];

Вниз

Файл конфигурации - переменное число параметров   Найти похожие ветки 

 
Zhouck   (2003-09-17 18:05) [0]

Как создать и обрабатывать файл конфигурации , если в нем будет переменное число параметров? В ini- будет постоянное число, в реестре в принципе можно, но некрасиво и ненадежно...


 
Zacho   (2003-09-17 18:12) [1]

Ну и кто мешает сделать в ini переменное число ?
Или придумать свой формат файла конфигурации ?


 
Skier   (2003-09-17 18:13) [2]


> ? В ini- будет постоянное число

Это почему ?
А параметр ParamCount нельзя записать/считать в/из ini ? :)


 
Zhouck   (2003-09-17 18:18) [3]

Хорошо
На xml можно так

<pre>
<users>
<user name="vasya">
<Privileges>All</Privileges>
</user>
<user name="misha">
<Privileges>Guest</Privileges>
</user>
</users>
</pre>

Как такое сделать с ини ? Чтобы можно было добавлять/удалять ?


 
clickmaker   (2003-09-17 18:20) [4]

[users]
users=vasya,misha,...
[vasya]
Privileges=All
[misha]
Priviliges=Guest
...


 
Sandman25   (2003-09-17 18:20) [5]

[users]
vasya=All
misha=Guest

:)


 
Zacho   (2003-09-17 18:21) [6]


> Zhouck © (17.09.03 18:18) [3]

RTFM TIniFile.Write.. , TIniFile.DeleteKey, TIniFile.EraseSection


 
Zhouck   (2003-09-17 18:24) [7]

Ха-ха
А как я узнаю при старте проги весь список юзеров ?
А если всех юзеров через запятую, то это криво и примитивно


 
Vlad   (2003-09-17 18:28) [8]

>Zhouck © (17.09.03 18:24) [7]
Почему криво и примитивно ?
Храни через любой другой разделитель. Что разобрать строчку слабо ?


 
Skier   (2003-09-17 18:30) [9]

UserCount = N

[User1]
Param = Something
[User2]
Param = Something Else
//..................
[UserN]
Param = Something Else for N


 
Sandman25   (2003-09-17 18:31) [10]

[7] Zhouck © (17.09.03 18:24)

В крайнем случае, можно и так:

users=2
1=vasya
2=misha


 
Zhouck   (2003-09-17 18:36) [11]

Строчки разбирать - не слабо. Разбирали и char* и String

UserCount = N

[User1]
Param = Something
[User2]
Param = Something Else
//..................
[UserN]
Param = Something Else for N

Это вариант. Но опять же, не так , как нужно


 
Skier   (2003-09-17 18:37) [12]


> Но опять же, не так , как нужно

Поясни...


 
Zhouck   (2003-09-17 18:43) [13]

Если кто-то поменяет блокнотом UserCount , мы не найдем всех или зациклимся


 
Skier   (2003-09-17 18:46) [14]

>Zhouck © (17.09.03 18:43)
Железно !
А если посносить всё в реестре ?! Windows это понравиться, как думаешь ?!


 
Sandman25   (2003-09-17 18:48) [15]

[13] Zhouck © (17.09.03 18:43)

А еще кто-то может байты в экзешнике поменять... а потом будет жаловаться, что прога не работает.


 
clickmaker   (2003-09-17 18:55) [16]

> Zhouck © (17.09.03 18:43) [13]

Запретить юзерам пользоваться блокнотом! А вордом - не догадаются :)


 
Andy BitOff   (2003-09-17 19:14) [17]

А веть можно и так, или я чего-то не понимаю
F := TIniFile.Create.....
....
if f.SectionExists("users") then f.ReadSectionValues("users",TStrings);
.....
и уже StringList разбирать


 
Zhouck   (2003-09-17 19:19) [18]

Да что вы все про ини-файлы ? Нет ли других вариантов (в смысле , никто ли не применял)? C XML например


 
Fredericco   (2003-09-17 20:05) [19]

Есть супер формат *.dat
Тело файла:

2
Vasya
Misha
---
All
Guest


var
sl:TStringList;
i,iEx:integer;
RCount,RBegin:integer;
begin
sl:=TStringList.Create;
sl.LoadFromFile("name.dat");
if sl.Count<=0 then ShowMessage("ERR 1") else begin
try
ShowMessage("Count users ==> "+IntToStr(StrToInt(sl[0])));
except
ShowMessage("ERR 2");
sl.Free;
Halt; // :-)
end;
RBegin:=0;
RCount:=0;
iEx:=1;
for i:= 1 to Min(StrToInt(sl[0]),sl.Count-1) do begin
if sl[i]="@@@" then begin
iEx:=i-1;
Break;
end else begin
Inc(RCount);
iEx:=i;
ShowMessage("You have user " +sl[i]);
end;
end;
if iEx=1 then begin
ShowMessage("ERR 3");
sl.Free;
Halt; // ;-)
end;
for i:=iEx+2 to iEx+2+RCount do begin
Inc(RBegin);
if RBegin>RCount then Break;
if (sl.Count-1)>=i then begin
if sl[i]="" then sl[i]:="Guest";
ShowMessage("User "+sl[rBegin]+" have "+sl[i]+" Privileges");
end else ShowMessage("User "+sl[rBegin]+" have Guest Privileges");
end;
end;
sl.Free;


 
Fredericco   (2003-09-17 20:18) [20]

Сорри там разделители не "---", а "@@@"!



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.09.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.09 c
14-96439
SiJack
2003-09-04 14:25
2003.09.29
Ура мне купят лицензионный Delphi !!!


3-96083
Filat
2003-09-09 20:50
2003.09.29
IBTable.Locate - чем можно заменить?


3-96078
savva
2003-09-09 16:59
2003.09.29
Как удалить BDE?


14-96426
VID
2003-09-10 15:49
2003.09.29
Siemens SL45i: Ваши мнения.


1-96290
Opera
2003-09-17 01:48
2003.09.29
Key Down





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский