«Синтаксис» Выделите файл flatfile

Я googled и посмотрел и исследовал, но кажется, что большинство редакторов настраиваемых синтаксических определений подсветки основаны на ключевых словах и т. Д. Мне нужен тот, который основан на столбцах и строках, в основном что-то, чтобы выделить разные поля в плоском файле.

Это должно быть сложнее, чем одна строка подходит для всех, однако существует несколько разных «типов» строк.

  • Инструмент для выделения и комментирования текста на веб-сайтах?
  • Как выделить точки данных в диаграмме рассеяния в excel?
  • Пример показан ниже

    A9999000055555 333333 55554444422222210102009000000333333 B44444555550000 B44444555550000 B44444555550000 B44444555550000 C9999 0004 

    За исключением «0004» (# из записей B) и «10102009» (дата) все остальные порядковые номера будут действительными альфа-числами, представляющими разные поля ввода пользователя. Первая буква обычно обозначается как тип линии.

    Цель этого вопроса – позволить людям проверить «правильность» формата файлов. Как правило, эти файлы обычно создаются автоматическим способом, но изменяются бизнес-правила, и старые программы мэйнфреймов должны быть обновлены (и то, что заканчивается, не очень красиво). Поэтому идея состоит в том, чтобы дать тем, кто создает эти файлы, возможность дважды проверить себя, что файл соответствует формату. Я не намерен для ЛЮБОЙ проверки бизнес-правил здесь, чисто формат.

  • Как выделить точки данных в диаграмме рассеяния в excel?
  • В bash, как мне избежать восклицательного знака?
  • Инструмент для выделения и комментирования текста на веб-сайтах?
  • 9 Solutions collect form web for “«Синтаксис» Выделите файл flatfile”

    Вы можете посмотреть RecordEditor RecordEditor, это не текстовый редактор (он отображает данные в таблице). Он также имеет один дисплей записи и другие доступные виды.

    По умолчанию выбирается макет записи, но есть «предпочтительный макет», который отображает каждую запись, используя правильный макет для записи.

    Это позволяет вам визуально проверять файл

    С помощью RecordEditor вы можете отобразить файл в таблице (следующий с предпочтительной опцией

    Отображение таблицы RecordEditor

    Вы также можете отображать в выделенном текстовом виде ( View >>>> Text View (Highlight Fields) )

    Просмотр текстового редактора с выделенными полями

    Вы также можете комбинировать, здесь текущая запись также отображается в формате таблицы справа:

    Текстовый редактор Просмотр с выделенными полями и просмотр с одной записью


    В качестве альтернативы RecordEditor имеет опцию macro. Ты мог

    1. Используйте встроенные макросы ViewForEachRecordType.js или HeaderDetailFooterTabs.js (отсутствует в некоторых версиях), чтобы отобразить каждый тип записи на отдельной вкладке
    2. Напишите свой собственный (возможно, адаптированный из ViewForEachRecordType.js )

    Запуск ViewForEachRecordType.js

    Запуск макроса

    Это создаст отдельную вкладку для каждого типа записи в файле:

    Выход из ViewForEachRecordType.js


    Другой возможностью может быть Textplorer , я сам не пробовал, но похоже, что он выделит поля

    Вы можете написать скрипт, чтобы добавить теги HTML, чтобы сделать раскраску. Sed (работает в строках) и awk (работает с столбцами) может помочь, особенно на linux. Или скрипт perl. Вы можете использовать регулярные выражения для сопоставления шаблонов.

    Вам также придется добавить минимальный HTML-код, чтобы преобразовать его в HTML-файл (теги заголовка и тела).

    Вим! Начните с инструкций по изменению подсветки синтаксиса и пройдите оттуда. Вот что я думаю, вы говорите:

    • Если строка начинается с «A», она будет иметь 12 символов; пространство; Шесть символов; Некоторые пробелы; Много символов
    • Если линия начинается с «B», она будет содержать 14 символов;
    • Если строка начинается с «C», она будет иметь 4 символа; Некоторые пробелы; 4 символа

    Таким образом, вы можете определенно определить свои правила подсветки на основе этих требований.

    Я спросил о том, какое намеренное использование такой утилиты будет и на основе пары ключевых слов («просмотреть и проверить перед отправкой»), вы в основном хотите сделать следующее:

    1. Убедитесь, что файл находится в стандартном формате с правильным количеством столбцов (и строк, возможно)
    2. Дайте некоторую статистику, например, общее количество записей, общее количество проданных товаров, диапазон дат, представленных в файле, и т. Д. И т. Д.
    3. Сохраните файл на центральный сервер или в зону ожидания для последующей загрузки.

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

    Способ сделать это? У вас есть по существу 2 варианта: a) написать файл-парсер самостоятельно в Java, C # или C ++ (вздрагивать), чтобы дать «предварительный просмотр» данных, содержащихся в файлах. Или b) нанять члена или недавнего выпускника (сначала проверьте портфель!) Классов компьютерного программирования, чтобы закодировать парсер для вас. Или племянник босса, или бойкий друг вашей сестры и т. Д. Я не знаю, какой опыт или интерес у вас есть в такой ситуации, ни что-либо о вашем прошлом, поэтому, пожалуйста, простите меня, если я делаю необоснованные предположения. Как и во многих других вещах в мире технологий, вы можете иметь любые два быстрых, дешевых и хороших.

    Самый дешевый и самый быстрый вариант тех, которые были представлены до сих пор, которые охватывают диапазон возможностей, которые я знаю как профессионал в области технологий, – это укусить пулю, изучить некоторые vim (использовать GVim для Windows) и использовать фильтры подсветки синтаксиса там , Во-вторых, нужно сделать серию сценариев в чем-то вроде sed или awk .

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

    Excel также может быть полезен при импорте, но все строки должны быть отформатированы одинаково, так что это все равно не будет делать то, что вы хотите. Еще одна вещь, которая приходит на ум, заключается в том, что вы можете использовать Access для разбора такого файла и использовать некоторый VBA для создания отсчетов записей и компиляции статистики, но в том, что касается наложения основных моментов, это было бы менее просто. Если вы знаете каких-либо разработчиков COBOL, это будет отличный проект на 1-2 ночи для одного из них. Он может даже превратиться в проект с открытым исходным кодом на sourceforge.net, чтобы освободить данные из кладок мейнфрейма!

    Я думаю, вы вряд ли найдете решение, которое не связано с программированием.

    Любой текстовый редактор с функциями подсветки синтаксиса, более сложный, чем простое сопоставление ключевых слов, обязательно будет более сложным, как в Vim и Emacs.

    Для Vim вы можете определить файл подсветки следующим образом:

     syntax clear ABC syntax match A /^A\%(\a\|\d\)\{13\} \d\{6\} \{5\}\S\+$/ syntax match B /^B\%(\a\|\d\)\{14\}$/ syntax match C /^C\%(\a\|\d\)\{4\} \{8\}\d\{4\}$/ highlight A guifg=darkgreen highlight B guifg=darkblue highlight C guifg=royalblue 

    И загрузите его с помощью :source myhighlight.vim

    Затем строки будут подсвечиваться, когда они верны, или оставлены неосвещенными, если они не соответствуют регулярному выражению.

    Это становится более сложным, если вы хотите выделить отдельные поля в этих строках.

    Лично я бы посмотрел способы вызова какого-либо скрипта из редактора, который мог бы все проверить для меня. Таким образом, вы можете использовать любой редактор, а не быть вынужденным использовать тот, который обладает гибкостью выделения, в которой вы нуждаетесь.

    Если бы я не собирался кодировать интерфейс для файла, я бы, вероятно, использовал Notepad ++, поскольку у него есть способ определить ваш собственный язык, в комплекте с подсветкой.

    Скачать / Основной сайт

    Все о пользовательском разделе раздела

    Другой пример / walkthru

    Надеемся, что это поможет вам начать работу.

    Похоже, что ваши столбцы ограничены пространством?

    Вы пытались просто импортировать их в Excel, а затем просто применяли выделение / цвета для столбцов?

    Если это не будет сокращено, то, как говорят другие, вы, вероятно, смотрите на программирование. Возможно, вы могли бы написать довольно простой Perl или VBScript, который возьмет этот текстовый файл и выведет синтаксис, выделенный HTML-файл или аналогичный, используя что-то вроде регулярных выражений в соответствии с шаблонами, которые вы ищете?

    Вы могли бы попробовать что-то вроде монарха

    У меня было аналогичное требование, и я нашел решение, используя один из образцов, приведенных в экранах «: sytanx help».

    Ниже приведен пример плоского файла с 2 записями того же типа. Здесь заголовок записи – «01», который является первым столбцом. После записи заголовка есть 4 столбца с фиксированными длинами, приведенными ниже:

     +-----+-----+-----+-----+-----------------+ | No. | Beg | End | Size| Description | +-----+-----+-----+-----+-----------------+ | 1| 1| 2| 2|HEADER | | 2| 3| 7| 5|Column 2 | | 2| 8| 11| 4|Column 3 | | 2| 12| 15| 4|Column 4 | | 2| 16| 17| 2|Column 5 | +-----------------------------------------+ 

    Примеры записей:

     01AAAAABBBBCCCCDD 01PPPPPQQQQRRRRSS " Syntax definition and highlighting for Record 01 :sy region rec1 matchgroup=rec1 start="^01" end="$" contains=r1col1,r1col2,r1col3,r1col4 keepend :hi rec1 ctermbg=red guibg=red " Syntax definition and highlighting for next 4 columns from Record 01 :sy region r1col1 matchgroup=r1col1 start="\%3v" end="\%8v" contained :sy region r1col2 matchgroup=r1col2 start="\%8v" end="\%12v" contained :sy region r1col3 matchgroup=r1col3 start="\%12v" end="\%16v" contained :sy region r1col4 matchgroup=r1col4 start="\%16v" end="\%18v" contained " Highlighted alternate columns with same color :hi r1col1 ctermbg=green ctermfg=black :hi r1col2 ctermbg=green guibg=green :hi r1col3 ctermbg=darkblue ctermfg=white :hi r1col4 ctermbg=green ctermfg=black 

    Таким образом, мы можем определить «регионы» для большего количества записей (например, запись начинается с «02») с разными номерами и ширинами столбцов, которые могут присутствовать в одном и том же файле, но будут выделены на основе заголовка записи.

    Давайте будем гением компьютера.