Size: a a a

2020 December 09

СП

Сергей Пятыгин... in Delphi & Lazarus
Renat Suleymanov
Да ладно. Так часто делают. В бытность моей работы инженер-конструктором были у нас расшаренные ресурсы, к которомы имелся доступ с нескольких компьютеров. Причем можно было скопировать себе и работать с файлом, а можно было редактировать прямо на месте. И да, офисные программы действительно создают временный файл и блокируют доступ к файлу для редактирования
С языка сняли. Клиент-сервером пусть ДИТ занимается. Наша задача проста-рассчитал, нарисовал, сохранил.
источник

SB

Sergey Bodrov in Delphi & Lazarus
Задачу блокировки можно решить созданием файла-флага в начале работы и удаление этого файла в конце.
источник

AD

Aleksandr Duduk in Delphi & Lazarus
Сергей Пятыгин
С языка сняли. Клиент-сервером пусть ДИТ занимается. Наша задача проста-рассчитал, нарисовал, сохранил.
Тогда почему на каждом компьютере не хранить отдельно файл, зачем  организовывать многопользовательский доступ?
источник

RS

Renat Suleymanov in Delphi & Lazarus
Sergey Bodrov
Задачу блокировки можно решить созданием файла-флага в начале работы и удаление этого файла в конце.
Ну топик стартер про это и говорил кстати выше
источник

СП

Сергей Пятыгин... in Delphi & Lazarus
Те предлагаете не блокировать файл "расчета", а проверять наличие файла-блокировки. Файл блокировки создавать при открытии файла "расчета"?
источник

RS

Renat Suleymanov in Delphi & Lazarus
Aleksandr Duduk
Тогда почему на каждом компьютере не хранить отдельно файл, зачем  организовывать многопользовательский доступ?
Ну вот к коллеге идет корпусник. И говорит, вот смотри, такие обводы не позволят установить дизель-генератор в кормовой части. не веришь. Вот глянь расчеты: открывают на его компьютере общий ресурс. Тот пытается подрегулировать исходные данные... Нет, не получается.... Ok. Придется менять корпус и перерасчитывать....
Пример, обычный работы в конструкторском бюро. Идти к нужному компьютеру, чтобы что-то показать или посчитать на скорую руку не комильфо
источник

RS

Renat Suleymanov in Delphi & Lazarus
Сергей Пятыгин
Те предлагаете не блокировать файл "расчета", а проверять наличие файла-блокировки. Файл блокировки создавать при открытии файла "расчета"?
Можно и совмещать. Блокировать и создавать временный файл (не забыть уникализировать его имя и поставить в начало ~ и сделать его скрытым)
источник

СП

Сергей Пятыгин... in Delphi & Lazarus
Renat Suleymanov
Ну вот к коллеге идет корпусник. И говорит, вот смотри, такие обводы не позволят установить дизель-генератор в кормовой части. не веришь. Вот глянь расчеты: открывают на его компьютере общий ресурс. Тот пытается подрегулировать исходные данные... Нет, не получается.... Ok. Придется менять корпус и перерасчитывать....
Пример, обычный работы в конструкторском бюро. Идти к нужному компьютеру, чтобы что-то показать или посчитать на скорую руку не комильфо
Да, тем более в эпоху дистанционной работы.
источник

AD

Aleksandr Duduk in Delphi & Lazarus
Renat Suleymanov
Ну вот к коллеге идет корпусник. И говорит, вот смотри, такие обводы не позволят установить дизель-генератор в кормовой части. не веришь. Вот глянь расчеты: открывают на его компьютере общий ресурс. Тот пытается подрегулировать исходные данные... Нет, не получается.... Ok. Придется менять корпус и перерасчитывать....
Пример, обычный работы в конструкторском бюро. Идти к нужному компьютеру, чтобы что-то показать или посчитать на скорую руку не комильфо
Так файл можно и переслать по почте)
источник

СП

Сергей Пятыгин... in Delphi & Lazarus
Renat Suleymanov
Можно и совмещать. Блокировать и создавать временный файл (не забыть уникализировать его имя и поставить в начало ~ и сделать его скрытым)
С ини это так делается?
FFileLock := TFileStream.Create(ProjectFileName, fmOpenReadWrite or fmShareDenyWrite);
IniFile := TMemIniFile.Create(FFileLock);
источник

