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

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

Автор Тема: Глобальный модуль и работа с текстовым файлом  (Прочитано 1707 раз)

Серега

  • Старожил
  • ****
  • Сообщений: 254
    • Просмотр профиля
Добрый день!
Значит ситуация следующая.
Открыли текстовый файл.
Код
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_... . Получаем небольшую (или большую) "простыню" кода.
Понимаем что в принципе код повторяется и можно использовать глобальный модуль.
Вот вопрос и возникает можно ли вообще использовать операции с файлом в глобальном модуле?
Можете пояснить.
« Изменён: 15 Августа 2024, 15:54:43 от Simple_Scada »

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1306
    • Просмотр профиля
Здравствуйте.

Да, для сокращения повторяющегося кода можно использовать глобальный модуль. Например, можно создать в глобальном модуле свою процедуру или функцию, перенести в нее однотипный код работы с файлом и при вызове передавать в нее необходимые параметры (имя файла, путь и т.д.).
Код: (delphi)
byteSetting_1.Value := StrToInt(setting);
rPosition_1.Value := StrToFloat(position);
Здесь для надежности можно использовать функции преобразования типов с условием, например: StrToIntDef, StrToInt64Def, StrToFloatDef. Это позволит избежать ошибок в случае, если в строке могут содержаться не только числовые значения.

Серега

  • Старожил
  • ****
  • Сообщений: 254
    • Просмотр профиля
Спасибо за пояснения!
Будем экспериментировать.