Aprimore a exibição da codificação posicional para fins de depuração, talvez usando o Excel com um caractere por célula

1

Eu tenho o seguinte problema para resolver: Eu trabalho com arquivos codificados posicionais. 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 atual do arquivo.

A maioria dos editores, incluindo o Notepad ++, exibe a posição da coluna no arquivo. No entanto, embora seja útil, gostaria de simplificar.

Eu quero um editor para destacar algumas posições de caractere em meus arquivos.

Aqui está o que eu pensei: usar o Excel 2010 um caractere por célula.

Idealmente, se o Excel permitisse que eu colasse um texto em uma tabela pré-formatada com cores , bordas e colunas de cabeçalho eu teria resolvido minhas problema. Mas devo garantir que o Excel aceite uma pasta inserindo cada caractere em uma célula, indo para a próxima linha quando um CRLF for encontrado.

Este é um problema XY e espero ter feito a minha pergunta a melhor maneira

  • Problema X: melhorar a legibilidade de arquivos codificados posicionais
  • Problema Y: dado que o Excel pode ser um bom aliado, como eu colo um arquivo inteiro em uma célula por caractere com uma única CTRL + V ?

Exemplo

Como os dados reais são realmente complexos para postar nesta questão, um conjunto de dados genérico pode ser expresso (na documentação) da seguinte forma:

  • Cada linha faz um único registro
  • O caractere 0 é do tipo de dados alfanumérico
  • Os caracteres 1: 8 são um sobrenome
  • Personagens 9:15 são um primeiro nome
  • 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 finalizadas com o 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 folha de dados com guias de cores / bordas

    
por usr-local-ΕΨΗΕΛΩΝ 05.06.2013 / 10:24

3 respostas

1

Com muito foco em "um caractere por célula", sugiro um modelo em que ColumnA de Sheet2: 5 seja preenchido com Sheet1! B: B para E: E respectivamente. Em seguida, agrupe-o em cada uma das Planilhas2: 5 B1 tem =MID($A1,COLUMN()-1,1) e copia para todos os lados conforme necessário. Folha1 sendo reservada para seus dados de origem:

    
por 05.06.2013 / 15:24
1

A fórmula a seguir parece funcionar bem quando exibe o conjunto de dados

Localizado

=STRINGA.ESTRAI(INDIRETTO(CONCATENA("PASTEME!A";RIF.RIGA()));RIF.COLONNA();1)

Internacionalizado manualmente (corrija os nomes das funções no Excel em inglês)

=MID(INDIRECT(CONCATENATE("PASTEME!A",ROW())),COLUMN(),1)

Agora só preciso copiá-lo para a planilha inteira e adicionar formatação / bordeamento / coloração (milhares de registros em cada conjunto de dados)

O problema com a abordagem da fórmula é que eu não posso facilmente editar dados no conjunto de dados, mas pelo menos eu tenho uma ideia clara de onde procurar por edição e onde um bug pode estar em o conjunto de dados (ou simplesmente "entender imediatamente os dados")

    
por 06.06.2013 / 04:19
0

A maneira mais fácil de fazer isso é simplesmente usar uma planilha do Excel pré-formatada (modelo) e usar a opção Data>From Text>Fixed Width . Isso permitirá que você traga qualquer / todos os caracteres em sua própria célula e você poderá começar seu intervalo em qualquer célula da planilha que desejar.

Se essa for uma tarefa repetida, usaria o VBA para automatizar um pouco o processo, talvez usando uma caixa de diálogo para solicitar um arquivo e um ponto para a inserção, mas fazendo todo o resto automaticamente.

Quanto ao seu Y, eu não acho que nenhuma das opções de Colar, especialmente CTRL V , fará o que você quer.

    
por 05.06.2013 / 13:46