Tengo el siguiente problema que resolver: trabajo con archivos codificados posicionalmente. Estos archivos muestran caracteres en determinadas posiciones de la cadena. Cada fila es un registro y el significado de un carácter en una fila depende de su posición. Para depurarlos y solucionarlos, necesito asegurarme de la posición del cursor en la línea del archivo actual.
La mayoría de los editores, incluido Notepad++, muestran la posición de la columna en el archivo. Sin embargo, si bien es útil, me gustaría hacerlo más sencillo.
Quiero que un editor resalte de alguna manera las posiciones de los caracteres en mis archivos.
Esto es lo que pensé: usarexcel 2010un carácter por celda.
Idealmente, si Excel me permitiera pegar un texto en una tabla preformateada concolores,fronterasycolumnas de encabezadoHabría solucionado mi problema. Pero debo asegurarme de que Excel acepte pegar insertando cada carácter en una celda y pasando a la siguiente fila cuando se encuentre un CRLF.
Esto es todo unproblema xyy espero haber hecho mi pregunta de la mejor manera
- Problema X: mejorar la legibilidad de archivos codificados posicionalmente
- Problema Y: dado que Excel podría ser un buen aliado, ¿cómo pego un archivo completo en una celda por carácter con un solo CTRL+ V?
Ejemplo
Dado que los datos reales son realmente complejos de publicar en esta pregunta, un conjunto de datos genérico se puede expresar (en la documentación) de la siguiente manera:
- Cada fila forma un único registro.
- El carácter 0 es tipo de datos, alfanumérico
- Los personajes 1:8 son un apellido.
- Los personajes 9:15 son un nombre.
- Los personajes 16:30 son un número de teléfono.
- Los caracteres 31:38 son una fecha de nacimiento en formato aaaaMMdd
- Los caracteres de relleno son espacios.
- Las líneas terminan con CRLF
Ejemplo de registro "válido" (lo estoy escribiendo a mano)
0SMITH JOHN +13652145896 19780101\r\n
Siguiendo el ejemplo de Excel, podría mostrar estos datos en columnas de colores y editar fácilmente una hoja de datos con guías de colores/bordes.
Respuesta1
Centrándome mucho en "un carácter por celda", sugeriría una plantilla donde la Columna A de la Hoja 2: 5 se llene con la Hoja 1. B:B a E:E respectivamente. Luego, agrúpelo de modo que en cada una de las Hojas 2:5 B1 tenga =MID($A1,COLUMN()-1,1)
y cópielo hacia arriba y hacia abajo según sea necesario. La Hoja 1 está reservada para sus datos de origen:
Respuesta2
La siguiente fórmula parece funcionar bien cuandomostrandoel conjunto de datos
Localizado
=STRINGA.ESTRAI(INDIRETTO(CONCATENA("PASTEME!A";RIF.RIGA()));RIF.COLONNA();1)
Internacionalizado a mano (corrija los nombres de las funciones en Excel en inglés)
=MID(INDIRECT(CONCATENATE("PASTEME!A",ROW())),COLUMN(),1)
Ahora solo tengo que copiarlo en toda la hoja y agregar formato/bordes/coloreado (miles de registros en cada conjunto de datos)
El problema con el enfoque de fórmula es que no puedo fácilmenteeditardatos en el conjunto de datos, pero al menos tengo una idea clara de dónde buscar para editar y dónde podría haber un error en el conjunto de datos (o simplemente "comprender inmediatamente los datos")
Respuesta3
La forma más sencilla de hacerlo es simplemente utilizar una hoja de cálculo (plantilla) de Excel preformateada y utilizar la Data>From Text>Fixed Width
opción. Esto le permitirá colocar cualquiera o todos los personajes en su propia celda y podrá comenzar su rango en cualquier celda de la hoja de cálculo que desee.
Si esto va a ser una tarea repetida, usaría VBA para automatizar un poco el proceso, tal vez usando un cuadro de diálogo para solicitar un archivo y señalar la inserción, pero haciendo todo el resto automáticamente.
En cuanto a su Y, no creo que ninguna de las opciones de Pegar, especialmente, CTRLVhaga lo que desea.