{"id":2600,"date":"2017-02-20T23:35:55","date_gmt":"2017-02-21T03:35:55","guid":{"rendered":"http:\/\/linguagemprisma.br4.biz\/blog\/?p=2600"},"modified":"2017-02-20T23:51:54","modified_gmt":"2017-02-21T03:51:54","slug":"novas-funcoes-de-string","status":"publish","type":"post","link":"https:\/\/linguagemprisma.br4.biz\/blog\/modo_texto\/novas-funcoes-de-string\/","title":{"rendered":"Novas fun\u00e7\u00f5es de string"},"content":{"rendered":"<p>Com o lan\u00e7amento novo Prisma novas fun\u00e7\u00f5es foram adicionadas outras melhoradas ou modificadas.<\/p>\n<p><em><strong>Antes de continuar baixe a vers\u00e3o mais atual (1.0.99 ou superior)<\/strong><\/em><\/p>\n<p>Aqui quero mostrar algumas fun\u00e7\u00f5es novas da biblioteca string:<\/p>\n<p>1 &#8211; strbase64 = string.base64(&#8216;string&#8217;)<\/p>\n<p>Esta fun\u00e7\u00e3o converte uma cadeia de caracteres de decimal para base 64, ficando assim codificada e irreconhec\u00edvel. Ela \u00e9 muito \u00fatil para armazenar imagens em texto, pois elimina os caracteres especiais.<\/p>\n<p>2 &#8211; str = string.dec_base64(&#8216;strbase64&#8217;);<\/p>\n<p>Faz o inverso, recebe uma string codificada em base64 e decodifica voltando ao estado original e leg\u00edvel.<\/p>\n<p>3 &#8211; strhex = string.hex(&#8216;string&#8217;);<\/p>\n<p>Converte uma string em hexadecimal.<\/p>\n<p>4 &#8211; str = string.dec_hex(&#8216;strhex&#8217;);<\/p>\n<p>Decodifica uma string hexadecimal.<\/p>\n<p>5 &#8211; str_sem_espacos = string.apares(&#8216;string_com_espacos&#8217;);<\/p>\n<pre class=\"lang:prisma decode:true\">local s = '    testando...           ';\r\nimprimaf(\"&gt;&gt;%s&lt;&lt;\", s:apare() );\r\n<\/pre>\n<p>Sa\u00edda: &gt;&gt;testando&#8230;&lt;&lt;<\/p>\n<p>Obs.: imprimaf(&#8220;format&#8221;,&#8230;); \u00e9 uma nova fun\u00e7\u00e3o (imprima formatado), \u00e9 o mesmo que:<\/p>\n<pre class=\"lang:prisma decode:true \">imprima( string.formate(\"&gt;&gt;%s&lt;&lt;\", string.apare(s)));<\/pre>\n<p>Obs.: Toda string \u00e9 um objeto com m\u00e9todos, ent\u00e3o voc\u00ea pode usar s:apare(); ou string.apare(s);<\/p>\n<p>Retira os espa\u00e7os do in\u00edcio e do fim da string. (do meio n\u00e3o);<\/p>\n<p>6 &#8211; tab = string.analise(&#8216;string&#8217;, &#8216;sinais&#8217;);<\/p>\n<p>Quebra uma string em tokens de acordo com os sinais do segundo par\u00e2metro, retornando uma tabela com cada token.<\/p>\n<p>Ex.:<\/p>\n<pre class=\"lang:prisma decode:true \">local s = [[imprima(\"ola mundo em Prisma\");]];\r\nlocal tab = s:analise([['\"();]]);\r\n\r\npara k , v em pares(tab) inicio\r\n  imprima(k,v)\r\nfim\r\n\r\n<\/pre>\n<p>Sa\u00edda:<\/p>\n<pre class=\"lang:prisma highlight:0 decode:true \">1    imprima\r\n2    (\r\n3    \"\r\n4    ola mundo em Prisma\r\n5    \"\r\n6    )\r\n7    ;<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Exemplos da base64 e hex:<\/p>\n<pre class=\"lang:prisma decode:true \">\/\/Teste fun\u00e7\u00f5es base64 e hexa na biblioteca string.\r\n\r\nlocal s = 'ol\u00e1 mundo em Prisma'\r\nlocal b = string.base64(s);\r\nlocal h = string.hex(s)\r\n\r\nimprima('Original:', s );\r\nimprima('\\nBase64:', b );\r\nimprima('\\nhexa:', h );\r\n\r\npoe'\\n-----------------------------------------------------\\n';\r\nimprima('Base64 decodificado:', string.dec_base64(b) );\r\npoe'';\r\nimprima( 'Hex decodificado:', string.dec_hex(h));\r\n\r\nes.escreva'\\n\\nENTER para sair ';\r\nleia();\r\n<\/pre>\n<p>Para usar com imagens, ou outros arquivos bin\u00e1rios:<\/p>\n<pre class=\"lang:prisma decode:true\">\/\/lendo a imagem\r\nlocal a = es.abra('img.jpg','leiturabin');\r\nse a entao\r\n  txt = a:leia'*t';\r\n  a:feche();\r\n  txt_b64 = string.base64(txt); \/\/codificando\r\n  local result = \"img = '\".. txt_b64 .. \"'\";\r\n  local b = es.abra('img.prisma','escrita');\/\/gravando\r\n  se b entao\r\n    b:escreva(result);\r\n    b:feche();\r\n    executearquivo('img.prisma');\/\/executando img='....'\r\n    se(img) entao\r\n      \/\/seu codigo aqui.\r\n    fim\r\n  senao\r\n    erro'Erro ao abrir arquivo para escrita';\r\n  fim\r\nsenao\r\n  erro'Erro ao abrir arquivo';\r\nfim<\/pre>\n<p>&nbsp;<\/p>\n<p>Por enquanto \u00e9 isso, at\u00e9 mais.<\/p>\n<p>Att. Adalberto<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Com o lan\u00e7amento novo Prisma novas fun\u00e7\u00f5es foram adicionadas outras melhoradas ou modificadas. Antes de continuar baixe a vers\u00e3o mais atual (1.0.99 ou superior) Aqui quero mostrar algumas fun\u00e7\u00f5es novas da biblioteca string: 1 &#8211; strbase64 = string.base64(&#8216;string&#8217;) Esta fun\u00e7\u00e3o converte uma cadeia de caracteres de decimal para base 64, ficando assim codificada e irreconhec\u00edvel&#8230;.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,7],"tags":[],"class_list":["post-2600","post","type-post","status-publish","format-standard","hentry","category-modo_texto","category-prisma"],"_links":{"self":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/2600","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=2600"}],"version-history":[{"count":9,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/2600\/revisions"}],"predecessor-version":[{"id":2609,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/2600\/revisions\/2609"}],"wp:attachment":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/media?parent=2600"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/categories?post=2600"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/tags?post=2600"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}