@Zen Вот код кубиков, просто скопируйте его и вставьте в редакторе БАС в функцию onApplicationStart. В глобальной переменной DIR всегда будет корень проекта
BAS:[{"name":"","code":"/*Dat:eyJzIjoic2NyaXB0X3N0YXRzX3Byb2plY3RfcGF0aCIsInYiOjEsImYiOltdLCJ1dyI6IjAiLCJ1dCI6IjAiLCJ1dG8iOiIwIiwidW0iOiIwIiwiZCI6W3siaWQiOiJTYXZlIiwidHlwZSI6InZhciIsImRhdGEiOiJQUk9KRUNUX1BBVEgifV19*/\nVAR_PROJECT_PATH = project_path()","internal_label_id":"","dat_precomputed":null,"search_precomputed":null,"code_precomputed":null,"parentid":0,"id":981188489,"donotexecuteduringrecord":false,"is_selected":false,"color":"","is_fold":false,"fd":""},{"name":"","code":"/*Dat:eyJzIjoiUmVnZXhwRmlyc3QiLCJ2IjoxLCJmIjpbXSwidXciOiIwIiwidXQiOiIwIiwidXRvIjoiMCIsInVtIjoiMCIsImQiOlt7ImlkIjoiVmFsdWUiLCJ0eXBlIjoiY29uc3RyIiwiZGF0YSI6IltbUFJPSkVDVF9QQVRIXV0iLCJjbGFzcyI6InN0cmluZyJ9LHsiaWQiOiJSZWdleHAiLCJ0eXBlIjoiY29uc3RyIiwiZGF0YSI6IiheLispKD86KD89XFwvYXBwc3JlbW90ZSl8KD89XFwvYXBwc2xvY2FsKXwoPzooPzwhZW5naW5lKVxcL1teL10rJCkpIiwiY2xhc3MiOiJzdHJpbmcifSx7ImlkIjoiUmVzdWx0IiwidHlwZSI6InZhciIsImRhdGEiOiJESVIifSx7ImlkIjoiUmVzdWx0QWxsIiwidHlwZSI6InZhciIsImRhdGEiOiJBTExfTUFUQ0gifV19*/\nvar regexp_result = native(\"regexp\", \"first\", JSON.stringify({text: VAR_PROJECT_PATH,regexp:\"(^.+)(?:(?=\\u005c/appsremote)|(?=\\u005c/appslocal)|(?:(?\\u003c!engine)\\u005c/[^/]+$))\"}))\nif(regexp_result.length == 0)\nregexp_result = []\nelse\nregexp_result = JSON.parse(regexp_result)\nVAR_ALL_MATCH = regexp_result.pop()\nif(typeof(VAR_ALL_MATCH) == 'undefined' || !VAR_ALL_MATCH)\nVAR_ALL_MATCH = \"\"\nVAR_DIR = regexp_result[0]\nif(typeof(VAR_DIR) == 'undefined' || !VAR_DIR)\nVAR_DIR = \"\"\nif(regexp_result.length == 0)\n{\nVAR_DIR = VAR_ALL_MATCH\n}","internal_label_id":"","dat_precomputed":null,"search_precomputed":null,"code_precomputed":null,"parentid":0,"id":123829951,"donotexecuteduringrecord":false,"is_selected":false,"color":"","is_fold":false,"fd":""},{"name":"","code":"/*Dat:eyJzIjoiZ2xvYmFsc2V0IiwidiI6MSwiZiI6W10sInV3IjoiMCIsInV0IjoiMCIsInV0byI6IjAiLCJ1bSI6IjAiLCJkIjpbeyJpZCI6Ik5hbWUiLCJ0eXBlIjoidmFyIiwiZGF0YSI6IkRJUiJ9LHsiaWQiOiJWYWx1ZSIsInR5cGUiOiJjb25zdHIiLCJkYXRhIjoiW1tESVJdXSIsImNsYXNzIjoic3RyaW5nIn1dfQ==*/\nvar val = JSON.stringify(VAR_DIR);\nPSet(\"basglobal\", \"DIR\", val)","internal_label_id":"","dat_precomputed":null,"search_precomputed":null,"code_precomputed":null,"parentid":0,"id":851150913,"donotexecuteduringrecord":false,"is_selected":false,"color":"","is_fold":false,"fd":""}]Получение пути до проекта.
-
@Canine said in Получение пути до проекта.:
Как в скомпилированном скрипте получить путь корневой папки?
Сохраняется в appslocal\SID.....\engine
Пока идея парсинг регуляркой и замена на пустоту.http://community.bablosoft.com/topic/692/относительные-пути/11
http://community.bablosoft.com/topic/1618/макрос-для-пути-до-раб-папки-шаблона/8
http://community.bablosoft.com/topic/1433/непонятка-с-путями-к-скрипту-в-скомпилированых-ботах -
@Canine вот костыль на скорую руку:
VAR_PROJECT_DIR = project_path().slice(0, project_path().lastIndexOf((project_path().indexOf("/appslocal/SID") != -1) ? "/appslocal/SID" : "/") + 1);
Просто раньше не было/appslocal/SID. Технически, он то тебе выдает корень скрипта, просто ты ожидаешь другое. -
@out Спасибо, я так и понял, что переменная project_path стала выдавать не тот путь, который был раньше.