Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: vyacheslav от 10 Января 2019, 08:37:41

Название: Перенос проекта на другой сервер
Отправлено: vyacheslav от 10 Января 2019, 08:37:41
Добрый день, подскажите пожалуйста возникла проблема! Нужно перенести весь проект на другой сервер, в проекте используется огромное множество скриптов с указанием пути к файлу на сервере для его открытия. После переноса путь к файлу поменяется, как мне быстро изменить все скрипты? или есть еще какая нибудь возможность изменить путь..?
Название: Re: Перенос проекта на другой сервер
Отправлено: Simple-Scada от 11 Января 2019, 03:26:10
Здравствуйте.

Правильнее всего - не использовать полный путь при указании имени файла. Вместо этого нужно либо использовать относительный путь (http://phpfaq.ru/newbie/paths), либо хранить свои файлы в папке с проектом (лучший вариант) и получать путь к папке с проектом через функцию GetProjectPath (https://simple-scada.com/help/script/getprojectpath.html), тогда при переносе проекта проблем не возникнет.
Также можно создать переменную типа string с начальным значением указывающим путь к файлу и использовать её значение в скриптах при обращении к файлу. Тогда при переносе проекта достаточно было бы изменить значение переменной на новый путь. В Вашей ситуации нужно либо изменить пути описанными выше способами, либо проходить по скриптам и в каждом из них вписывать новый полный путь для нового ПК.
Название: Re: Перенос проекта на другой сервер
Отправлено: vyacheslav от 11 Января 2019, 08:18:21
хранить свои файлы в папке с проектом (лучший вариант) и получать путь к папке с проектом через функцию GetProjectPath (https://simple-scada.com/help/script/getprojectpath.html), тогда при переносе проекта проблем не возникнет.

Да этот вариант предпочтительней. подскажите как правильно будет выглядеть код?
допустим у меня папка которую нужно открыть находиться \Simple-Scada 2\Projects\serv3\files\soderzanie_fotos\Ленина,33

используя
Код: (delphi)
var
  Path: string;
begin
  Path := GetProjectPath; // получить путь к папке проекта Simple-Scada на сервере.
end.
и в дальнейшем нужно будет этот скрипт прописывать каждому объекту, меняя только папку? все равно все переделывать, ну это будет с защитой на будущее. верно?
Название: Re: Перенос проекта на другой сервер
Отправлено: Simple_Scada от 11 Января 2019, 21:19:49
Например, если Ваш файл имеет имя "MyTextFile.txt", то пример скрипта будет таким:
Код: (delphi)
begin
  { открыть файл для записи либо создать если файл не существует }
  TextFileOpen('MyTextFile.txt', GetProjectPath + 'files\soderzanie_fotos\Ленина,33\', fomRewrite, fcpUTF8);
end.
Аналогично нужно будет исправить пути во всех остальных скриптах.
Название: Re: Перенос проекта на другой сервер
Отправлено: vyacheslav от 14 Января 2019, 06:42:02
Например, если Ваш файл имеет имя "MyTextFile.txt"

У меня два вида это либо папка(просто открыть папку) или exel файл. как будет выглядеть тот или иной код?
Название: Re: Перенос проекта на другой сервер
Отправлено: Simple-Scada от 14 Января 2019, 17:34:00
Если вы хотите открывать не текстовые файлы, а документ в Excel, или папку в проводнике, то нужно просто запускать их как приложение, через RunApplication (примеры в статье) (https://simple-scada.com/help/script/runapp.html).
Код: (delphi)
RunApplication(GetClientName, 'excel.exe', 'Здесь путь к файлу, который нужно открыть в Excel'); // открываем документ Excel
RunApplication(GetClientName, 'explorer.exe', 'D:\');  // открываем диск D в проводнике Windows
Название: Re: Перенос проекта на другой сервер
Отправлено: vyacheslav от 15 Января 2019, 08:33:31
Я это понял, Спасибо большое. просто теперь путь нужно будет писать к примеру такой: GetProjectPath + 'files\soderzanie_fotos\Ленина,33\   верно?
Название: Re: Перенос проекта на другой сервер
Отправлено: Simple-Scada от 15 Января 2019, 12:36:59
Да, верно, при указании путей в любых скриптах можно использовать либо абсолютный, либо относительный путь, по желанию.