<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Texto sem Formatação Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
span.TextosemFormataoChar
        {mso-style-name:"Texto sem Formatação Char";
        mso-style-priority:99;
        mso-style-link:"Texto sem Formatação";
        font-family:"Calibri","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 3.0cm 70.85pt 3.0cm;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=PT-BR link=blue vlink=purple><div class=WordSection1><p class=MsoPlainText>Eliazer e amigos listeiros, fiz algumas figuras em anexo para exemplificar duas funções que faço comumente: toNumber (ou toString) e SubString, além das que eu já falei em outro e-mail.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Como trabalho normalmente com dados censitários, fiz as figuras em sequencia:<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><b><u>Strings_gvSIG_Fig01</u></b>: Criação de duas variáveis, uma alfanumérica (CODMUN_T) e outra Numérica Inteiro Longo (CODMUN). Estas variáveis correspondem ao Código de Município do IBGE, correspondente aos sete primeiros caracteres do Código de Setor Censitário;<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><b><u>Strings_gvSIG_Fig02</u></b>: Populando a variável CODMUN_T, com a seguinte função: <b>SubString([CODSETOR], 0, 7)</b>;<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><b><u>Strings_gvSIG_Fig03:</u></b> Comprovação da Variável CODMUN_T populada;<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><b><u>Strings_gvSIG_Fig04</u></b>: Populando a variável numérica CODMUN através de uma substring vinda de uma variável caractere, com a seguinte função: <b>toNumber(SubString([CODSETOR], 0, 7))</b>;<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><b><u>Strings_gvSIG_Fig05:</u></b> Comprovação da Variável CODMUN populada;<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Semelhantemente ao ArcGIS, caso os registros estejam selecionados, as atualizações da calculadora de funções só populam resultados nestes registros selecionados.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Creio que o maior empecilho é ficar salvando as atualizações no DBF (shapefile) em cada etapa, pois não fazendo isso, a memória da máquina vai pras cucuias e o gvSIG fecha sozinho.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Não sei se fui longo ou prolixo, mas espero ter ajudado.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Grandes abraços!<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><span style='mso-fareast-language:PT-BR'>Marco Aurélio Painelli Marsitch<o:p></o:p></span></p><p class=MsoPlainText><span style='mso-fareast-language:PT-BR'><o:p> </o:p></span></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><span style='mso-fareast-language:PT-BR'>-----Mensagem original-----<br>De: gvsig_br-bounces@lists.gvsig.org [mailto:gvsig_br-bounces@lists.gvsig.org] Em nome de Eliazer Kosciuk<br>Enviada em: quarta-feira, 22 de agosto de 2012 17:45<br>Para: Lista de emails da Comunidade gvSIG-BR<br>Assunto: Re: [Gvsig_br] Strings e Calculadora de Campo no gvSIG</span></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Marcos, você poderia postar por aqui alguns exemplos de expressões, principalmente quanto ao uso de combinações?<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Grato,<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Eliazer Kosciuk<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Em 22 de agosto de 2012 11:27, Marco Aurélio P. Marsitch <<a href="mailto:marco.marsitch@gmail.com"><span style='color:windowtext;text-decoration:none'>marco.marsitch@gmail.com</span></a>> escreveu:<o:p></o:p></p><p class=MsoPlainText>> Bom dia a todos. Costumo usar algumas funções como substring, Upper e <o:p></o:p></p><p class=MsoPlainText>> Lower Case, conversão de formatos (toNumber e toString), combinando <o:p></o:p></p><p class=MsoPlainText>> ambas etc. Não trabalhei com consultas lógicas ainda. Das funções que <o:p></o:p></p><p class=MsoPlainText>> eu usei, normalmente em milhares de registros, nunca deu problema, ele funciona direitinho.<o:p></o:p></p><p class=MsoPlainText>>  Abraços<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Enviado por Samsung Galaxy S Mobile<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Eliazer Kosciuk <<a href="mailto:eliazerk@gmail.com"><span style='color:windowtext;text-decoration:none'>eliazerk@gmail.com</span></a>> escreveu:<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Pois é, Gilberto. Teremos que aguardar algum colega que faça uso desta <o:p></o:p></p><p class=MsoPlainText>> ferramenta no seu dia-a-dia, pois é uma característica do gvSIG que <o:p></o:p></p><p class=MsoPlainText>> não está documentada adequadamente. Através do vídeo 24 do Edugvsig<o:p></o:p></p><p class=MsoPlainText>> (<a href="http://edugvsig.blogspot.com.br/2012/03/video-24-uso-de-la-calculador"><span style='color:windowtext;text-decoration:none'>http://edugvsig.blogspot.com.br/2012/03/video-24-uso-de-la-calculador</span></a><o:p></o:p></p><p class=MsoPlainText>> a-de.html) confirmei algo que eu já imaginava: o operador "+" serve <o:p></o:p></p><p class=MsoPlainText>> para concatenar os campos de strings (ex.: se temos os campos <o:p></o:p></p><p class=MsoPlainText>> [endereço1] e [endereço2], podemos usar a calculadora de campos para <o:p></o:p></p><p class=MsoPlainText>> obter um campo com os dois campos concatenados, tipo a expressão: <o:p></o:p></p><p class=MsoPlainText>> [endereço] = [endereço1]+", "[endereço2]).Mas os demais operadores <o:p></o:p></p><p class=MsoPlainText>> permanecem como incógnitas, principalmente pela falta de documentação.<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> O que mais me intriga são os operadores booleanos. A função deles é <o:p></o:p></p><p class=MsoPlainText>> retornar "verdadeiro (1)" ou "falso (0)" para uma determinada <o:p></o:p></p><p class=MsoPlainText>> expressão. Por exemplo, o operador isNumber([Campo1]) irá testar o <o:p></o:p></p><p class=MsoPlainText>> [Campo1] e retornar o valor 1 (verdadeiro) se a string que está lá for <o:p></o:p></p><p class=MsoPlainText>> um número, ou 0 (falso) se a string não for um número. Aparentemente <o:p></o:p></p><p class=MsoPlainText>> isso só faz sentido se esses operadores possam ser utilizados para <o:p></o:p></p><p class=MsoPlainText>> montar expressões complexas, do tipo "SE a string do Campo1 NÃO for um <o:p></o:p></p><p class=MsoPlainText>> número ENTÃO faça a operação1, SENÃO, faça a operação2". No ArcGIS, <o:p></o:p></p><p class=MsoPlainText>> isso é obtido através do uso de scripts em VisualBasic ou em Python, <o:p></o:p></p><p class=MsoPlainText>> mas não encontrei nada comentando sobre essa possibilidade no gvSIG.<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Por sinal, se clicarmos na aba "Avançado" da calculadora de campos, <o:p></o:p></p><p class=MsoPlainText>> abre a possibilidade de executarmos scripts externos, o que abriria a <o:p></o:p></p><p class=MsoPlainText>> possibilidade de expandirmos a calculadora de campos. No manual do <o:p></o:p></p><p class=MsoPlainText>> gvSIG<o:p></o:p></p><p class=MsoPlainText>> (<a href="http://www.gvsig.org/web/projects/gvsig-desktop/docs/user/gvsig-deskt"><span style='color:windowtext;text-decoration:none'>http://www.gvsig.org/web/projects/gvsig-desktop/docs/user/gvsig-deskt</span></a><o:p></o:p></p><p class=MsoPlainText>> op-1-11-manual-de-usuario/gvsig-desktop-1-11-manual-de-usuario-pt-br/g<o:p></o:p></p><p class=MsoPlainText>> vsig_freemind_toc_view?doc=Manual%20usuario%20gvSIG-1.11/Edi%C3%A7%C3%<o:p></o:p></p><p class=MsoPlainText>> A3o/Edi%C3%A7%C3%A3o%20alfanum%C3%A9rica%20(Tabelas)/Calculadora%20de%<o:p></o:p></p><p class=MsoPlainText>> 20campos/Descri%C3%A7%C3%A3o%20da%20calculadora%20de%20campos/Aba%20Ge<o:p></o:p></p><p class=MsoPlainText>> ral/Avan%C3%A7ada) fala que o arquivo de expressão deverá estar <o:p></o:p></p><p class=MsoPlainText>> escrito na linguagem Python, mas, novamente, não há nenhum exemplo <o:p></o:p></p><p class=MsoPlainText>> disponível.<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Ficamos no aguardo de algum colega que tenha experiência na área...<o:p></o:p></p><p class=MsoPlainText>> Valenty? Carlos? Mais alguém?<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Creio que temos uma ferramenta poderosa de manipulação de dados, mas <o:p></o:p></p><p class=MsoPlainText>> precisamos aprender a usá-la, e documentá-la um pouco melhor...<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> [ ]s,<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Eliazer Kosciuk<o:p></o:p></p><p class=MsoPlainText>> _______________________________________________<o:p></o:p></p><p class=MsoPlainText>> Gvsig_br mailing list<o:p></o:p></p><p class=MsoPlainText>> <a href="mailto:Gvsig_br@lists.gvsig.org"><span style='color:windowtext;text-decoration:none'>Gvsig_br@lists.gvsig.org</span></a><o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Para ver histórico de mensagens, editar preferências de usuário ou <o:p></o:p></p><p class=MsoPlainText>> excluir seu nome da lista, acesse:<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> <a href="https://gvsig.org/lists/mailman/listinfo/gvsig_br"><span style='color:windowtext;text-decoration:none'>https://gvsig.org/lists/mailman/listinfo/gvsig_br</span></a><o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> _______________________________________________<o:p></o:p></p><p class=MsoPlainText>> Gvsig_br mailing list<o:p></o:p></p><p class=MsoPlainText>> <a href="mailto:Gvsig_br@lists.gvsig.org"><span style='color:windowtext;text-decoration:none'>Gvsig_br@lists.gvsig.org</span></a><o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Para ver histórico de mensagens, editar preferências de usuário ou <o:p></o:p></p><p class=MsoPlainText>> excluir seu nome da lista, acesse:<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> <a href="https://gvsig.org/lists/mailman/listinfo/gvsig_br"><span style='color:windowtext;text-decoration:none'>https://gvsig.org/lists/mailman/listinfo/gvsig_br</span></a><o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>_______________________________________________<o:p></o:p></p><p class=MsoPlainText>Gvsig_br mailing list<o:p></o:p></p><p class=MsoPlainText><a href="mailto:Gvsig_br@lists.gvsig.org"><span style='color:windowtext;text-decoration:none'>Gvsig_br@lists.gvsig.org</span></a><o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Para ver histórico de mensagens, editar preferências de usuário ou excluir seu nome da lista, acesse: <o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><a href="https://gvsig.org/lists/mailman/listinfo/gvsig_br"><span style='color:windowtext;text-decoration:none'>https://gvsig.org/lists/mailman/listinfo/gvsig_br</span></a><o:p></o:p></p></div></body></html>