{"id":2543,"date":"2016-09-12T21:21:18","date_gmt":"2016-09-13T01:21:18","guid":{"rendered":"http:\/\/linguagemprisma.br4.biz\/blog\/?p=2543"},"modified":"2016-09-12T21:25:33","modified_gmt":"2016-09-13T01:25:33","slug":"aparando-espacos-ao-redor-da-string-trim","status":"publish","type":"post","link":"https:\/\/linguagemprisma.br4.biz\/blog\/uncategorized\/aparando-espacos-ao-redor-da-string-trim\/","title":{"rendered":"Aparando espa\u00e7os ao redor da string (trim)"},"content":{"rendered":"<p>O que queremos \u00e9 uma fun\u00e7\u00e3o que retire espa\u00e7os ao redor de uma string.<\/p>\n<p>Neste caso devemos processar a string usando fun\u00e7\u00f5es j\u00e1 prontas em Prisma da biblioteca string.<\/p>\n<p>Usaremos a fun\u00e7\u00e3o\u00a0<strong><span style=\"text-decoration: underline;\">string.corte<\/span><\/strong> \u00a0para percorrer cada caractere e ao chegar em um caractere que n\u00e3o seja espa\u00e7o marcar a posi\u00e7\u00e3o com uma vari\u00e1vel, do inicio para o final e depois do final para o inicio. Utilizaremos as vari\u00e1veis ini (inicio) e final para marcar o in\u00edcio e fim da string excluindo os espa\u00e7os ao redor se houver.<\/p>\n<p>Depois basta cortar a string nestas posi\u00e7\u00f5es marcadas pelas vari\u00e1veis.<\/p>\n<p>Veja o c\u00f3digo:<\/p>\n<pre class=\"lang:prisma decode:true\">\/\/apare string (trim) string em prisma\r\n\r\nstr = '   ola mundo em Prisma!      ';\/\/string teste.\r\n\r\nfuncao apare(str)\r\n  str = str ou '';\r\n  se tipo(str) &lt;&gt; 'string' entao\r\n    erro(\"Tipo incorreto para funcao apare, espera-se uma strig\");\r\n  fim\r\n  local strcorte = string.corte; \/\/eficiencia rapidez por meio de var local\r\n  local ini = 1;\r\n  local final = #str;\r\n  \/\/la\u00e7o para inicio da string sem espacos\r\n  para i = 1 , #str inicio\r\n    local letra = strcorte(str, i , i);\r\n    se letra &lt;&gt; ' ' entao\r\n       ini = i; \/\/se chega em uma letra marca o inicio e sai do la\u00e7o\r\n       quebre; \/\/sai do laco.\r\n    fim\r\n    \/\/poe(letra);\r\n  fim\/\/fim para\r\n  \r\n  \/\/laco para final da string excluindo espa\u00e7os\r\n  para i = #str, 1, -1 inicio \/\/-1 decrementa do final para o come\u00e7o da string\r\n       local letra = strcorte(str, i , i);\r\n       se letra &lt;&gt; ' ' entao\r\n         final = i;\r\n         quebre;\r\n       fim\r\n       \/\/poe (letra);   \r\n  fim\r\n  \r\n  \/\/ agora cortando a string no tamanho exato sem os espa\u00e7os ao redor.\r\n  retorne strcorte(str , ini, final);\/\/retornando a str pronta\r\nfim\r\n\r\n\/\/testando, a str deve sair com os &lt;&lt;&gt;&gt; colados no inicio e fim sem espa\u00e7os:\r\nimprima( '&lt;&lt;' .. apare(str) .. '&gt;&gt;' );\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Obs.: como uma fun\u00e7\u00e3o em Prisma tamb\u00e9m \u00e9 uma vari\u00e1vel, podemos reatribuir uma fun\u00e7\u00e3o em outra vari\u00e1vel, \u00e9 isto que fizemos em &#8220;local strcorte = string.corte&#8221;<\/p>\n<p>e assim strcorte passa a ser uma fun\u00e7\u00e3o local, isso d\u00e1 mais rapidez na execu\u00e7\u00e3o do programa.<\/p>\n<p>Bem, \u00e9 isso, bons estudos no c\u00f3digo. Use a vontade, modifique, aprimore e mande-nos um feedback.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>O que queremos \u00e9 uma fun\u00e7\u00e3o que retire espa\u00e7os ao redor de uma string. Neste caso devemos processar a string usando fun\u00e7\u00f5es j\u00e1 prontas em Prisma da biblioteca string. Usaremos a fun\u00e7\u00e3o\u00a0string.corte \u00a0para percorrer cada caractere e ao chegar em um caractere que n\u00e3o seja espa\u00e7o marcar a posi\u00e7\u00e3o com uma vari\u00e1vel, do inicio para&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2543","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/2543","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/comments?post=2543"}],"version-history":[{"count":3,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/2543\/revisions"}],"predecessor-version":[{"id":2546,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/2543\/revisions\/2546"}],"wp:attachment":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/media?parent=2543"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/categories?post=2543"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/tags?post=2543"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}