Я погуглил и посмотрел и исследовал, но это кажется большинством редакторов, настраиваемые определения подсветки синтаксиса основаны на ключевых словах и таком. Мне нужен тот, который основан на столбцах и строках, в основном что-то для выделения различных полей в плоском файле.
Это должно быть более сложно, чем одна строка соответствует всем однако, существует несколько различных "типов" строк.
Образец показывают ниже
A9999000055555 333333 55554444422222210102009000000333333
B44444555550000
B44444555550000
B44444555550000
B44444555550000
C9999 0004
За исключением "0004" (# записей B) и "10102009" (дата) все другие порядковые номера были бы фактическим буквенно-цифровым индикатором, представляющим различные поля ввода данных пользователем. Первая буква обычно определяется как тип Строки.
Намерение этого вопроса состоит в том, чтобы позволить людям проверять "правильность" формата файлов. Обычно эти файлы обычно создаются автоматизированным способом, но изменение бизнес-правил и старые мейнфреймовые программы должны быть обновлены (и что заканчивает тем, что произошло, не симпатично). Таким образом, идея состоит в том, чтобы дать тем, кто создает эти файлы способ перепроверить себя, что файл встречает формат. Я не предназначаю ни для КАКОЙ проверки бизнес-правила здесь, просто формат.
Вы могли записать сценарий для добавления HTML-тэгов, чтобы сделать окраску. sed (работы над строками) и awk (работы над столбцами) мог бы помочь, особенно над Linux. Или сценарий жемчуга. Вы могли использовать регулярные выражения, чтобы сделать сопоставление с образцом.
Необходимо будет также добавить минимальный HTML-код для преобразования его в файл HTML (заголовок и теги основного текста).
Vim! Запустите с там инструкций для изменения подсветки синтаксиса и пробейтесь оттуда. Вот то, что я думаю, что Вы говорите:
Таким образом, можно определенно определить правила выделения на основе тех требований.
Если бы я не собирался кодировать фронтенд для файла, то я, вероятно, использовал бы Блокнот ++, поскольку он имеет способ определить Ваш собственный язык, вместе с выделением.
Все о пользовательском разделе языка
Надо надеяться, они помогут Вам начать.
Я спросил о том, чем будет надлежащее использование такой утилиты, и на основе пары ключевых слов ("просматривают и проверяют, прежде чем они отправят"), Вы в основном хотите сделать следующее:
Правильный способ выполнить это, по-моему, (особенно, потому что, как Вы говорите, многие клиенты все еще имеют мейнфреймы и все еще получают данные в форматах как это), должен использовать пользовательский фронтенд для получения информации о данных клиенту.
Способ сделать это? У Вас есть по существу 2 опции: любая a) запишите синтаксический анализатор файла сами в Java, C# или C++ (дрожь) для предоставления 'предварительного просмотра' данных, содержавшихся в файлах. Или b) наймите участника, или недавний выпускник (проверьте портфель сначала!) классов программирования для кодирования синтаксического анализатора для Вас. Или племянник босса или тормозной бойфренд Вашей сестры, и т.д. Я не знаю, какой опыт или интерес Вы имеете в такой вещи, ни чем-либо о Вашем образовании, поэтому простите мне, если я делаю неуместные предположения. Как с таким количеством других вещей в мире Технологии, у Вас могут быть любые два из быстрых, дешевых, и хороший.
Самая низкая цена и самая быстрая опция представленных до сих пор, которые охватывают диапазон возможностей, о которых я знаю как технологический профессионал, должны были бы стиснуть зубы, изучить некоторых vim
(используйте GVim для Windows), и используйте фильтры подсветки синтаксиса там. Второй должен был бы сделать ряд сценариев в чем-то как sed
или awk
.
Так как вход к Вашей проблеме является по существу потоком текста, обрубленного с промежутками (разрывы строки), обработка данных должна обработать вход таким же образом, и очень немного программ делают так теперь, потому что, как Вы говорите, это - данные, сгенерированные старой мейнфреймовой программой.
Excel мог бы также быть полезным в импорте, но все строки должны быть отформатированы тот же путь, таким образом, это все еще не собирается делать то, что Вы хотите. Одна дополнительная вещь, которая приходит на ум, состоит в том, что Вы смогли использовать Доступ, чтобы проанализировать такой файл и использовать некоторый VBA для создания количеств записей и статистики компиляции, но до накладывания выделений, которые будут менее легкими. Если бы Вы знаете каких-либо разработчиков КОБОЛа, это было бы замечательными 1-2 ночными проектами для одного из них. Это могло бы даже превратиться в проект с открытым исходным кодом на sourceforge.net к свободным данным из муфт мейнфрейма!
Я думаю, что Вы вряд ли найдете решение, которое не включает программирование.
Любой текстовый редактор с функциями подсветки синтаксиса, более сложными, чем простой поиск по ключевым словам, обязательно будет более сложным, как это находится в Vim и Emacs.
Для Vim можно определить выделяющийся файл как это:
syntax clear A B C
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
Затем строки будут выделены, когда они будут корректны, или оставленные невыделенными, если они не соответствуют регулярному выражению.
Это становится более сложным, если Вы хотите выделить конкретные поля в тех строках.
Лично, я посмотрел бы на способы вызвать некоторый сценарий от редактора, который мог сделать всю проверку меня. Тем путем Вы могли использовать любого редактора и не быть вынуждены использовать того, который имеет выделяющуюся гибкость, в которой Вы нуждаетесь.
Похоже, что Ваши столбцы являются разграниченным пространством?
Вы попытались просто импортировать их в Excel и затем просто применить выделение/цвета к столбцам?
Если это не сократит его затем, как другие говорят, Вы, вероятно, смотрите на программирование. Вы могли, вероятно, записать довольно простой Perl или VBScript, это возьмет тот текстовый файл и произведет синтаксис, выделил файл HTML или подобное использование чего-то как regexes для соответствия шаблонам, которые Вы ищете?