распознавание текстовой строки как функции
Добавлено: 22.07.2013 01:58:15
Доброго времени суток!
Делаю сканер для проверки появления новых файлов/каталогов по путям, определенных пользователем. До недавнего времени все было просто: путь состоял из пути до конечного каталога + маска файла. Теперь появился ресурс, путь которого заканчивается каталогом, имя которого текущая дата в формате YYYYMMDD. Составные части пути для поиска хранятся в файле sqlite3 (path1 - путь до конечного каталога, mask1 - маска файла, param1 - дополнительный параметр).
В param1 записана "функция" для определения текущей даты (FormatDateTime(YYYYMMDD,Now)\). Естественно, что при сборке пути она считывается как строка и поиск не выполняется. На данный момент решил проблему через CASE, но это значит, что если появится новый параметр, то придется добавлять его в блок CASE'а.
Возможно ли считывать из param1 строку и распознавать ее как функцию?
Делаю сканер для проверки появления новых файлов/каталогов по путям, определенных пользователем. До недавнего времени все было просто: путь состоял из пути до конечного каталога + маска файла. Теперь появился ресурс, путь которого заканчивается каталогом, имя которого текущая дата в формате YYYYMMDD. Составные части пути для поиска хранятся в файле sqlite3 (path1 - путь до конечного каталога, mask1 - маска файла, param1 - дополнительный параметр).
В param1 записана "функция" для определения текущей даты (FormatDateTime(YYYYMMDD,Now)\). Естественно, что при сборке пути она считывается как строка и поиск не выполняется. На данный момент решил проблему через CASE, но это значит, что если появится новый параметр, то придется добавлять его в блок CASE'а.
- Код: Выделить всё
begin
tdfind:= '';
tdfind:= ZQuery1.FieldByName('path1').AsString + '\';
case ZQuery1.FieldByName('param1').AsString of
'FormatDateTime(YYYYMMDD,Now)\':
tdfind:= tdfind + FormatDateTime('YYYYMMDD',Now) + '\';
end;
tdfind:= tdfind + ZQuery1.FieldByName('mask1').AsString;
if FindFirst(UTF8ToSys(tdfind), faAnyFile, result1) = 0
then
begin...
Возможно ли считывать из param1 строку и распознавать ее как функцию?