Skip to content

Simple Micromine file parser. Saving data to text file.

Notifications You must be signed in to change notification settings

ShadowInDeed/test_micromine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Парсер файлов Micromine

Простой парсер. Загружает расширенный файл данных Micromine, сохраняет информацию из него (кроме метаданных), и сохраняет в выбранный файл в текстовом виде, с выбранным разделителем. При сохранении в CSV, в начало добавляется строка с указанием разделителя, данные экранируются. При сохранении в другие форматы, если разделитель это такой же символ, как разделитель дробей, данные экранируются (не всегда - см. ниже).

Можно запускать с параметрами:

  • Параметр 1: файл данных, который нужно загрузить
  • Параметр 2: имя файла, в который будет сохранён результат
  • Параметр 3: разделитель.

Если хотя бы один параметр не указан, будет выведена информация о том, как использовать параметры. И далее будут запрошены имена файлов и разделитель. При любом запросе ввода, программа будет требовать нажать Enter после каждого важного сообщения. Это "ручной режим". Вне этого режима лишний ввод не требуется: можно просто передать параметры, и файл будет молча загружен и сохранён, либо выдано сообщение об ошибке.

При этом, если расширение выходного файла (параметр 2) не CSV, а выбранный разделитель представляет собой символ, который используется как стандартный десятичный разделитель (обычно запятая), и:

  • программа находится в ручном режиме: будет запрошено, нужно ли экранировать данные
  • программа находится не в ручном режиме: экранирование будет включено

При возникновении ошибок, сообщается, почему и примерно где они произошли.

Типы полей

В тестовом файле (table.str) есть три типа полей, поддерживаются только они.

  • R - вещественные числа. Загружаются как данные. Сохраняются в Double, если возможно. Если нет (последняя запись в тестовом файле) - в Single. Дробная часть отсекается, как указано в настройках поля.
  • N - натуральные числа.
  • C - символьные данные.

Считывание данных

Данные загружаются из буфера, независимо от их типа. Загружается массив байт, и из него загружаются данные - строка таблицы - после загрузки всех полей. В описании полей указано, какого размера записи, потому симолы переноса строки (0D 0A (13 10)) игнорируются.

Файл сохраняется в ANSI, поскольку в этой кодировке представлены текстовые данные в файле, и с ней хорошо открывается через Excel после сохранения. В метаданных указана кодировка ibm-5347_P100-1998, её назначение выходит за рамки задачи.

Поставленная задача

Реализовать разбор файла на Pascal или Delphi (на выбор, реализовано на Delphi). На входе - приложенный файл На выходе - данные в виде таблицы с возможностью выбора разделителя и сохранения в форматы txt, csv.

About

Simple Micromine file parser. Saving data to text file.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages