Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Перенос проекта на другой сервер  (Прочитано 5056 раз)

vyacheslav

  • Новичок
  • *
  • Сообщений: 40
    • Просмотр профиля
Перенос проекта на другой сервер
« : 10 Января 2019, 08:37:41 »
Добрый день, подскажите пожалуйста возникла проблема! Нужно перенести весь проект на другой сервер, в проекте используется огромное множество скриптов с указанием пути к файлу на сервере для его открытия. После переноса путь к файлу поменяется, как мне быстро изменить все скрипты? или есть еще какая нибудь возможность изменить путь..?

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3215
    • Просмотр профиля
    • Simple-Scada
Re: Перенос проекта на другой сервер
« Ответ #1 : 11 Января 2019, 03:26:10 »
Здравствуйте.

Правильнее всего - не использовать полный путь при указании имени файла. Вместо этого нужно либо использовать относительный путь, либо хранить свои файлы в папке с проектом (лучший вариант) и получать путь к папке с проектом через функцию GetProjectPath, тогда при переносе проекта проблем не возникнет.
Также можно создать переменную типа string с начальным значением указывающим путь к файлу и использовать её значение в скриптах при обращении к файлу. Тогда при переносе проекта достаточно было бы изменить значение переменной на новый путь. В Вашей ситуации нужно либо изменить пути описанными выше способами, либо проходить по скриптам и в каждом из них вписывать новый полный путь для нового ПК.

vyacheslav

  • Новичок
  • *
  • Сообщений: 40
    • Просмотр профиля
Re: Перенос проекта на другой сервер
« Ответ #2 : 11 Января 2019, 08:18:21 »
хранить свои файлы в папке с проектом (лучший вариант) и получать путь к папке с проектом через функцию GetProjectPath, тогда при переносе проекта проблем не возникнет.

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

используя
Код: (delphi)
var
  Path: string;
begin
  Path := GetProjectPath; // получить путь к папке проекта Simple-Scada на сервере.
end.
и в дальнейшем нужно будет этот скрипт прописывать каждому объекту, меняя только папку? все равно все переделывать, ну это будет с защитой на будущее. верно?
« Изменён: 11 Января 2019, 20:57:11 от Simple_Scada »

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1407
    • Просмотр профиля
Re: Перенос проекта на другой сервер
« Ответ #3 : 11 Января 2019, 21:19:49 »
Например, если Ваш файл имеет имя "MyTextFile.txt", то пример скрипта будет таким:
Код: (delphi)
begin
  { открыть файл для записи либо создать если файл не существует }
  TextFileOpen('MyTextFile.txt', GetProjectPath + 'files\soderzanie_fotos\Ленина,33\', fomRewrite, fcpUTF8);
end.
Аналогично нужно будет исправить пути во всех остальных скриптах.
« Изменён: 14 Января 2019, 17:34:39 от Simple-Scada »

vyacheslav

  • Новичок
  • *
  • Сообщений: 40
    • Просмотр профиля
Re: Перенос проекта на другой сервер
« Ответ #4 : 14 Января 2019, 06:42:02 »
Например, если Ваш файл имеет имя "MyTextFile.txt"

У меня два вида это либо папка(просто открыть папку) или exel файл. как будет выглядеть тот или иной код?

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3215
    • Просмотр профиля
    • Simple-Scada
Re: Перенос проекта на другой сервер
« Ответ #5 : 14 Января 2019, 17:34:00 »
Если вы хотите открывать не текстовые файлы, а документ в Excel, или папку в проводнике, то нужно просто запускать их как приложение, через RunApplication (примеры в статье).
Код: (delphi)
RunApplication(GetClientName, 'excel.exe', 'Здесь путь к файлу, который нужно открыть в Excel'); // открываем документ Excel
RunApplication(GetClientName, 'explorer.exe', 'D:\');  // открываем диск D в проводнике Windows

vyacheslav

  • Новичок
  • *
  • Сообщений: 40
    • Просмотр профиля
Re: Перенос проекта на другой сервер
« Ответ #6 : 15 Января 2019, 08:33:31 »
Я это понял, Спасибо большое. просто теперь путь нужно будет писать к примеру такой: GetProjectPath + 'files\soderzanie_fotos\Ленина,33\   верно?
« Изменён: 15 Января 2019, 12:37:04 от Simple-Scada »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3215
    • Просмотр профиля
    • Simple-Scada
Re: Перенос проекта на другой сервер
« Ответ #7 : 15 Января 2019, 12:36:59 »
Да, верно, при указании путей в любых скриптах можно использовать либо абсолютный, либо относительный путь, по желанию.