Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
AleXp 04.03.2006 21:53
Глянь класс который чем-то похожим занимается. Можно взять за основу - переделать надо будет @_search_string[]################################################################################################### # Класс . Предназначается для работы с файлами вида *.ini ################################################################################################### @CLASS iniFile ################################################################################################### # Поля класса: #-------------------------------------------------------------------------------------------------- # $pathToFileIni Путь к файлу *.ini #================================================================================================== # Методы класса: #-------------------------------------------------------------------------------------------------- # create[] Создает или инициализирует файл. # get[] Возвращает значение параметра. # getall[] Возвращает значение всех параметров из файла. # put[] Задает значение параметра. # del[] Удаляет значение параметра. # list[] Возвращает список всех параметров. ################################################################################################### @create[name;path][_string;_now] ################################################################################################### $pathToFileIni[^path.trim[end;/]/${name}.p] ^if(-f "$pathToFileIni"){ }{ $_now[^date::now[]] $_string[# ${pathToFileIni}. Created ^_now.sql-string[]^#0A] ^try{ ^_string.save[$pathToFileIni] }{ $exception.handled(true) } } #end @create[] @get[param][_tab] ################################################################################################### $_tab[^_search_string[^_get_string[];$param]] ^if(^_tab.count[] != 0){$result[$_tab.4]}{$result[]} #end @get[] @getall[][_str;_tab] ################################################################################################### $result[] $_str[^_get_string[]] $_tab[^_str.match[^^([ \x01]*)(\w+)([ \x01]*=[ \x01]*)([^^\s\x01]+)(.*\n)][mg]] ^if(def $_tab){ ^_tab.menu{ ^process[$caller.self]{^$[$_tab.2][$_tab.4]} } } #end @getall[] @put[param;value][_str;_tab] ################################################################################################### ^file:lock[ini.lock]{ $_str[^_get_string[]] $_tab[^_search_string[$_str;$param]] ^if(^_tab.count[] != 0){ $_str[^_str.match[${_tab.1}${_tab.2}${_tab.3}${_tab.4}${_tab.5}][]{${_tab.1}${_tab.2}${_tab.3}${value}${_tab.5}}] }{ $_str[${_str}${param} = ${value}^#0A] } ^_put_string[$_str] } $result[] #end @put[] @del[param][_str;_tab] ################################################################################################### ^file:lock[ini.lock]{ $_str[^_get_string[]] $_tab[^_search_string[$_str;$param]] ^if(^_tab.count[] != 0){ $_str[^_str.match[${_tab.1}${_tab.2}${_tab.3}${_tab.4}${_tab.5}][]{}] ^_put_string[$_str] } } $result[] #end @del[] @list[][_file] ################################################################################################### $_file[^file::load[text;$pathToFileIni]] $result[$_file.text] #end @list[] @_get_string[][_file] ################################################################################################### $_file[^file::load[text;$pathToFileIni]] $result[^_file.text.match[\t][g]{^#01}] #end @_get_string[] @_put_string[str] ################################################################################################### $str[^str.match[\x01][g]{^#09}] ^str.save[$pathToFileIni] $result[] #end @_put_string[] @_search_string[str;param] ################################################################################################### $result[^str.match[^^([ \x01]*)($param)([ \x01]*=[ \x01]*)(\S+)(.*\n)][m]] #end @_search_string[]