RS

Renat Suleymanov in Delphi & Lazarus
Aleksandr Duduk
Так файл можно и переслать по почте)
Ну вот ты не знаком с динамикой работы в небольшом конструкторском бюро ) Какая почта? По почте можно переслать окончательные результаты, отчет и т.д.
источник

СП

Сергей Пятыгин... in Delphi & Lazarus
Aleksandr Duduk
Так файл можно и переслать по почте)
Оффтоп: почта уже наверное вчерашний день все таки, есть Teams, Slack..
источник

RS

Renat Suleymanov in Delphi & Lazarus
Сергей Пятыгин
С ини это так делается?
FFileLock := TFileStream.Create(ProjectFileName, fmOpenReadWrite or fmShareDenyWrite);
IniFile := TMemIniFile.Create(FFileLock);
Не знаю. Надо пробовать. Может и можно так. Но я тебе предложил еще один лайфхак. Тупо делать копию файла из TFileStream во временный файл .INI и с ним уже работать, как ты привык работать с TMemIniFile. По окончании работы разблокировать файл заменить его новым сожержимым из временного. Не знаю, может и плохой вариант. Я сходу не скажу.
источник

AD

Aleksandr Duduk in Delphi & Lazarus
Да, с особенностями работы не знаком в конструкторском бюро. Но все же мне кажется что решение Сергей не совсем подходит и можно было сделать более оптимально. Почту я привел как пример, можно воспользоваться и чатом. Хотя хозяин барин
источник

СП

Сергей Пятыгин... in Delphi & Lazarus
Aleksandr Duduk
Да, с особенностями работы не знаком в конструкторском бюро. Но все же мне кажется что решение Сергей не совсем подходит и можно было сделать более оптимально. Почту я привел как пример, можно воспользоваться и чатом. Хотя хозяин барин
Ну для клиент-сервера уже наверное давно есть решения - PDM. Но это уже отдельная история.
источник

СП

Сергей Пятыгин... in Delphi & Lazarus
Renat Suleymanov
Не знаю. Надо пробовать. Может и можно так. Но я тебе предложил еще один лайфхак. Тупо делать копию файла из TFileStream во временный файл .INI и с ним уже работать, как ты привык работать с TMemIniFile. По окончании работы разблокировать файл заменить его новым сожержимым из временного. Не знаю, может и плохой вариант. Я сходу не скажу.
Спасибо, буду тестировать варианты.
источник

RS

Renat Suleymanov in Delphi & Lazarus
Aleksandr Duduk
Да, с особенностями работы не знаком в конструкторском бюро. Но все же мне кажется что решение Сергей не совсем подходит и можно было сделать более оптимально. Почту я привел как пример, можно воспользоваться и чатом. Хотя хозяин барин
Я так понимаю его идея это работа приложения с файлом как с документом, как в классических офисных программах, САПР типа автокад, компас и т.д.
источник

СП

Сергей Пятыгин... in Delphi & Lazarus
Renat Suleymanov
Я так понимаю его идея это работа приложения с файлом как с документом, как в классических офисных программах, САПР типа автокад, компас и т.д.
Верно, КОМПАС также блокирует открытый файл с выводом сообщения, при работе с локальными хранилищами. В PDM ЛОЦМАН работе-это другая история.
источник

AD

Aleksandr Duduk in Delphi & Lazarus
Renat Suleymanov
Я так понимаю его идея это работа приложения с файлом как с документом, как в классических офисных программах, САПР типа автокад, компас и т.д.
Я же говорю - хозяин-барин, он выбирает решение. Если это просто расчеты с исходными данными, которые нужно хранить и получать в определенный момент и разными пользователями - то тут бы я БД выбрал, если хранить какие то промежуточные результаты и лог выполнения программы (исходные данные - результат), то я бы разбил результат выполнения на отдельные файлы
источник

z

zamtmn in Delphi & Lazarus
я все ждал когда начнут бд советовать))
источник