Новости | 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