![Melhorar a exibição da codificação posicional para fins de depuração, talvez usando um caractere por célula do Excel](https://rvso.com/image/1365836/Melhorar%20a%20exibi%C3%A7%C3%A3o%20da%20codifica%C3%A7%C3%A3o%20posicional%20para%20fins%20de%20depura%C3%A7%C3%A3o%2C%20talvez%20usando%20um%20caractere%20por%20c%C3%A9lula%20do%20Excel.png)
Tenho o seguinte problema para resolver: Trabalho com arquivos codificados posicionalmente. Esses arquivos mostram caracteres em determinadas posições da string. Cada linha é um registro e o significado de um caractere em uma linha depende de sua posição. Para depurá-los e corrigi-los, preciso ter certeza da posição do cursor na linha do arquivo atual.
A maioria dos editores, incluindo o Notepad++, exibe a posição da coluna no arquivo. No entanto, embora seja útil, gostaria de torná-lo mais simples.
Quero que um editor destaque de alguma forma as posições dos caracteres em meus arquivos.
Aqui está o que pensei: usarExcel 2010um caractere por célula.
Idealmente, se o Excel me permitisse colar um texto em uma tabela pré-formatada comcores,fronteirasecolunas de títuloEu teria resolvido meu problema. Mas devo ter certeza de que o Excel aceita colar inserindo cada caractere em uma célula, indo para a próxima linha quando um CRLF for encontrado.
Isso é bastanteProblema XYe espero ter feito minha pergunta da melhor maneira
- Problema X: melhorar a legibilidade de arquivos codificados posicionalmente
- Problema Y: dado que o Excel pode ser um bom aliado, como colo um arquivo inteiro em uma célula por caractere com um único CTRL+ V?
Exemplo
Como os dados reais são realmente complexos para serem postados nesta questão, um conjunto de dados genérico pode ser expresso (na documentação) da seguinte forma:
- Cada linha cria um único registro
- O caractere 0 é o tipo de dados, alfanumérico
- Caracteres 1:8 são um sobrenome
- Personagens 9:15 são o primeiro nome
- Os caracteres 16:30 são um número de telefone
- Os caracteres 31:38 são uma data de nascimento no formato aaaaMMdd
- Caracteres de preenchimento são espaços
- As linhas são terminadas com CRLF
Exemplo de registro "válido" (estou digitando manualmente)
0SMITH JOHN +13652145896 19780101\r\n
Seguindo o exemplo do Excel, eu poderia exibir esses dados em colunas coloridas e editar facilmente uma planilha de dados com guias de cores/bordas
Responder1
Focando muito em "um caractere por célula", sugiro um modelo em que a ColunaA da Planilha2:5 seja preenchida com a Planilha1! B:B a E:E respectivamente. Em seguida, agrupe-o em cada uma das Folhas 2: 5 B1 =MID($A1,COLUMN()-1,1)
e copie-as conforme necessário. Sheet1 sendo reservada para seus dados de origem:
Responder2
A fórmula a seguir parece funcionar bem quandoexibindoo conjunto de dados
Localizado
=STRINGA.ESTRAI(INDIRETTO(CONCATENA("PASTEME!A";RIF.RIGA()));RIF.COLONNA();1)
Internacionalizado à mão (corrija os nomes das funções no Excel inglês)
=MID(INDIRECT(CONCATENATE("PASTEME!A",ROW())),COLUMN(),1)
Agora só preciso copiá-lo para a planilha inteira e adicionar formatação/borda/coloração (milhares de registros em cada conjunto de dados)
O problema com a abordagem da fórmula é que não consigoeditardados no conjunto de dados, mas pelo menos tenho uma ideia clara de onde procurar para edição e onde pode estar um bug no conjunto de dados (ou simplesmente "compreender imediatamente os dados")
Responder3
A maneira mais fácil de fazer isso é simplesmente usar uma planilha Excel pré-formatada (modelo) e usar a Data>From Text>Fixed Width
opção. Isso permitirá que você coloque qualquer/todos os caracteres em sua própria célula e você pode iniciar seu intervalo em qualquer célula da planilha que desejar.
Se for uma tarefa repetida, eu usaria o VBA para automatizar um pouco o processo, talvez usando uma caixa de diálogo para solicitar um arquivo e um ponto para ser a inserção, mas fazendo todo o resto automaticamente.
Quanto ao seu Y, não acho que nenhuma das opções de Colar, principalmente, CTRLVfará o que você deseja.