iDea Plus Geo

Geo ideias em formato aberto

Calculadora de campos no gvSIG: Operações com textos, parte 2

September 05, 2012 — Eliazer Kosciuk

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:

erro_codificacao_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):

calculadora de campos_txt_2_00

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)

calculadora de campos_txt_2_01

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:

calculadora de campos_txt_2_02

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)

calculadora de campos_txt_2_03

 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:

calculadora de campos_txt_2_04

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]

calculadora de campos_txt_2_05

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:

calculadora de campos_txt_2_06

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])

calculadora de campos_txt_2_07

 Função toUpperCase:

Converte todos os caracteres de uma string para caixa alta (UpperCase).

toUpperCase([MUNICIPIO])

calculadora de campos_txt_2_08

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