Ввод, сохранение в текстовый файл и визуализация данных в среде Lazarus (язык pascal)
В данной статье рассмотрим решение основных задач, встречаемых в практике при разработке прикладной программы.
Типовые задачи:
1. Ввести некие данные;
2. Посчитать период времени от начала измерений;
3. Визуализировать их в форме графика;
4. Сохранение в текстовый файл;
5. Загрузка созданного файла и использование этих данных.
Сделано в последней на данный момент версии Lazarus 2.0.8 (в других вервиях возможны незначительное изменения)
Задачей будет ввод одного числового параметра в форму, отображение его на графике в зависимости от текущего времени. Сохранение происходит при закрытии программы, а загрузка — при открытии.
Вначале необходимо создать пустой проект и настроить его в меню Проект -> Параметры проекта.
Сохранить проект в отдельной папке: Проект -> Сохранить проект как…
На форму поместить следующие элементы:
1. TLabeledEdit (из вкладки Additional)
2. TButton (из вкладки Standart)
3. TChаrt (из вкладки Chart)
Должно получиться так: (Специально не изменялись названия имен компонентов и текст внутри, хотя это рекомендуется в настоящем проекте)

Далее нужно создать серию для визуализации: Правой кнопкой мыши по графику -> Редактор диаграммы -> Добавить -> График

Теперь нужно создать обработку событий в исходном коде программы.
Понадобятся три процедуры:
1. Инициализации procedure TForm1.FormShow(Sender: TObject);
В инспекторе объектов выбрать Form1 -> вкладка События -> OnShow (нажать …) Функция автоматически создается средой
2. Деинициализация procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
В инспекторе объектов выбрать Form1 -> вкладка События -> OnClose (нажать …) Функция автоматически создается средой
3. Обработка ввода (нажатия на кнопку) procedure TForm1.Button1Click(Sender: TObject);
На форме совершить двойное нажатие на кнопку Button1
Получаем следующий шаблон в разделе implementation
Задаем хранилище данных в объекте TStrings, для этого в разделе var дописываем объявление переменной Data:TStringList.
Теперь необходимо принять протокол сохранения информации. Например, пусть в базе данных хранится дата и время ввода числа в текстовом виде, а через разделитель «;» — само число с плавающей точкой (но разделитель целой и дробной частей будет запятая).
Т.е. формат такой: ДД.ММ.ГГГГ ЧЧ.ММ.СС;ЧИСЛО
Программа будет преобразовывать дату и время в метку времени, затем в миллисекунды, а затем в минуты. Из каждого нового измерения будет вычитаться первое измерение. Таким образом, отсчет времени будет от нуля минут.
Задаем алгоритм инициализации:
Задаем алгоритм деинициализации:
Задаем алгоритм обработки ввода:

