| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
AleXp 06.11.2005 12:07
Что-то сделал:@CLASS
ini
#end def CLASS ini
@create[name;path][_string;_now;_date]
###################################################################################################
^if(-f "${path}/${name}.ini"){
# $self._file[^file::load[text;${path}/${name}.ini]]
$_file[^file::load[text;${path}/${name}.ini]]
$result[$ini:CLASS]
}{
$_now[^date::now[]]
$_date[^_now.sql-string[]]
$_string[# ${name}.ini. Created $_date^#0A^[Default^]^#0A]
^try{
^_string.save[${path}/${name}.ini]
# $self._file[^file::load[text;${path}/${name}.ini]]
$_file[^file::load[text;${path}/${name}.ini]]
$result[$ini:CLASS]
}{
$exception.handled(1)
$result[]
}
}
#end @create[]
@get[param;section][_str;_tab;i;_begin;_end]
###################################################################################################
$result[]
^if(!def $section){$section[Default]}
$_str[$_file.text]
$_str[^_str.match[[ \t]*(#|//|\\\\).*\n][gm]{^#0a}]
$_str[^_str.match[[ \t]+][gm]{ }]
$_str[^_str.match[[ \t]+^$][gm]{}]
$_str[^_str.match[^^[ \t]+][gm]{}]
$_str[^_str.match[^^\n][gm]{}]
$_str[^_str.match[ ?= ?][gm]{^#09}]
^_str.save[tmp.str]
$_tab[^table::load[nameless][tmp.str]]
^file:delete[tmp.str]
^if(^_tab.locate[0;^#5b${section}^#5d]){
$_begin(^_tab.offset[])
^if(^_tab.locate(^_tab.0.match[^^\x5b][m])[$.offset($_begin+1)]){$_end(^_tab.offset[]-2)}{$_end($_tab-2)}
^_tab.offset[set]($_begin)
^for[i]($_begin;$_end){
^_tab.offset[cur](1)
^if($_tab.0 eq "$param"){$result[$_tab.1]}
}
}
#end @get[]Парсит файлы вида: # c.ini. Created 2005-11-05 19:27:23
# dfklg dfg;sdgn;d
[Default] # основная секция
param = 6
\\ //d gh dfgh fhdfghdfghdfghfh
\\ gfh fgh fgh fh sfhs
par88 = deffgh gfhdfgh dfh
par2 = 888 // f hkgf
[sec1]
parm5 = 99
param4 = Параметр искомый
s dfgsd = 7
[sec2]
egfeg = 77
dfgd = jj
par88 = uuu
dfgsdg = hjig kk
dfg = 88
[sec3]
[sec4]
sdvfsdn = 77345.nml
dfg dfg= erg egr
sfgadsfg = e rg qe
sdfgefgf = aegagsd
asgsg=asgsdfgad