Улучшенное отображение позиционного кодирования для целей отладки, возможно, с использованием Excel по одному символу на ячейку
Мне нужно решить следующую проблему: я работаю с позиционно-закодированными файлами. Эти файлы показывают символы в определенных позициях в строке. Каждая строка является записью, а значение символа в строке зависит от его положения. Чтобы их отладить и исправить, мне нужно убедиться в положении курсора в текущей строке файла.
Большинство редакторов, в том числе Notepad++, отображают положение столбца в файле. Однако, хотя и полезно, я хотел бы сделать это проще.
Я хочу, чтобы редактор так или иначе выделил позиции символов в моих файлах.
Вот что я подумал: используя Excel 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, я мог бы отобразить эти данные в цветных столбцах и легко отредактировать таблицу данных с помощью направляющих цвета / границ.
3 ответа
Сосредоточив внимание на "один символ на ячейку", я бы предложил шаблон, в котором столбец Sheet2:5 заполнен Sheet1! B:B к E:E соответственно. Затем группа так в каждом листе 2:5 B1 имеет =MID($A1,COLUMN()-1,1)
и копировать поперек и вниз по мере необходимости. Sheet1 зарезервирован для ваших исходных данных:
Следующая формула работает нормально при отображении набора данных
локализованный
=STRINGA.ESTRAI(INDIRETTO(CONCATENA("PASTEME!A";RIF.RIGA()));RIF.COLONNA();1)
Интернационализированный вручную (пожалуйста, исправьте названия функций в английском Excel)
=MID(INDIRECT(CONCATENATE("PASTEME!A",ROW())),COLUMN(),1)
Теперь мне просто нужно скопировать его на весь лист и добавить форматирование / окантовку / раскраску (тысячи записей в каждом наборе данных)
Проблема с формульным подходом заключается в том, что я не могу легко редактировать данные в наборе данных, но, по крайней мере, у меня есть четкое представление о том, где искать редактирование и где может быть ошибка в наборе данных (или просто "сразу понять данные"). ")
Самый простой способ сделать это - просто использовать предварительно отформатированный лист Excel (шаблон) и использовать Data>From Text>Fixed Width
вариант. Это позволит вам перенести любые / все символы в их собственную ячейку, и вы можете начать свой диапазон в любой ячейке электронной таблицы.
Если это будет повторяющейся задачей, я бы использовал VBA, чтобы немного автоматизировать процесс, возможно, используя диалоговое окно для запроса файла и указания на вставку, но все остальное делал бы автоматически.
Что касается вашего Y, я не думаю, что какой-либо из параметров вставки, особенно CTRLV, будет делать то, что вы хотите.