{"id":6715,"date":"2026-02-09T13:47:06","date_gmt":"2026-02-09T13:47:06","guid":{"rendered":"https:\/\/futureschoolead.com.br\/2026\/?p=6715"},"modified":"2026-02-09T13:47:06","modified_gmt":"2026-02-09T13:47:06","slug":"aula-06-funcoes-nativas-strings","status":"publish","type":"post","link":"https:\/\/futureschoolead.com.br\/2026\/2026\/02\/09\/aula-06-funcoes-nativas-strings\/","title":{"rendered":"Aula 06 &#8211; Fun\u00e7\u00f5es Nativas &#038; Strings"},"content":{"rendered":"<p class=\"ds-markdown-paragraph\" style=\"text-align: center;\"><strong>Manipula\u00e7\u00e3o de Strings: O Superpoder do REXX!<\/strong><br \/>\nFun\u00e7\u00f5es nativas que transformam dados brutos em informa\u00e7\u00e3o valiosa<\/p>\n<p><iframe loading=\"lazy\" title=\"YouTube video player\" src=\"https:\/\/www.youtube.com\/embed\/yo19QFS_VKs?si=QIHaJk22_8TnTx1L\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p class=\"ds-markdown-paragraph\">&#x1f524;\u00a0<strong>Fun\u00e7\u00f5es de String ESSENCIAIS:<\/strong><\/p>\n<div class=\"md-code-block md-code-block-light\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\n<div class=\"_121d384\">\n<pre class=\"d2a24f03\"><span class=\"d813de27\">rexx<\/span><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<pre>\/* LENGTH - Tamanho da string *\/\r\nnome = \"Mainframe\"\r\ntamanho = LENGTH(nome)  \/* = 9 *\/\r\n\r\n\/* SUBSTR - Extrai parte da string *\/\r\ntexto = \"REXX \u00e9 incr\u00edvel\"\r\nparte = SUBSTR(texto, 6, 2)  \/* = \"\u00e9\" *\/\r\n\r\n\/* INDEX - Encontra posi\u00e7\u00e3o *\/\r\npos = INDEX(\"Hello World\", \"World\")  \/* = 7 *\/\r\n\r\n\/* WORDS e WORD - Trabalhando com palavras *\/\r\nfrase = \"REXX no mainframe z\/OS\"\r\nquantas = WORDS(frase)  \/* = 4 palavras *\/\r\nterceira = WORD(frase, 3)  \/* = \"mainframe\" *\/<\/pre>\n<\/div>\n<p class=\"ds-markdown-paragraph\"><strong>&#x1f6e0;&#xfe0f; Kit completo de fun\u00e7\u00f5es:<\/strong><\/p>\n<div class=\"md-code-block md-code-block-light\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\n<div class=\"_121d384\">\n<pre class=\"d2a24f03\"><span class=\"d813de27\">rexx<\/span><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<pre>\/* CONVERS\u00d5ES *\/\r\nnum = \"123\"\r\nvalor = num + 1  \/* REXX converte automaticamente! *\/\r\n\r\n\/* Mai\u00fasculas\/min\u00fasculas *\/\r\ngrande = UPCASE(\"rexx\")  \/* = \"REXX\" *\/\r\npequena = LOWER(\"IBM\")   \/* = \"ibm\" *\/\r\n\r\n\/* Formata\u00e7\u00e3o *\/\r\ncentralizado = CENTER(\"T\u00edtulo\", 20, \"-\")\r\n\/* = \"-------T\u00edtulo-------\" *\/\r\n\r\n\/* Busca e substitui\u00e7\u00e3o *\/\r\nnovo = CHANGE(\"Ol\u00e1 Mundo\", \"Mundo\", \"Mainframe\")\r\n\/* = \"Ol\u00e1 Mainframe\" *\/<\/pre>\n<\/div>\n<p class=\"ds-markdown-paragraph\"><strong>&#x1f4bc; Exemplo REAL no mainframe:<\/strong><\/p>\n<div class=\"md-code-block md-code-block-light\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\n<div class=\"_121d384\">\n<pre class=\"d2a24f03\"><span class=\"d813de27\">rexx<\/span><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<pre>\/* ANALISA_JOB.rex - Analisa sa\u00edda de job *\/\r\nsaida = \"JOB1234 ENDED OK - 00:05:23 EXECUTION\" \r\n\/* Suponha que isso veio de um arquivo de log *\/\r\n\r\n\/* Extrai informa\u00e7\u00f5es *\/\r\nIF POS('ENDED OK', saida) &gt; 0 THEN DO\r\n  \/* Encontra tempo de execu\u00e7\u00e3o *\/\r\n  pos_inicio = INDEX(saida, '00:')\r\n  tempo = SUBSTR(saida, pos_inicio, 8)\r\n  \r\n  \/* Extrai n\u00famero do job *\/\r\n  primeiro_espaco = INDEX(saida, ' ')\r\n  job_num = SUBSTR(saida, 1, primeiro_espaco-1)\r\n  \r\n  SAY 'Job' job_num 'conclu\u00eddo com sucesso!'\r\n  SAY 'Tempo de execu\u00e7\u00e3o:' tempo\r\nEND ELSE DO\r\n  SAY 'Job n\u00e3o conclu\u00eddo corretamente'\r\n  SAY 'Status:' WORD(saida, 3)\r\nEND<\/pre>\n<\/div>\n<p class=\"ds-markdown-paragraph\"><strong>&#x1f4ca; Processando m\u00faltiplas linhas:<\/strong><\/p>\n<div class=\"md-code-block md-code-block-light\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\n<div class=\"_121d384\">\n<pre class=\"d2a24f03\"><span class=\"d813de27\">rexx<\/span><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<pre>\/* Processa lista de datasets *\/\r\ndatasets = \"USER.DATA.CLIENTES\",\r\n           \"USER.DATA.VENDAS\",\r\n           \"USER.DATA.PRODUTOS\"\r\n\r\nDO i = 1 TO WORDS(datasets)\r\n  dsname = WORD(datasets, i)\r\n  \r\n  \/* Extrai \u00faltimo componente *\/\r\n  ultimo_ponto = LASTPOS('.', dsname)\r\n  tipo = SUBSTR(dsname, ultimo_ponto + 1)\r\n  \r\n  SAY 'Dataset' i ':' tipo '-&gt;' dsname\r\nEND<\/pre>\n<\/div>\n<p class=\"ds-markdown-paragraph\"><strong>&#x1f381; B\u00d4NUS: Fun\u00e7\u00f5es \u00fateis pouco conhecidas:<\/strong><\/p>\n<div class=\"md-code-block md-code-block-light\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\n<div class=\"_121d384\">\n<pre class=\"d2a24f03\"><span class=\"d813de27\">rexx<\/span><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<pre>\/* SPACE - Controla espa\u00e7os entre palavras *\/\r\ncompacto = SPACE(\"REXX    no   mainframe\", 1)\r\n\r\n\/* COPIES - Repete strings *\/\r\nseparador = COPIES('-', 30)  \/* 30 tra\u00e7os *\/\r\n\r\n\/* DATATYPE - Verifica tipo *\/\r\nSAY DATATYPE(\"123\")   \/* = NUM *\/\r\nSAY DATATYPE(\"ABC\")   \/* = CHAR *\/\r\nSAY DATATYPE(\" \")     \/* = BLANK *\/<\/pre>\n<\/div>\n<p class=\"ds-markdown-paragraph\"><strong>CTA:<\/strong>\u00a0&#x1f4da; Material completo com TODAS as fun\u00e7\u00f5es nos coment\u00e1rios!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Manipula\u00e7\u00e3o de Strings: O Superpoder do REXX! Fun\u00e7\u00f5es nativas que transformam dados brutos em informa\u00e7\u00e3o valiosa &#x1f524;\u00a0Fun\u00e7\u00f5es de String ESSENCIAIS: rexx \/* LENGTH &#8211; Tamanho da string *\/ nome = &#8220;Mainframe&#8221; tamanho = LENGTH(nome) \/* = 9 *\/ \/* SUBSTR &#8211; Extrai parte da string *\/ texto = &#8220;REXX \u00e9 incr\u00edvel&#8221; parte = SUBSTR(texto, 6, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":6716,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32,42,43],"tags":[73,72,69,74,66,70,46,67,68,71,75],"class_list":["post-6715","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-mainframe","category-rexx","tag-brutos","tag-dados","tag-funcoes","tag-informacao","tag-manipulacao","tag-nativas","tag-rexx","tag-strings","tag-superpoder","tag-transformam","tag-valiosa"],"_links":{"self":[{"href":"https:\/\/futureschoolead.com.br\/2026\/wp-json\/wp\/v2\/posts\/6715","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/futureschoolead.com.br\/2026\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/futureschoolead.com.br\/2026\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/futureschoolead.com.br\/2026\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/futureschoolead.com.br\/2026\/wp-json\/wp\/v2\/comments?post=6715"}],"version-history":[{"count":1,"href":"https:\/\/futureschoolead.com.br\/2026\/wp-json\/wp\/v2\/posts\/6715\/revisions"}],"predecessor-version":[{"id":6717,"href":"https:\/\/futureschoolead.com.br\/2026\/wp-json\/wp\/v2\/posts\/6715\/revisions\/6717"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/futureschoolead.com.br\/2026\/wp-json\/wp\/v2\/media\/6716"}],"wp:attachment":[{"href":"https:\/\/futureschoolead.com.br\/2026\/wp-json\/wp\/v2\/media?parent=6715"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/futureschoolead.com.br\/2026\/wp-json\/wp\/v2\/categories?post=6715"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/futureschoolead.com.br\/2026\/wp-json\/wp\/v2\/tags?post=6715"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}