Форум: "Основная";
Текущий архив: 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.008 c