![Улучшить отображение позиционной кодировки для целей отладки, возможно, используя Excel с одним символом на ячейку](https://rvso.com/image/1365836/%D0%A3%D0%BB%D1%83%D1%87%D1%88%D0%B8%D1%82%D1%8C%20%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%BE%D0%B9%20%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B8%20%D0%B4%D0%BB%D1%8F%20%D1%86%D0%B5%D0%BB%D0%B5%D0%B9%20%D0%BE%D1%82%D0%BB%D0%B0%D0%B4%D0%BA%D0%B8%2C%20%D0%B2%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE%2C%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F%20Excel%20%D1%81%20%D0%BE%D0%B4%D0%BD%D0%B8%D0%BC%20%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%BE%D0%BC%20%D0%BD%D0%B0%20%D1%8F%D1%87%D0%B5%D0%B9%D0%BA%D1%83.png)
Мне нужно решить следующую проблему: я работаю с файлами с позиционной кодировкой. Эти файлы показывают символы в определенных позициях в строке. Каждая строка — это запись, и значение символа в строке зависит от его позиции. Чтобы отладить и исправить их, мне нужно убедиться в позиции курсора на текущей строке файла.
Большинство редакторов, включая Notepad++, отображают позицию столбца в файле. Однако, хотя это и полезно, я хотел бы сделать это проще.
Мне нужен редактор, который каким-то образом выделял позиции символов в моих файлах.
Вот о чем я подумал: использованиеЭксель 2010один символ на ячейку.
В идеале, если бы Excel позволял мне вставлять текст в предварительно отформатированную таблицу с помощьюцвета,границыизаголовки столбцовЯ бы решил свою проблему. Но мне нужно убедиться, что Excel принимает вставку, вставляя каждый символ в ячейку, переходя к следующей строке, когда встречается CRLF.
Это довольнопроблема XYи я надеюсь, что я задал свой вопрос наилучшим образом
- Проблема X: улучшить читаемость файлов с позиционной кодировкой
- Проблема Y: учитывая, что Excel может быть хорошим союзником, как мне вставить целый файл в ячейку «одна ячейка на символ» с одним знаком « CTRL+» V?
Пример
Поскольку реальные данные действительно сложно разместить в этом вопросе, общий набор данных можно выразить (в документации) следующим образом:
- Каждая строка создает одну запись
- Символ 0 — тип данных, буквенно-цифровой
- Символы 1:8 — это фамилия
- Персонажи 9:15 — это имя
- Символы 16:30 — это номер телефона.
- Символы 31:38 — дата рождения в формате ггггММдд
- Символы-заполнители — это пробелы.
- Строки заканчиваются на CRLF
Пример «действительной» записи (я печатаю ее вручную)
0SMITH JOHN +13652145896 19780101\r\n
Следуя примеру Excel, я мог бы отобразить эти данные в цветных столбцах и легко редактировать таблицу с помощью направляющих цветов/границ.
решение1
Очень сосредоточенный на "один символ на ячейку", я бы предложил шаблон, где ColumnA Листа 2:5 заполнен Листом 1! B:B до E:E соответственно. Затем сгруппируйте так, чтобы в каждом из Листа 2:5 B1 имелся =MID($A1,COLUMN()-1,1)
и скопируйте поперек и вниз по мере необходимости. Лист 1 зарезервирован для ваших исходных данных:
решение2
Следующая формула, кажется, работает хорошо, когдаотображениенабор данных
Локализованный
=STRINGA.ESTRAI(INDIRETTO(CONCATENA("PASTEME!A";RIF.RIGA()));RIF.COLONNA();1)
Ручная интернационализация (пожалуйста, исправьте названия функций в английском Excel)
=MID(INDIRECT(CONCATENATE("PASTEME!A",ROW())),COLUMN(),1)
Теперь мне просто нужно скопировать его на весь лист и добавить форматирование/границы/раскраску (тысячи записей в каждом наборе данных)
Проблема подхода с формулой в том, что я не могу легкоредактироватьданные в наборе данных, но по крайней мере у меня есть четкое представление о том, где искать редактирование и где может быть ошибка в наборе данных (или просто «немедленное понимание данных»)
решение3
Самый простой способ сделать это — просто использовать предварительно отформатированный лист Excel (шаблон) и использовать опцию Data>From Text>Fixed Width
. Это позволит вам поместить любые/все символы в их собственную ячейку, и вы можете начать свой диапазон с любой ячейки электронной таблицы, которая вам нравится.
Если это будет повторяющаяся задача, я бы использовал VBA, чтобы немного автоматизировать процесс, возможно, используя диалоговое окно для запроса файла и точки вставки, но выполняя все остальное автоматически.
Что касается Y, я не думаю, что какой-либо из вариантов вставки, особенно «Вставить», CTRLVдаст то, что вам нужно.