После закрытия программы в папке появится файл data.csv, содержимое которого можно увидеть в Блокноте:
Здесь указывается дата, время с точностью до секунд и через разделитель ; введенное число. Обратите внимание, что целая и дробная часть числа разделяется запятой.
Его можно открыть в обычном текстовом редакторе (типа Блокнот) или в редакторе электронных таблиц (типа Excel).
При открытии программы, график должен опять появиться со введенными значениями!
В качестве дополнения:
Также может понадобиться удалять записи из базы (и графика).
Для этого можно добавить еще одну кнопку и поле ввода номера измерения , а также воспользоваться следующими функциями:
Data.Delete( i ); // удаляет строку с номером i (начиная от 0)
Chart1LineSeries1.Delete( i ); // удаляет i-тый элемент в серии на графике
StrToIntDef(Edit1.Text,-1); // Взять введенный текст из поля Edit1 и перевести его в целое число. Если это не число — возвратить -1 (для проверки ввода)
Для проверки выхода за диапазон, можно использовать:
Chart1LineSeries1.Count; // возвратит количество элементов в серии на графике.
Data.Count; // возвратит количество строк-записей
Можно удалять только последнюю запись и тогда поле для ввода не потребуется:
Data.Delete( Data.Count-1 );
Chart1LineSeries1.Delete( Chart1LineSeries1.Count-1 );
При возникновении вопросов, пишите в комментариях здесь или в сообществе ВК!
Как создать файл в TEXT из Delphi / C++Builder / Lazarus?
Файл формата TXT хранит в себе текстовые документы, информация в которых организована в виде строк. В современных системах строки разделяются разделителями строк, в прошлом же применялось хранение строк в виде записей постоянной или переменной длины. Иногда конец текстового файла, особенно если в файловой системе не хранится информация о размере файла, также отмечается одним или более специальными знаками, известными как маркеры конца файла. Важно отметить, текстовой файл может содержать как форматированный, так и неформатированный текст (иногда свойства плотности-жирности-наклонности шрифта регулируется специальными esc-последовательностями — управляющими символами).
Сегодня мы привыкли, что практически к любому символу может применяться форматирование шрифта, элементов начертания, а также определенных размеров по пользовательским предпочтениям. Существуют и более специализированные форматы, в которые входят XML, PHP, CSV и CHM, в их структуру заложен рассматриваемый тип файла TXT в качестве основы.
Открыть файл TXT можно не только на компьютере, но и на разнообразных мобильных телефонах, смартфонах, планшетах и специальных ридерах. Работать с Text File можно на всевозможных версиях платформ Microsoft Windows, Mac OS, Linux, iOS, Android и Windows Mobile.
Чтобы открыть TXT, большинство пользователей системы Майкрософт используют штатный Блокнот или популярный программный комплекс Microsoft Office, а вот пользователи Mac OS используют стандартную утилиту TextEditor.
Для чего нам может быть нужен “просто текст”? Мощные высокопродуктивные печатающие устройства в банках, например, по сей день печатают “обычный текст” (да, форматированный — но текст). Да и с точки зрения компактности хранения информации без дополнительного сжатия с ним вряд ли что сравнится. Корпоративный сектор любит “обычный TXT”.
Создаём TEXT в Delphi без единой строчки кода!
Прежде всего сборка проекта, после внедрение FastReport c компонентом “экспорт в Text file”, реализовываем отчёт, запускаем, нажимаем в предпросмотре “сохранить” и вызываем экспорт из предпросмотра (ниже покажу, как реализовать запись в TEXT с помощью кода Delphi). Появляется окошко настроек экспорта в TEXT.


Какие страницы нашего документа отправить в Excel, диапазон или только определённые страницы.
Настройки экспорта – переносить ли из отчёта разрывы страниц, делать ли рамку для отчета , добавлять ли пустые строки (после каждой строки отчета), использование OEM кодировки (по умолчанию используется Windows кодировка).
Как и всегда можно указать, куда отправить TEXT-файл (локально в файл, на электронную почту, FTP или поместить в облако).
Открыть после экспорта – результирующий файл будет открыт сразу же после экспорта программой, которая стоит по умолчанию для открытия TEXT-документов (Блокнот, TextEditor).
Код для сохранения в RTF сразу из Delphi / Lazarus
| Сохранение в TXT |
Теперь мы умеем сохранять сложные документы в обычный TXT-файл! Кстати, это не единственный способ делать сложные, но целиком TXT-документы. Обратите внимание — при выборе в дизайнере отчётов FastReport File — New… (именно с многоточием) появится окно выбора “что именно новое делать хотите”.

Выбираем “Dot-Matrix Report” — и перейдём в режим создания исключительно TXT-отчёта. Но подробнее об этом в другой раз.
Как создать файл в лазарусе
Регистрация на форуме тут, о проблемах пишите сюда — alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите восстановить пароль
| Поиск по форуму |
| Расширенный поиск |
| К странице. |

Открываем файл, читаем его, если встретили знак препинания счетчик = счетчик + 1, выводим счетчик
= Delphi -> примеров полно. Используйте условие if<
| выводим счетчик |
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке — https://slurm.club/3MeqNEk