Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: Серега от 13 Августа 2024, 16:13:31

Название: Глобальный модуль и работа с текстовым файлом
Отправлено: Серега от 13 Августа 2024, 16:13:31
Добрый день!
Значит ситуация следующая.
Открыли текстовый файл.
Код
TextFileOpen(nameFileTxt, namePath, fomReset, fcpUTF8);
Есть набор простых действий:
Код
txtLineFile := TextFileReadLn;
setting := Copy(txtLineFile, 1, 8);
setting := Trim(setting);

byteSetting_1.Value := StrToInt(setting); 

txtLineFile := TextFileReadLn;
position := Copy(txtLineFile, 9, 8);
position := Trim(position);

rPosition_1.Value := StrToFloat(position);
Далее повтор для необходимого количества byteSetting_... и rPosition_... . Получаем небольшую (или большую) "простыню" кода.
Понимаем что в принципе код повторяется и можно использовать глобальный модуль.
Вот вопрос и возникает можно ли вообще использовать операции с файлом в глобальном модуле?
Можете пояснить.
Название: Re: Глобальный модуль и работа с текстовым файлом
Отправлено: Simple_Scada от 15 Августа 2024, 16:34:50
Здравствуйте.

Да, для сокращения повторяющегося кода можно использовать глобальный модуль (https://simple-scada.com/help/script/globalmodule.html). Например, можно создать в глобальном модуле свою процедуру или функцию, перенести в нее однотипный код работы с файлом и при вызове передавать в нее необходимые параметры (имя файла, путь и т.д.).
Код: (delphi)
byteSetting_1.Value := StrToInt(setting);
rPosition_1.Value := StrToFloat(position);
Здесь для надежности можно использовать функции преобразования типов с условием, например: StrToIntDef (https://simple-scada.com/help/script/strtointdef.html), StrToInt64Def (https://simple-scada.com/help/script/strtoint64def.html), StrToFloatDef (https://simple-scada.com/help/script/strtofloatdef.html). Это позволит избежать ошибок в случае, если в строке могут содержаться не только числовые значения.
Название: Re: Глобальный модуль и работа с текстовым файлом
Отправлено: Серега от 15 Августа 2024, 17:02:31
Спасибо за пояснения!
Будем экспериментировать.