Calculadora de campos no gvSIG: Operações com textos, parte 2
Buenas, pessoal!
Dando seguimento ao nosso estudo do uso da Calculadora de Campos no gvSIG, vamos continuar a lidar com as operações com textos, destrinchando mais algumas funções que são disponibilizadas pelo gvSIG.
Para início de história, vamos baixar o arquivo shape sobre o qual vamos trabalhar: ARQUIVO2. Em seguida, criamos uma nova vista, com a projeção SAD69/UTMzone23S (código EPSG 29183), e inserimos o nosso novo shape, e entramos em modo de edição (se não sabe como chegar até aqui, confira o primeiro artigo desta série).
Uma dica importante para quem usa Linux: se você está visualizando caracteres “estranhos” quando abre a tabela de atributos do shape, você está enfrentando problemas com a codificação do arquivo .dbf:
Para corrigir este problema, basta seguir a dica do blog Processamento Digital: Codificação Padrão do DBF.
Função subString: Separando partes de uma string:
Uma das funções a que precisamos recorrer frequentemente é separar partes de uma string. Na tabela vinculada ao shape que estamos trabalhando existe o campo [FONE], que contém uma string com o número do telefone, incluindo o prefixo (código de área):
Vamos separar esta string em duas informações: prefixo e telefone, aproveitando os campos que já estão disponíveis na tabela. Vamos fazer essa tarefa em dois passos:
Primeiramente, selecionamos a coluna [PREFIXO], clicando no respectivo nome na tabela. Em seguida, acessamos a Calculadora de Campos (menu Campo > Expressão). Selecionamos então a opção “String”, e localizamos a função que queremos aplicar: “subString”. Ao clicarmos duas vezes sobre ela, aparecerá a seguinte expressão no campo de Expressões:
subString(,,)
Podemos então editar essa expressão, para que fique dessa forma:
subString([FONE],0,4)
Com isso, estamos dizendo para o gvSIG pegar a string do campo [FONE], e separar a substring que inicia no caractere 0 (zero) e termina no caractere 4 menos 1 (para o Python, começamos a contar os caracteres a partir do zero).
Para entender melhor:
(21) 3371-9411 01234567890123
Ou seja: separaremos a substring que está contida entre o primeiro e o quarto caracter, e colocaremos o resultado no campo [PREFIXO], que estava previamente selecionado. Ao clicarmos em “Aceitar” poderemos ver o resultado da nossa expressão:
Essa forma de contar pode parecer um pouco confusa no começo, mas depois a gente pega o jeito…
Agora vamos a segunda parte: selecionamos a coluna [TEL] e acessamos novamente a Calculadora de Campos. Agora, digitaremos a seguinte expressão:
subString([FONE],5,14)
Ou seja: da string presente no campo [FONE] estaremos selecionando a substring que começa no caractere 5 (o sexto caractere) e que termina no caractere 14 menos 1 (isto é, 13, ou o décimo quarto caractere). Clicando em “Aceitar”, poderemos visualizar o resultado da expressão que criamos:
Como eu disse anteriormente, no começo pode parecer um pouco confuso, mas depois que entendemos o processo fica fácil de aplicar as regras e obter os resultados que precisamos ao manipularmos strings.
Concatenando strings com a função “+”
Agora vamos fazer o caminho inverso, para aprendermos a lidar com a função de concatenar strings. Como primeiro passo, crie o campo [TELEFONE] com as mesmas propriedades do campo [FONE] (string, comprimento = 24). Lembre-se que, para isso, precisamos estar no modo de edição (se você está acompanhando o tutorial, já deve estar no modo de edição).
Selecione o campo [TELEFONE] na tabela e abra a Calculadora de Campos. Vamos criar agora a string telefone no formato “0XX (21) 3371-9411”, Para tanto, digite a seguinte expressão:
"0XX " + [PREFIXO] + " " + [TEL]
O “segredo” aqui é inserirmos os caracteres das partes da string que queremos adicionar à string final entre aspas duplas (Ex.: “0XX “). Preste atenção também ao uso dos espaços. Basta digitarmos as strings e intercalarmos os campos, com a função de concatenação, de modo a obtermos o resultado desejado. Ao clicarmos em “Aceitar”, poderemos ver o resultado final:
Função toLowerCase
Converte todos os caracteres de uma string para caixa baixa (LowerCase).
Já não vou explicar o processo de aplicação da expressão, pois creio que nesta altura do campeonato essa parte já deva estar dominada. Vou apenas apresentar a expressão utilizando a função, e o resultado final:
toLowerCase([NOME])
Função toUpperCase:
Converte todos os caracteres de uma string para caixa alta (UpperCase).
toUpperCase([MUNICIPIO])
Buenas… por hoje é isso, pessoal! Lembrem-se de que, para salvarmos todas as alterações que efetuamos na tabela, precisamos sair do modo de edição do shape e salvar as alterações quando questionados.
Espero que eu não tenha sido sucinto demais, mas quem encontrar alguma dificuldade basta revisar os artigos anteriores desta série, que o processo está bem “mastigadinho”.
No próximo artigo abordaremos o uso da aba “Avançado” da Calculadora de Campos. Aguardem, que vem muita novidade por aí!
Tags: calculadora-de-campos, geoprocessamento, gis, gvSIG, tutorial, geoprocessos, SLGeoTbFaz