- centraliza meus documentos em um só lugar,
- me dá a possibilidade de compartilhar meus documentos com quantas pessoas eu quiser,
- permite que as pessoas com acesso aos documentos colaborem na sua confecção, etc.
Esse final de semana resolvi adiantar os trabalhos da faculdade e utilizei o Docs quase sem nenhum problema. Sim vocês acabaram de ler "quase". Não tive problema nenhum quanto na confecção de documentos tipo Word, que no pacote Google são chamados apenas de Documentos. Porém em um exercicio de lógica resolvi fazer um uso um tanto quanto incomum das planilhas (SpredSheet) do Docs.
O exercicio consistia em utilizar a tabela ASCI para converter a cadeia abaixo de bits (zeros e uns) em uma frase intelegível por humanos.
01000101.01110011.01110100.01110101.01100100.01100001.01110010.00000000.01101100.10100010.01100111.01101001.01100011.01100001.00000000.10000010.00000000.01101100.01100101.01100111.01100001.01101100.0010000
Ah existiam N maneiras de escamotear esse exercício. Seriam poucas linhas em Perl. Em Python não precisaria nem de arquivo seria só utilizar o shell interativo. Ex:
Mas a maneira mais rápida "parecia" ser utilizar o uma planilha de Excel. Os passos seriam:
- Colar os bits na celula A1 do Excel.
- Utilizar a função texto para colunas para isolar cada segmento delimitado por ponto em uma coluna.
- Utilizar a formula =bin2dec(A1) na célula A2 ctrl+c ctrl+v nas outras colunas da linha 2
- Utilizar a formula =caract(A2) na célula A3 ctrl+c ctrl+v nas outras colunas da linha 3
Então eu leria a terceira linha e colaria na area de respostas da questão.
Simples e bem mais rápido do fazer 23 conversões de binário para decimal na munheca e depois consultar 23 vezes. É claro que fazendo 23 conversões e 23 consultas os objetivos pedagógicos seriam efetivamente alcançados, mas eu quero mais é que o meu P#@$ cresça.
Qual foi primeira dificuldade encontrada? Adivinha? Eu simplesmente não tinha Excel instalado na máquina. Pensei Excel de c# é r#l@ vou mandar o "Gato" utilizando a planilha do Docs. Fácil hein ! Vamos ao check:
- Passo 1 - Colar o bagulho na coluna A1 - OK
- Passo 2 - Texto para colunas - Eeeeepa!
-Mãaaaaaaaaaae !!! Cadê a função de texto pra colunas do Docs!
Cri-cri-cri...(onomatopéia de grilo).
É senhores! Acreditem! Non Ecziste! E agora? Agora fu#eu. Minha abordagem foi invibializada no segundo passo. Mas como assim?... uma coisa básica e tão útil, um simples texto para colunas!
Agora é a hora de abrir a mente procurar caminhos alternativos. Quais são as opções?
- Copiar e colar cada um dos 23 dos segmentos de 8 bits em uma coluna e seguir para os seguintes passos.
- Substituir os <.> (pontos) que separam os segmentos de 8 bits por
pois esse caracter a planilha reconhece automáticamente como delimitador já colaria cada segmento em uma coluna. - Etc..
Agora minha lista estava assim:
- Copiar e colar cada um dos 23 dos segmentos... solução trabalhosa mas que funcionará. Não quero.
- Substituir os <.> (pontos) que separam... solução mais rápida e inteligente e que funcionará . Não quero.
- Criar uma funcionalidade de texto para colunas na ferramanta... solução mais demorada com grande probabilidade de falhar ou ser abortada devido a dificuldade apresentada. - Minha campeã.
Umas 3 horas depois a primeira versão da função TextoParaColunas estava pronta, e eu pude terminar meu trabalho utilizando ela. Mas apesar de funcional ela tinha algumas limitações:
- Funcionava apenas para uma linha, enquanto que a função original do excel funciona para quantas linhas forem selecionadas.
- O separadaor só poderia ser ponto pois estava hardcoded.
- Necessitava que o usuário entrasse no Script Manager para executar a função.
Aqui vai o caminho das pedras para quem quiser dar uma bisbilhotada no código ou simplesmente utilizar a funcionalidade.
- Abra o docs e crie uma nova planilha ou abra uma planilha existente.
- Na planilha já aberta acesse o menu ferramentas >> script >> inserir. Surgirá o Script Galery.
- Digite "Texto para colunas" na caixa de pesquisas e clique em pesquisar.
- Selecione o script que aparece com o meu e-mail: glauco.$%$ˆ@gmail.&ˆˆ) e clique em inserir.
Pronto está instalado. Deverá surgir um menu novo na sua Spredsheet chamado Dados.
A operação é bem simplificada em relação ao MS Excel, mas isso eu explicarei em outro post.
Espero que tenham gostado.