diff --git a/CEL/O Ambiente de Trabalho b/CEL/O Ambiente de Trabalho index c8126ef1..abccb60c 100644 --- a/CEL/O Ambiente de Trabalho +++ b/CEL/O Ambiente de Trabalho @@ -4,7 +4,7 @@ Rotina para que se adicione um bot Se a string estiver em branco, Esvazie o botão; Retorne. - Se a caixa de diálogo for inexistente, + Se a caixa de diálogo for inexistente, Retorne. Crie o botão. Acrescente o botão para os botões desta caixa de diálogo. @@ -34,7 +34,7 @@ Rotina para que se adicione um nome e um r Adicione o nome e "" e o rótulo para o submenu. Rotina para que se adicione um nome e um atalho de tecla e um rótulo para um submenu: - Se o submenu for inexistente, + Se o submenu for inexistente, Retorne. Crie um comando. Acrescente o comando para os comandos deste submenu. @@ -46,7 +46,7 @@ Rotina para que se adicione um nome e um atalho de tecla e um r Atribua "à esquerda" ao alinhamento deste comando. Rotina para que se adicione a paleta de cores para um submenu usando um rótulo: - Se o submenu for inexistente, + Se o submenu for inexistente, Retorne. Adicione a cor branca e o rótulo para o submenu. Atribua a largura da paleta de cores dividido por 3 ao largura deste último comando destes comandos deste submenu. @@ -71,7 +71,7 @@ Rotina para que se adicione a paleta de cores para um submenu usando um r Adicione a paleta de cores para o submenu usando o rótulo e a cor rosa. Rotina para que se adicione a paleta de cores para um submenu usando um rótulo e uma cor: - Se o submenu for inexistente, + Se o submenu for inexistente, Retorne. Preserve a cor. Atribua 875 à luminosidade desta cor. \ Pretendo mudar pra 800, pra não ficar tão claro como está agora @@ -84,19 +84,19 @@ Rotina para que se adicione a paleta de cores para um submenu usando um r Reitere. Rotina para que se determine se o usuário clicou em um comando: - Se a localização deste mouse estiver neste comando, + Se a localização deste mouse estiver neste comando, Diga sim. Diga não. Rotina para que se determine se o mouse está em cima de um comando: \ Noodle? \Se a localização deste mouse estiver na caixa arredondada deste comando, diga sim. Atribua a localização deste mouse para uma localização. - Se a localização estiver neste comando, + Se a localização estiver neste comando, Diga sim. Diga não. Rotina para que se ajuste a caixa de diálogo: - Se a caixa de diálogo for inexistente, + Se a caixa de diálogo for inexistente, Retorne. Ajuste a caixa de diálogo (botões). Ajuste a caixa de diálogo (caixa arredondada). @@ -108,7 +108,7 @@ Rotina para que se ajuste a caixa de di Atribua a coordenada X2 desta caixa arredondada menos a largura do botão do painel à coordenada X1 desta caixa arredondada. Itere. Obtenha um botão desde os botões desta caixa de diálogo (regressivamente). - Se o botão for inexistente, + Se o botão for inexistente, Retorne. Atribua a caixa arredondada à caixa arredondada deste botão. Mova a caixa arredondada para a esquerda a largura do botão do painel. @@ -128,13 +128,13 @@ Rotina para que se ajuste a caixa de di Rotina para que se ajuste a caixa de diálogo (caixa arredondada): Atribua a caixa de exibição deste painel superior direito e 8 pixels [raio da borda ] à caixa arredondada desta caixa de diálogo. - Se os botões desta caixa de diálogo estiverem vazios, + Se os botões desta caixa de diálogo estiverem vazios, Retorne. Atribua a coordenada X1 deste primeiro botão desta caixa de diálogo à coordenada X2 desta caixa arredondada desta caixa de diálogo. Rotina para que se ajuste a caixa de diálogo (caixa de texto): - Se a caixa de texto desta caixa de diálogo for inexistente, + Se a caixa de texto desta caixa de diálogo for inexistente, Retorne. Ative o detector de rolagem horizontal desta caixa de texto desta caixa de diálogo. Selecione cada byte na caixa de texto desta caixa de diálogo. @@ -146,15 +146,15 @@ Rotina para que se ajuste a caixa de di Mude a caixa de texto desta caixa de diálogo usando a caixa. Rotina para que se ajuste um menu usando uma localização e uma largura: - Se o menu for inexistente, + Se o menu for inexistente, Retorne. Preserve a localização. Atribua a coordenada X desta localização mais a largura para uma coordenada X2. Itere. Obtenha um comando desde os comandos deste menu. Se o comando for inexistente, pare. - Se a coordenada X desta localização mais a largura deste comando for maior do que a coordenada X2, - Atribua a coordenada X desta original localização à coordenada X desta localização; + Se a coordenada X desta localização mais a largura deste comando for maior do que a coordenada X2, + Atribua a coordenada X desta original localização à coordenada X desta localização; Adicione a altura do botão do painel para a coordenada Y desta localização. Atribua a localização e a localização à caixa arredondada deste comando. Adicione a largura deste comando e a altura do botão do painel para o canto inferior direito desta caixa arredondada deste comando. @@ -170,9 +170,9 @@ Rotina para que se ajuste umas abas: Se a aba for inexistente, retorne. Atribua a caixa deste alternador à caixa desta aba. Adicione 24 pixels para a coordenada Y1 desta aba. - Se a aba não for a primeira aba destas abas, + Se a aba não for a primeira aba destas abas, Atribua a coordenada X2 desta aba anterior desta aba à coordenada X1 desta aba. - Se a aba não for a última aba destas abas, + Se a aba não for a última aba destas abas, Atribua a coordenada X1 desta aba mais a largura à coordenada X2 desta aba. Reitere. @@ -235,11 +235,11 @@ Um bot A largura do botão do painel é 96 pixels. \ era 64. São os botões de diálogo, tais como "Sim", "Não", "Cancelar", etc. Rotina para que se feche a caixa de diálogo: - Se a caixa de diálogo for inexistente, + Se a caixa de diálogo for inexistente, Retorne. - Se a caixa de texto desta caixa de diálogo for inexistente, + Se a caixa de texto desta caixa de diálogo for inexistente, Atribua "cancelar" ao texto do campo. - Se a caixa de texto desta caixa de diálogo não for inexistente, + Se a caixa de texto desta caixa de diálogo não for inexistente, Atribua "" ao texto do campo. Renuncie ao controle. @@ -273,7 +273,7 @@ Rotina para que se crie um menu: Aloque memória para o menu. Atribua a letra 'A' maiúscula para um byte. Itere. - Se o byte for maior do que o Z maiúsculo, + Se o byte for maior do que o Z maiúsculo, Pare. Atribua o byte para uma string. Adicione a string e a string ao menu. @@ -321,13 +321,13 @@ O processo atual A aba atual é uma aba. Rotina para que se determine se um evento é ctrl-tab: - Se o evento for inexistente, + Se o evento for inexistente, Diga não. - Se a categoria deste evento não for "pressionamento de tecla", + Se a categoria deste evento não for "pressionamento de tecla", Diga não. - Se a tecla deste evento não for a tecla Tab, + Se a tecla deste evento não for a tecla Tab, Diga não. - Se o detector de tecla Ctrl deste evento não estiver ativo, + Se o detector de tecla Ctrl deste evento não estiver ativo, Diga não. Diga sim. @@ -649,7 +649,7 @@ Rotina para que se pinte uma aba: Se a aba anterior desta aba não for inexistente, pinte a linha reta do lado esquerdo desta caixa desta aba com a cor preta. \ok Se a aba não for a aba atual, pinte a linha de cima desta caixa desta aba com a cor preta. \ ok \Se a aba for a aba atual, pinte o nome desta aba no centro de a caixa desta aba com a cor preta e a fonte padrão. - \Se a aba não for a aba atual, + \Se a aba não for a aba atual, Pinte o nome desta aba no centro de a caixa desta aba com a cor preta e a fonte padrão. Rotina para que se pinte umas abas: @@ -736,9 +736,9 @@ Rotina para que se encontre um aba dispon O modo de localização de texto é uma string. \ A localização de texto possui os seguintes modos: - \ localização de texto comum, - \ verificação ortográfica comum, - \ verificação ortográfica - em todas as páginas do documento, + \ localização de texto comum, + \ verificação ortográfica comum, + \ verificação ortográfica - em todas as páginas do documento, \ verificação ortográfica - apenas na página atual do documento Rotina para que se encontre uma aba usando uma localização: @@ -974,8 +974,8 @@ Rotina para que se execute um comando: Se o rótulo deste comando for "*", Execute o comando (*); Retorne. \ special menu - Se o rótulo deste comando for "F4", - Efetue a saída; + Se o rótulo deste comando for "F4", + Efetue a saída; Retorne. \ special menu \ does it dispatchers Mostre o ambiente de trabalho. @@ -2215,17 +2215,17 @@ Rotina para que se execute um evento usando a caixa de di Retorne. Rotina para que se execute um evento usando a caixa de diálogo (clique - confirmação/negação): - Se a localização deste evento não estiver no painel superior direito, - Feche a caixa de diálogo; + Se a localização deste evento não estiver no painel superior direito, + Feche a caixa de diálogo; Retorne. Encontre um botão usando a localização deste evento. - Se o botão for inexistente, + Se o botão for inexistente, Retorne. Atribua o nome deste botão ao texto do campo. Renuncie ao controle. \Abdique Rotina para que se execute um evento usando a caixa de diálogo (clique - erro): - Se a localização deste evento não estiver no painel superior direito, + Se a localização deste evento não estiver no painel superior direito, Feche a caixa de diálogo; Retorne. Encontre um botão usando a localização deste evento. @@ -2234,29 +2234,29 @@ Rotina para que se execute um evento usando a caixa de di Renuncie ao controle. Rotina para que se execute um evento usando a caixa de diálogo (clique - input): - Se a localização deste evento não estiver no painel superior direito, - Feche a caixa de diálogo; + Se a localização deste evento não estiver no painel superior direito, + Feche a caixa de diálogo; Retorne. - Se a localização deste evento estiver na caixa de texto desta caixa de diálogo, - Rastreie a caixa de diálogo usando o evento; + Se a localização deste evento estiver na caixa de texto desta caixa de diálogo, + Rastreie a caixa de diálogo usando o evento; Retorne. Encontre um botão usando a localização deste evento. Se o botão for inexistente, retorne. - Se o nome deste botão for "cancelar", - Feche a caixa de diálogo; + Se o nome deste botão for "cancelar", + Feche a caixa de diálogo; Retorne. Extraia o texto do campo desde a caixa de texto desta caixa de diálogo. Renuncie ao controle. Rotina para que se execute um evento usando a caixa de diálogo (clique): - Se a categoria desta caixa de diálogo for "botão", - Execute o evento usando a caixa de diálogo (clique - confirmação/negação); + Se a categoria desta caixa de diálogo for "botão", + Execute o evento usando a caixa de diálogo (clique - confirmação/negação); Retorne. - Se a categoria desta caixa de diálogo for "erro", - Execute o evento usando a caixa de diálogo (clique - erro); + Se a categoria desta caixa de diálogo for "erro", + Execute o evento usando a caixa de diálogo (clique - erro); Retorne. - Se a categoria desta caixa de diálogo for "input", - Execute o evento usando a caixa de diálogo (clique - input); + Se a categoria desta caixa de diálogo for "input", + Execute o evento usando a caixa de diálogo (clique - input); Retorne. Rotina para que se execute um evento usando a caixa de diálogo (clique duplo): diff --git a/CEL/O Compilador b/CEL/O Compilador index af612499..8c3856a3 100644 --- a/CEL/O Compilador +++ b/CEL/O Compilador @@ -1,5 +1,5 @@ \ Este arquivo contém o código fonte do compilador da linguagemd e programação "Português Puro" -\ firstparam=esp+4/ebp+8, +\ firstparam=esp+4/ebp+8, \secondparam=esp+8/ebp+12, etc... \ Strings são implementadas como uma struct que contém 2 membros, a saber: @@ -10,9 +10,9 @@ \ Parâmetros são passados por referência \ Os registradores EBP (ponteiro base) e ESP (ponteiro de pilha) são usados para manipular a PILHA -\ que é uma área da memória que você pode imaginar como uma pilha de pratos, +\ que é uma área da memória que você pode imaginar como uma pilha de pratos, \ sendo que cada prato representando um valor salvo em um registrador, -\ ou um endereço em algum lugar no código do programa, +\ ou um endereço em algum lugar no código do programa, \ ou o endereço de uma variável (que reside em algum outro lugar na memória), \ ou o conteúdo de uma variável. @@ -26,7 +26,7 @@ \ Você pode ver que dessa forma, o primeiro parâmetro de uma rotina estará no endereço do registrador EBP + 8, \ o segundo parâmetro estará no endereço em EBP + 12, etc. -\ E que nossas variáveis locais serão estarão no endereço no registrador EBP menos 4, menos 8, etc, +\ E que nossas variáveis locais serão estarão no endereço no registrador EBP menos 4, menos 8, etc, \ dependendo, é claro, do tamanho de cada uma dessas variáveis. \ O prólogo de cada rotina em português puro começa salvando o ebp do chamador na pilha, logo acima do endereço de retorno. @@ -1507,10 +1507,10 @@ Rotina para que se calcule os deslocamentos das redefini Se o campo for inexistente, retorne. Se o novo nome deste campo estiver em branco, reitere. Encontre um segundo campo usando o novo nome deste campo e os campos deste tipo. - Se o segundo campo for inexistente, + Se o segundo campo for inexistente, Apresente uma mensagem de erro contendo "Erro #12. Palavra-chave 'sob' utilizada incorretamente. O campo '" junto com o novo nome deste campo seguido de "' da estrutura '" - junto com o nome deste tipo seguido de "' não pode ser encontrado." e o endereço local deste campo; + junto com o nome deste tipo seguido de "' não pode ser encontrado." e o endereço local deste campo; Retorne. Atribua o deslocamento deste segundo campo ao deslocamento deste campo. Reitere. @@ -1531,20 +1531,20 @@ Rotina para que se verifique por informa Rotina para que se verifique por informações opcionais inválidas em um tipo (campos): Se existir algum problema de compilação, retorne. - Se o tipo não puder ser reduzido para "estrutura", + Se o tipo não puder ser reduzido para "estrutura", Apresente uma mensagem de erro contendo "Erro #13. A palavra-chave 'com' deve ser utilizada apenas em estruturas." e o endereço local deste tipo; \ ABCDE Retorne. Rotina para que se verifique por informações opcionais inválidas em um tipo (tipos fracionários): Se existir algum problema de compilação, retorne. - Se o tipo não puder ser reduzido para "número", - Apresente uma mensagem de erro contendo "Erro #14. Proporções e escalas de medida só podem ser utilizadas em tipos de dados numéricos." e o endereço local deste tipo; + Se o tipo não puder ser reduzido para "número", + Apresente uma mensagem de erro contendo "Erro #14. Proporções e escalas de medida só podem ser utilizadas em tipos de dados numéricos." e o endereço local deste tipo; Retorne. Rotina para que se verifique por informações opcionais inválidas em um tipo (conteúdo): Se existir algum problema de compilação, retorne. - Se o tipo não puder ser reduzido para "ponteiro", - Apresente uma mensagem de erro contendo "Erro #15. A palavra-chave 'para' só pode ser utilizada ao apontar para variáveis do tipo ponteiro." e o endereço local deste tipo; + Se o tipo não puder ser reduzido para "ponteiro", + Apresente uma mensagem de erro contendo "Erro #15. A palavra-chave 'para' só pode ser utilizada ao apontar para variáveis do tipo ponteiro." e o endereço local deste tipo; Retorne. Rotina para que se limpe um campo de estrutura: @@ -2110,7 +2110,7 @@ Rotina para que se compile um valor literal usando um percorredor (valor num Se a razão de escala deste tipo for 0, atribua 1/1 ao final proporção. Multiplique o final proporção pelo proporção. Reduza o final proporção. - Se o denominador deste final proporção for 0, + Se o denominador deste final proporção for 0, Apresente a mensagem de erro contendo "Erro #47. Denominador igual a zero. Unidade de medida inválida." e o endereço local deste valor literal. Atribua o numerador deste final proporção dividido pelo denominador deste final proporção para um número. Atribua o nome deste tipo ao nome do tipo deste valor literal. @@ -2294,11 +2294,11 @@ Rotina para que se compile a pr Rotina para que se compile a próxima instrução usando um percorredor (palavra-chave 'processe' - chamada interna): Compile umas unidades semânticas usando o percorredor. Encontre uma rotina usando as unidades semânticas. - Se a rotina não for inexistente, + Se a rotina não for inexistente, Adicione push fragmentos usando as unidades semânticas. Se a rotina não for inexistente, Destrua as unidades semânticas; - Adicione um fragmento usando a etiqueta de demanda interna e a rotina; + Adicione um fragmento usando a etiqueta de demanda interna e a rotina; Retorne. \ Se a rotina for inexistente, Converta as unidades semânticas para uma representação interna da rotina. @@ -2454,9 +2454,9 @@ Rotina para que se compile a pr Apresente uma mensagem de erro contendo "Erro #71. A variável '" junto com a frase deste termo seguido de "' deste termo não pode ser encontrada." e o percorredor; Retorne. - Se a categoria deste termo for "literal", + Se a categoria deste termo for "literal", Apresente a mensagem de erro contendo "Erro #72. Identificado valor literal na categoria deste termo." e o percorredor. - Se a quantidade de caracteres deste tipo deste termo não for 4, + Se a quantidade de caracteres deste tipo deste termo não for 4, Apresente a mensagem de erro contendo "Erro #73. Variável de comprimento diferente de 4 ." e o percorredor. Se o segmento inicial deste percorredor não for "para", Apresente a mensagem de erro contendo "Erro #74. A palavra-chave 'para é necessária após o comando 'aponte'. Termo encontrado: " @@ -2502,7 +2502,7 @@ Rotina para que se compile a pr Destrinche a variável local. Anteponha "original " para o nome deste termo. \Acrescente " original" para o nome deste termo. - Se o apelido deste termo não estiver em branco, + Se o apelido deste termo não estiver em branco, Anteponha "original " para o apelido deste termo. \Acrescente " original" para o apelido deste termo. Adicione fragmentos diversos usando "Atribua" e a variável deste termo e "para" e a variável local e o caractere inicial deste segmento inicial deste percorredor. @@ -4294,7 +4294,7 @@ Rotina para que se encontre um campo de estrutura usando um frase e um tipo e um Encontre a rotina usando "atribua" e o tipo e "'s " junto com o nome e "para". \traduzir Se a rotina não for inexistente, Ative o detector de empilhamento deste campo de estrutura; - Atribua a rotina à rotina de função deste campo de estrutura; + Atribua a rotina à rotina de função deste campo de estrutura; Retorne. \ code below for looking deep dentre pointers - a debatable feature \ Se o tipo do conteúdo deste tipo não for inexistente, encontre a rotina usando "atribua" e o tipo do conteúdo deste tipo e "'s " junto com o nome e "para". @@ -4309,7 +4309,7 @@ Rotina para que se encontre um campo de estrutura usando um tipo e um nome: Se o tipo do conteúdo deste tipo não for inexistente, encontre o campo usando o nome e os campos deste tipo do conteúdo deste tipo. Se o campo não for inexistente, Ative o detector de redirecionamento deste campo de estrutura; - Atribua o campo ao campo deste campo de estrutura; + Atribua o campo ao campo deste campo de estrutura; Retorne. Rotina para que se encontre um fragmento usando um segundo fragmento e uma etiqueta: @@ -5433,7 +5433,7 @@ Rotina para que se pluralize uma string (portugu \# palavra terminadas com "m" Se a string termina com "m", Remova o último caractere desde a string; - Acrescente "ns" para a string; + Acrescente "ns" para a string; Retorne. \# palavra terminadas com "n" (essa regra é preferível porque mantém o acento da palavra, se houver) Se a string termina com "n", @@ -5507,19 +5507,19 @@ Rotina para que se pluralize uma string (terminada com " \Alguns substantivos terminados em -ão formam o plural com -ães. Se a string for "pão", Remova o último caractere desde a string; - Acrescente "es" para a string; + Acrescente "es" para a string; Retorne. Se a string for "capitão", Remova o último caractere desde a string; - Acrescente "es" para a string; + Acrescente "es" para a string; Retorne. Se a string for "alemão", Remova o último caractere desde a string; - Acrescente "es" para a string; + Acrescente "es" para a string; Retorne. Se a string for "charlatão", Remova o último caractere desde a string; - Acrescente "es" para a string; + Acrescente "es" para a string; Retorne. Lance um subtexto sobre a string. Subtraia 2 desde o caractere final deste subtexto. \ remova o "ão". Acho que não precisa @@ -5575,7 +5575,7 @@ Rotina para que se pluralize uma string (terminada com "el"): Subtraia 2 desde o caractere final deste subtexto. \ remova o el Se o subtexto possui alguma vogal acentuada, Remova o último caractere desde a string; - Acrescente "is" para a string; + Acrescente "is" para a string; Retorne. Remova os dois últimos caracteres desde a string. Acrescente "éis" para a string. \ Retorne. @@ -5592,7 +5592,7 @@ Rotina para que se pluralize uma string (terminada com "il"): Subtraia 2 desde o caractere final deste subtexto. Se o subtexto possui alguma vogal acentuada, Remova os dois últimos caracteres desde a string; - Acrescente "eis" para a string; + Acrescente "eis" para a string; Retorne. Remova o último caractere desde a string. \ remova a letra L Acrescente "s" para a string. \ Retorne. @@ -5603,7 +5603,7 @@ Rotina para que se pluralize uma string (terminada com "ol"): Subtraia 2 desde o caractere final deste subtexto. Se o subtexto possui alguma vogal acentuada, Remova o último caractere desde a string; - Acrescente "is" para a string; + Acrescente "is" para a string; Retorne. Remova os dois últimos caracteres desde a string. Acrescente "óis" para a string. \ Retorne. @@ -5625,11 +5625,11 @@ Rotina para que se pluralize uma string (terminada com "r"): \# hiatos Se a string termina com "air", Remova os dois últimos caracteres desde a string; - Acrescente "íres" para a string; + Acrescente "íres" para a string; Retorne. Se a string termina com "aur", Remova os dois últimos caracteres desde a string; - Acrescente "úres" para a string; + Acrescente "úres" para a string; Retorne. \# regra padrão Acrescente "es" para a string. \ Retorne. @@ -5656,35 +5656,35 @@ Rotina para que se pluralize uma string (terminada com "s"): \# oxítonas terminadas com "ás", "âs", "és", "ês", "ís", "ós", "ôs", "ús" Se a string termina com "ás", Remova os dois últimos caracteres desde a string; - Acrescente "ases" para a string; + Acrescente "ases" para a string; Retorne. Se a string termina com "âs", Remova os dois últimos caracteres desde a string; - Acrescente "ases" para a string; + Acrescente "ases" para a string; Retorne. Se a string termina com "és", Remova os dois últimos caracteres desde a string; - Acrescente "eses" para a string; + Acrescente "eses" para a string; Retorne. Se a string termina com "ês", Remova os dois últimos caracteres desde a string; - Acrescente "eses" para a string; + Acrescente "eses" para a string; Retorne. Se a string termina com "ís", Remova os dois últimos caracteres desde a string; - Acrescente "ises" para a string; + Acrescente "ises" para a string; Retorne. Se a string termina com "ós", Remova os dois últimos caracteres desde a string; - Acrescente "oses" para a string; + Acrescente "oses" para a string; Retorne. Se a string termina com "ôs", Remova os dois últimos caracteres desde a string; - Acrescente "oses" para a string; + Acrescente "oses" para a string; Retorne. Se a string termina com "ús", Remova os dois últimos caracteres desde a string; - Acrescente "uses" para a string; + Acrescente "uses" para a string; Retorne. \# palavras terminadas com "is", "us" Se a string termina com "is", @@ -5705,18 +5705,18 @@ Rotina para que se pluralize uma string (terminada com "is" ou com "us"): \# hiatos Se a string termina com "ais", Remova os dois últimos caracteres desde a string; - Acrescente "íses" para a string; + Acrescente "íses" para a string; Retorne. \cais não varia.... Se a string termina com "aus", Remova os dois últimos caracteres desde a string; - Acrescente "úses" para a string; + Acrescente "úses" para a string; Retorne. \# regra padrão Acrescente "es" para a string. \ Retorne. Rotina para que se pluralize uma string (terminada com "x"): - \Se a string for "px", - \acrescente "pxs" para a string; + \Se a string for "px", + \acrescente "pxs" para a string; \Retorne. Se a string for "fax", Acrescente "es" para a string; @@ -5736,35 +5736,35 @@ Rotina para que se pluralize uma string (terminada com "z"): \# palavras terminas em "áz", "âz", "éz", "êz", "íz", "óz", "ôz", "úz" Se a string termina com "áz", Remova os dois últimos caracteres desde a string; - Acrescente "azes" para a string; + Acrescente "azes" para a string; Retorne. Se a string termina com "âz", Remova os dois últimos caracteres desde a string; - Acrescente "azes" para a string; + Acrescente "azes" para a string; Retorne. Se a string termina com "éz", Remova os dois últimos caracteres desde a string; - Acrescente "ezes" para a string; + Acrescente "ezes" para a string; Retorne. Se a string termina com "êz", Remova os dois últimos caracteres desde a string; - Acrescente "ezes" para a string; + Acrescente "ezes" para a string; Retorne. Se a string termina com "íz", Remova os dois últimos caracteres desde a string; - Acrescente "izes" para a string; + Acrescente "izes" para a string; Retorne. Se a string termina com "óz", Remova os dois últimos caracteres desde a string; - Acrescente "ozes" para a string; + Acrescente "ozes" para a string; Retorne. Se a string termina com "ôz", Remova os dois últimos caracteres desde a string; - Acrescente "ozes" para a string; + Acrescente "ozes" para a string; Retorne. Se a string termina com "úz", Remova os dois últimos caracteres desde a string; - Acrescente "uzes" para a string; + Acrescente "uzes" para a string; Retorne. \# acentos em sílabas prévias Lance um subtexto sobre a string. @@ -5775,11 +5775,11 @@ Rotina para que se pluralize uma string (terminada com "z"): \# hiatos Se a string termina com "aiz", Remova os dois últimos caracteres desde a string; - Acrescente "ízes" para a string; + Acrescente "ízes" para a string; Retorne. Se a string termina com "auz", Remova os dois últimos caracteres desde a string; - Acrescente "úzes" para a string; + Acrescente "úzes" para a string; Retorne. \# regra padrão Acrescente "es" para a string. \ Retorne. @@ -6485,13 +6485,13 @@ Rotina para que se examine uma rotina usando um percorredor: Retorne. Mova o percorredor (usando diretrizes de compilação). \ ignora o "para" e obtém o próximo segmento inicial Se o segmento inicial deste percorredor for "que", mova o percorredor (usando diretrizes de compilação). - \Se o segmento inicial deste percorredor não for "que", - \apresente uma mensagem de erro contendo "Você precisa colocar um 'que' antes da palavra: " junto com o segmento inicial deste percorredor seguido de "." e o percorredor; + \Se o segmento inicial deste percorredor não for "que", + \apresente uma mensagem de erro contendo "Você precisa colocar um 'que' antes da palavra: " junto com o segmento inicial deste percorredor seguido de "." e o percorredor; \Retorne. \Mova o percorredor (usando diretrizes de compilação). \ ignora o "que" e obtém o próximo segmento inicial Se o segmento inicial deste percorredor for "se", mova o percorredor (usando diretrizes de compilação). - \Se o segmento inicial deste percorredor não for "se", - \apresente uma mensagem de erro contendo "Você precisa colocar um 'se' antes da palavra: " junto com o segmento inicial deste percorredor seguido de "." e o percorredor; + \Se o segmento inicial deste percorredor não for "se", + \apresente uma mensagem de erro contendo "Você precisa colocar um 'se' antes da palavra: " junto com o segmento inicial deste percorredor seguido de "." e o percorredor; \Retorne. \Mova o percorredor (usando diretrizes de compilação). \ ignora o "se" e obtém o próximo segmento inicial Examine a cabeçalho de rotina desta rotina usando o percorredor. @@ -6509,7 +6509,7 @@ Rotina para que se examine uma rotina usando um percorredor (sobrecarga de m Preserve o percorredor. Mova o percorredor (usando diretrizes de compilação). Se o segmento inicial deste percorredor não for o início de alguma rotina, - Apresente uma mensagem de erro contendo "Erro #163. Erro de sintaxe. ';' ausente ou mal posicionado" e o original percorredor; + Apresente uma mensagem de erro contendo "Erro #163. Erro de sintaxe. ';' ausente ou mal posicionado" e o original percorredor; Retorne. Atribua o caractere inicial deste segmento inicial deste original percorredor ao caractere inicial destas instruções desta rotina. Atribua o caractere final deste segmento inicial deste original percorredor ao caractere final destas instruções desta rotina. @@ -6570,27 +6570,27 @@ Rotina para que se examine um tipo usando um percorredor: Adicione 1 à contagem. \Se o português detector estiver ativo, pluralize o nome plural deste tipo (strings em português); adicione 1 à contagem. Se a contagem for igual ou maior do que 2, - Apresente uma mensagem de erro contendo "Erro #165. não foi possível detectar o idioma desta variável" e o endereço local deste tipo; + Apresente uma mensagem de erro contendo "Erro #165. não foi possível detectar o idioma desta variável" e o endereço local deste tipo; Retorne. Se o segmento inicial deste percorredor for algum operador de atribuição de estruturas compostas, Examine o tipo usando o percorredor(cláusula 'tem'); Retorne. Se o segmento inicial deste percorredor não for algum operador de atribuição simples, - Apresente a mensagem de erro contendo "Erro #166. Esperado 'é/está'. Encontrado '" junto com o segmento inicial deste percorredor seguido de "'." e o percorredor; + Apresente a mensagem de erro contendo "Erro #166. Esperado 'é/está'. Encontrado '" junto com o segmento inicial deste percorredor seguido de "'." e o percorredor; Retorne. Mova o percorredor (usando diretrizes de compilação). Se o segmento inicial deste percorredor for algum valor numérico literal, Examine o tipo usando o percorredor (unidade de medida); Retorne. Se o segmento inicial deste percorredor não for algum artigo indefinido, - Apresente a mensagem de erro contendo "Erro #167. Esperado 'um/uma'. Encontrado '" junto com o segmento inicial deste percorredor seguido de "'." e o percorredor; + Apresente a mensagem de erro contendo "Erro #167. Esperado 'um/uma'. Encontrado '" junto com o segmento inicial deste percorredor seguido de "'." e o percorredor; Retorne. Mova o percorredor (usando diretrizes de compilação). Examine o nome do tipo primitivo deste tipo usando o percorredor. Examine algum dado complementar para o tipo usando o percorredor. Se o segmento inicial deste percorredor não for o ponto final, Apresente a mensagem de erro contendo "Erro #168. Insira um '.' após a declaração do tipo." - Junto com o segmento inicial deste percorredor seguido de "." e o percorredor; + Junto com o segmento inicial deste percorredor seguido de "." e o percorredor; Retorne. Mova o percorredor (usando diretrizes de compilação). Catalogue o tipo. @@ -6633,7 +6633,7 @@ Rotina para que se scrub umas refer Permute as referências com uns segunda referências. Itere. Atribua a primeira referência destes segunda referências para uma referência. - Se a referência for inexistente, + Se a referência for inexistente, Retorne. Remova a referência desde a segunda referências. Se o ponteiro deste referência for inexistente, @@ -6815,28 +6815,28 @@ Rotina para que se transforme um fragmento em c \Rotina para que se transforme um fragmento em código hexadecimal (atribuição de EAX): \Acrescente a instrução de carregamento de endereço para o código deste fragmento usando a variável deste fragmento. \ atribua endereço para edx -\Se a variável deste fragmento for inexistente, - \Apresente uma mensagem de erro contendo "Internal erro - transforme um fragmento em código hexadecimal (atribuição de EAX)"; +\Se a variável deste fragmento for inexistente, + \Apresente uma mensagem de erro contendo "Internal erro - transforme um fragmento em código hexadecimal (atribuição de EAX)"; \Retorne. -\Se o tipo desta variável deste fragmento for inexistente, - \Apresente uma mensagem de erro contendo "Internal erro 2 - transforme um fragmento em código hexadecimal (atribuição de EAX)"; +\Se o tipo desta variável deste fragmento for inexistente, + \Apresente uma mensagem de erro contendo "Internal erro 2 - transforme um fragmento em código hexadecimal (atribuição de EAX)"; \Retorne. - \Se a quantidade de caracteres deste tipo desta variável deste fragmento não for 4, - \Apresente uma mensagem de erro contendo "Internal erro 3 - transforme um fragmento em código hexadecimal (atribuição de EAX)"; + \Se a quantidade de caracteres deste tipo desta variável deste fragmento não for 4, + \Apresente uma mensagem de erro contendo "Internal erro 3 - transforme um fragmento em código hexadecimal (atribuição de EAX)"; \Retorne. \Acrescente $8B02 para o código deste fragmento. \ mov eax,[edx] Rotina para que se transforme um fragmento em código hexadecimal (atribuição de EAX): Acrescente $B8 e o detector deste fragmento para o código deste fragmento. \ mov eax,detector \Acrescente a instrução de carregamento de endereço para o código deste fragmento usando a variável do fragmento. \ atribua endereço para edx -\Se a variável deste fragmento for inexistente, - \apresente uma mensagem de erro contendo "Internal erro - transforme um fragmento em código hexadecimal (atribuição de EAX)"; +\Se a variável deste fragmento for inexistente, + \apresente uma mensagem de erro contendo "Internal erro - transforme um fragmento em código hexadecimal (atribuição de EAX)"; \Retorne. -\Se o tipo desta variável deste fragmento for inexistente, - \apresente uma mensagem de erro contendo "Internal erro 2 - transforme um fragmento em código hexadecimal (atribuição de EAX)"; +\Se o tipo desta variável deste fragmento for inexistente, + \apresente uma mensagem de erro contendo "Internal erro 2 - transforme um fragmento em código hexadecimal (atribuição de EAX)"; \Retorne. -\Se a quantidade de caracteres deste tipo desta variável deste fragmento não for 4, - \apresente uma mensagem de erro contendo "Internal erro 3 - transforme um fragmento em código hexadecimal (atribuição de EAX)"; +\Se a quantidade de caracteres deste tipo desta variável deste fragmento não for 4, + \apresente uma mensagem de erro contendo "Internal erro 3 - transforme um fragmento em código hexadecimal (atribuição de EAX)"; \Retorne. \Acrescente $8B02 para o código deste fragmento. \ mov eax,[edx] @@ -6848,12 +6848,12 @@ Rotina para que se transforme um fragmento em c Acrescente $55 para o código deste fragmento. \ push ebp -> saves the contents of the EBP register on the stack. Acrescente $8BEC para o código deste fragmento. \ mov ebp,esp -> puts the contents of the ESP register into the EBP register Atribua o tamanho local desta rotina utilizada atualmente dividido por 4 para um número. - Se o número não for 0, + Se o número não for 0, Acrescente $B9 \ mov ecx,number; -> sets up the loop that will clear enough space on the stack for the routine's local variables e o número e $6A004975FB \ loop: push 0; dec ecx; jnz loop -> a loop that pushes enough zeros onto the stack to initialize the local variables. para o código deste fragmento. - Se o detector de compatibilidade desta rotina utilizada atualmente estiver ativo, + Se o detector de compatibilidade desta rotina utilizada atualmente estiver ativo, Acrescente $535657 para o código deste fragmento. \ push ebx, esi, edi -> save the EBX, ESI, and EDI registers on the stack. Rotina para que se transforme um fragmento em código hexadecimal (empilhamento de endereço): diff --git "a/CEL/O C\303\251rebro" "b/CEL/O C\303\251rebro" index 9a157397..9a52c5f6 100644 --- "a/CEL/O C\303\251rebro" +++ "b/CEL/O C\303\251rebro" @@ -212,10 +212,10 @@ Rotina para que se reduza uma fra Divida o denominador desta fração pelo máximo divisor comum. Rotina para que se eleve um número para um segundo número: - Se o segundo número for 0, - Atribua 1 ao número; + Se o segundo número for 0, + Atribua 1 ao número; Retorne. \ Exemplo: 3^0 = 1 - Se o segundo número for menor do que 0, + Se o segundo número for menor do que 0, Atribua 0 ao número; \ TODO: Atribua 1 dividido por o segundo número ao número. Retorne. Atribua 1 para um número resultante. @@ -261,14 +261,14 @@ Rotina para que se converta uma fra De-sign a fração. Reduza a fração. Converta a fração para um numeral misto. - Se o numeral misto for 0, - Acrescente "0" para a string; + Se o numeral misto for 0, + Acrescente "0" para a string; Retorne. - Se o número inteiro deste numeral misto não for 0, + Se o número inteiro deste numeral misto não for 0, Acrescente o número inteiro deste numeral misto para a string. - Se o fração deste numeral misto for 0, + Se o fração deste numeral misto for 0, Retorne. - Se a string não estiver em branco, + Se a string não estiver em branco, Acrescente o hífem para a string. Acrescente o numerador deste numeral misto seguido de "/" junto com o denominador deste numeral misto para a string. @@ -469,8 +469,8 @@ Rotina para que se insira uma linha reta em uma figura geom Rotina para que se acrescente uma linha reta em uma figura geométrica: Rotina para que se adicione uma linha reta em uma figura geométrica: Rotina para que se adicione uma linha reta para uma figura geométrica: - Se a figura geométrica for inexistente, - Crie a figura geométrica; + Se a figura geométrica for inexistente, + Crie a figura geométrica; Acrescente a figura geométrica às figuras geométricas. Adicione a localização inicial desta linha reta para a figura geométrica. Adicione a localização final desta linha reta para a figura geométrica. @@ -634,6 +634,7 @@ Rotina para que se acrescente um trecho para um arquivo: Retornando um número resultante.\Se a função retornar -1 (INVALID_SET_FILE_POINTER), isso significa que a chamada para SetFilePointer não foi bem-sucedida. Se o número resultante for -1, Atribua "Erro na função 'SetFilePointer'. Ocorreu um erro na hora de posicionar o ponteiro do arquivo." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Processe "kernel32.dll" "WriteFile" com \ Grava dados no arquivo ou dispositivo de entrada / saída (E/S) especificado. \ Documentação: -> https://learn.microsoft.com/pt-br/windows/win32/api/fileapi/nf-fileapi-writefile @@ -646,6 +647,7 @@ Rotina para que se acrescente um trecho para um arquivo: Retornando o número resultante. Se o número resultante for 0, Atribua "Erro ao salvar o arquivo. Função: 'WriteFile' (kernel32.dll)." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. \acrescente @@ -1709,12 +1711,13 @@ Rotina para que se converta um lParam para uma tecla: A tecla [uCode] e 1 [uMapType MAPVK_VSC_TO_VK] Retornando a tecla. - Se a tecla NumLock não estiver ativada, retorne. + Se a tecla NumLock não estiver ativada, + Retorne. Se a tecla for a tecla Insert, Atribua a Tecla Zero do teclado numérico à tecla; Retorne. Se a tecla for a tecla Delete, - Atribua a Ponto do teclado numérico à tecla; + Atribua o Ponto do teclado numérico à tecla; Retorne. Se a tecla for a tecla Home, Atribua a Tecla Sete do teclado numérico à tecla; @@ -1722,25 +1725,25 @@ Rotina para que se converta um lParam para uma tecla: Se a tecla for a tecla End, Atribua a Tecla End do teclado numérico à tecla; Retorne. - Se a tecla for a tecla PgUp, + Se a tecla for a tecla Page Up, Atribua a Tecla Nove do teclado numérico à tecla; Retorne. - Se a tecla for a tecla PgDn, + Se a tecla for a tecla Page Down, Atribua a Tecla Três do teclado numérico à tecla; Retorne. Se a tecla for a seta pra esquerda, Atribua a Tecla Quatro do teclado numérico à tecla; Retorne. - Se a tecla for a seta pra cima, - Atribua a Tecla Oito do teclado numérico à tecla; - Retorne. Se a tecla for a seta pra direita, Atribua a Tecla Seis do teclado numérico à tecla; Retorne. + Se a tecla for a seta pra cima, + Atribua a Tecla Oito do teclado numérico à tecla; + Retorne. Se a tecla for a seta pra baixo, Atribua a Tecla Dois do teclado numérico à tecla; Retorne. - Se a tecla for a tecla Clear, + Se a tecla for a tecla Clear, \ Shift + NumPad 5 (usado nos teclados de Macintosh) Atribua a Tecla Cinco do teclado numérico à tecla; Retorne. @@ -2161,6 +2164,7 @@ Rotina para que se crie o identificador de conex Retornando o número identificador de conexão desta requisição WinHTTP. Se o número identificador de conexão desta requisição WinHTTP for 0, Atribua "Erro ao estabelecer a conexão HTTP." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Rotina para que se crie um console: @@ -2203,6 +2207,7 @@ Rotina para que se crie uma sess Retornando um número resultante. Se o número resultante for 0, Atribua "Erro ao adquirir o identificador do contêiner de chave do Provedor de Serviços Criptográficos ." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Destrua a Sessão Criptografada; Retorne. Processe "advapi32.dll" "CryptCreateHash" com \ Inicializa o hash de um fluxo de dados. @@ -2215,6 +2220,7 @@ Rotina para que se crie uma sess Retornando o número resultante. Se o número resultante for 0, Atribua "Erro ao possível inicializar o hash da palavra-passe." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Destrua a Sessão Criptografada; Retorne. Processe "advapi32.dll" "CryptHashData" com \ Adiciona dados para um hash. @@ -2226,6 +2232,7 @@ Rotina para que se crie uma sess Retornando o número resultante. Se o número resultante for 0, Atribua "Erro. Não foi possível adicionar dados ao hash da senha." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Destrua a Sessão Criptografada; Retorne. Processe "advapi32.dll" "CryptDeriveKey" com \ Gera chaves de sessão criptográficas @@ -2238,6 +2245,7 @@ Rotina para que se crie uma sess Retornando o número resultante. Se o número resultante for 0, Atribua "Erro ao gerar as chaves da sessão criptografada." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Destrua a Sessão Criptografada; Retorne. @@ -2347,6 +2355,7 @@ Rotina para que se crie um gpBitmap usando um trecho: Retornando um número. Se o número não for 0, Atribua "Não sei como processar este tipo de imagem." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Esvazie o gpBitmap. Processe o release deste VTable deste istream com o istream. \ monet @@ -2504,6 +2513,7 @@ Rotina para que se crie o n Retornando o número identificador de sessão deste número identificador de requisição desta requisição WinHTTP. Se o número identificador de sessão deste número identificador de requisição desta requisição WinHTTP for 0, Atribua "Erro. Não foi possível iniciar a conexão." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Rotina para que se crie um endereço completo no sistema de arquivos: @@ -2611,6 +2621,7 @@ Rotina para que se crie o n Retornando o número identificador de requisição desta requisição WinHTTP. Se o número identificador de requisição desta requisição WinHTTP for 0, Atribua "Erro ao chamar a função 'WinHttpOpenRequest'. Não foi possível obter o número identificador da requisição http." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Rotina para que se crie uma linha de texto usando um byte: @@ -2639,6 +2650,7 @@ Rotina para que se crie um soquete [ipv4] usando um host string e um n Retornando o soquete. Se o soquete for -1 [INVALID_SOCKET ], Atribua "Erro na função socket (ws2_32.dll). O soquete retornado é inválido." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Processe "ws2_32.dll" "connect" com \ Estabelece uma conexão com um soquete especificado. \ Documentação: -> https://learn.microsoft.com/pt-br/windows/win32/api/winsock2/nf-winsock2-connect @@ -2648,6 +2660,7 @@ Rotina para que se crie um soquete [ipv4] usando um host string e um n Retornando um número resultante. Se o número resultante não for 0 [SOCKET_ERROR], Atribua "Erro. Não foi possível estabelecer uma conexão com o soquete informado." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Atribua 30 segundos para um timeout de envio. \ timeout Processe "ws2_32.dll" "setsockopt" com \ Define as opções do soquete. @@ -2660,6 +2673,7 @@ Rotina para que se crie um soquete [ipv4] usando um host string e um n Retornando o número resultante. Se o número resultante não for 0 [SOCKET_ERROR ], Atribua "Erro SO_SNDTIMEO (0x00001005) na função 'setsockopt' (ws2_32.dll). Não foi possível definir o tempo delimite de envio do soquete." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. \ abra receba timeout 30 segundos Atribua 30 segundos para um timeout de recepção. @@ -2672,6 +2686,7 @@ Rotina para que se crie um soquete [ipv4] usando um host string e um n Retornando o número resultante. Se o número resultante não for 0, Atribua "Erro SO_RCVTIMEO (0x00001006) na função 'setsockopt' (ws2_32.dll). Não foi possível definir o tempo delimite de recepção do soquete." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Rotina para que se crie um conjunto de texto usando uma string: @@ -3268,7 +3283,7 @@ Rotina para que se determine se um finger ultrapassou o fim de uma string: Se o finger for maior do que o caractere final desta string, diga sim. Diga não. -\Rotina para que se determine se uma bandeira está levantada; +\Rotina para que se determine se uma bandeira está levantada; \Rotina para que se determine se uma bandeira está sendo mostrada; \Rotina para que se determine se uma bandeira está sendo exibida; \Rotina para que se determine se um semáforo está verde/vermelho; @@ -3283,7 +3298,7 @@ Rotina para que se determine se um finger ultrapassou o fim de uma string: \Rotina para que se determine se um detector foi ativado anteriomente; \Rotina para que se determine se um detector já foi ativado anteriomente; \Rotina para que se determine se um detector está presente; -\Rotina para que se determine se um detector está em vigor; +\Rotina para que se determine se um detector está em vigor; Rotina para que se determine se um detector está ligado; \foi ligado também funciona Rotina para que se determine se um detector está ativo; Rotina para que se determine se um detector está ativado: @@ -4305,7 +4320,8 @@ Rotina para que se decifre um trecho usando uma palavra-passe: e O endereçamento deste quantidade de caracteres [*pdwDataLen] Retornando um número resultante. Se o número resultante for 0, - Atribua "Ocorreu um erro ao tentar decifrar os dados." ao erro do fluxo de entrada/saída; + Atribua "Erro ao tentar decifrar os dados." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Destrua a Sessão Criptografada; Retorne. Destrua a Sessão Criptografada. @@ -5041,20 +5057,23 @@ Rotina para que se duplique um endere Se o endereço completo é do tipo pasta, duplique o endereço completo para a segunda endereço completo no sistema de arquivos (pasta)[endereço]. Se o endereço completo é do tipo arquivo, duplique o endereço completo para a segunda endereço completo no sistema de arquivos (arquivo). -Rotina para que se duplique um endereço completo para uma segunda endereço completo no sistema de arquivos (pasta)[endereço]: - Se o endereço completo estiver na segunda endereço completo, - Atribua "Ocorreu um erro na hora de duplicar a pasta: " junto com o endereço completo seguido de ". - erro de recursão inválida." ao erro do fluxo de entrada/saída; +Rotina para que se duplique um endereço completo para uma segundo endereço completo no sistema de arquivos (pasta)[endereço]: + Se o endereço completo estiver no segundo endereço completo, + Atribua "Erro ao duplicar a pasta: " junto com o endereço completo seguido de ". - erro de recursão inválida." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Se o endereço completo não estiver no sistema de arquivos, - Atribua "Ocorreu um erro na hora de duplicar a pasta: " junto com o endereço completo seguido de "." ao erro do fluxo de entrada/saída; + Atribua "Erro. Pasta '" junto com o endereço completo seguido de "' não encontrada." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. - Se a segunda endereço completo não estiver no sistema de arquivos, crie a segunda endereço completo no sistema de arquivos. + Se o segundo endereço completo não estiver no sistema de arquivos, + Crie o segundo endereço completo no sistema de arquivos. Itere. Obtenha um item desde o endereço completo. Se o item não for encontrado, retorne. Atribua o endereço completo para um terceiro endereço completo. Acrescente o designador deste item para o terceiro endereço completo. - Atribua a segunda endereço completo para um quarto endereço completo. + Atribua o segundo endereço completo para um quarto endereço completo. Acrescente o designador deste item para o quarto endereço completo. Duplique o terceiro endereço completo para o quarto endereço completo no sistema de arquivos. Reitere. @@ -5075,6 +5094,8 @@ Rotina para que se duplique um endere Defina o endereço completo para modo de leitura&gravação; Retorne. Atribua "Ocorreu um erro na hora de duplicar o arquivo: " junto com o endereço completo seguido de "." ao erro do fluxo de entrada/saída. + Escreva o erro do fluxo de entrada/saída para StdOut. + Uma elipse é uma estrutura com uma caixa. @@ -5105,6 +5126,7 @@ Rotina para que se encrypt um trecho usando um palavra-passe: Retornando um número resultante. Se o número resultante for 0, Atribua "Ocorreu um erro ao criptografar os dados." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Destrua a Sessão Criptografada; Retorne. Destrua a Sessão Criptografada. @@ -5785,6 +5807,7 @@ Rotina para que se obtenha umas rotinas da fun Retornando um número identificador. Se o número identificador for 0, Atribua "A função LoadLibraryA da biblioteca ws2_32.dll retornou um erro. Não foi possível obter o identificador do módulo a ser carregado." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Atribua "getaddrinfo" para uma nome de função. Processe "kernel32.dll" "GetProcAddress" com \ Recupera o endereço de uma função ou variável exportada da biblioteca de vínculo dinâmico (DLL) especificada. @@ -5794,6 +5817,7 @@ Rotina para que se obtenha umas rotinas da fun Retornando um ponteiro. Se o ponteiro for inexistente, Atribua "Erro. Este compilador é compatível com Windows XP ou superior." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Atribua o ponteiro ao ponteiro da função GetAddrInfo destas rotinas da função AddrInfo. Atribua "freeaddrinfo" para um nome de processo. @@ -5803,6 +5827,7 @@ Rotina para que se obtenha umas rotinas da fun Retornando o ponteiro. Se o ponteiro for inexistente, Atribua "Erro. Este compilador é compatível com Windows XP ou superior." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Atribua o ponteiro ao ponteiro da função FreeAddrInfo destas rotinas da função AddrInfo. @@ -6407,9 +6432,11 @@ Rotina para que se obtenha um SockAddr usando um host string: Retornando um número resultante. Se o número resultante não for 0, \ Consulte https://learn.microsoft.com/en-us/windows/desktop/WinSock/windows-sockets-error-codes-2 Atribua "Não foi possível encontrar o nome do seguinte anfitrião (host): " junto com o host seguido de "." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Se o AddrInfoPtr for inexistente, Atribua "Não foi possível encontrar o nome do seguinte anfitrião (host): " junto com o host seguido de "." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Atribua o conteúdo deste AI_Addr deste AddrInfoPtr ao SOCKADDR. Processe o FeeAddrInfo ponteiro destas rotinas da função AddrInfo com o AddrInfoPtr. @@ -8493,7 +8520,7 @@ Rotina para que se normalize uma sele Se o anchor número da linha desta seleção for maior do que o número de linhas do cursor desta seleção, Permute o anchor desta seleção com o cursor de texto desta seleção; Retorne. - Se o anchor número de coluna desta seleção for maior do que o cursor de texto número de coluna desta seleção, + Se o anchor número de coluna desta seleção for maior do que o cursor de texto número de coluna desta seleção, Permute o anchor número de coluna desta seleção com o cursor de texto número de coluna desta seleção. Rotina para que se normalize uma caixa de texto: @@ -9951,6 +9978,7 @@ Rotina para que se envie um trecho para um soquete: Retornando um número. Se o número for -1 [SOCKET_ERROR ], Atribua "Erro ao enviar os dado para o soquete." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Subtraia o número desde a quantidade de caracteres. Adicione o número para o ponteiro. @@ -9972,55 +10000,68 @@ Rotina para que se envie uma data string para uma requisi Retornando um número resultante. Se o número resultante for 0, Atribua "Erro. Não foi possível enviar a solicitação." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Rotina para que se envie um email: Limpe o erro do fluxo de entrada/saída. Crie um soquete usando o servidor SMTP deste email e 25. - Se o erro do fluxo de entrada/saída não estiver em branco, retorne. + Se o erro do fluxo de entrada/saída não estiver em branco, + Escreva o erro do fluxo de entrada/saída para StdOut; + Retorne. Receba uma response string desde o soquete. Se o erro do fluxo de entrada/saída não estiver em branco, + Escreva o erro do fluxo de entrada/saída para StdOut; Destrua o soquete; Retorne. Se o response string começa com "5", Atribua a response string ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Elimine os resíduos no erro do fluxo de entrada/saída; Destrua o soquete; Retorne. Envie "HELO " junto com o nome deste módulo junto com o texto CRLF para o soquete e receba o response string. Se o erro do fluxo de entrada/saída não estiver em branco, + Escreva o erro do fluxo de entrada/saída para StdOut; Destrua o soquete; Retorne. Se o response string começa com "5", Atribua o response string ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Elimine os resíduos no erro do fluxo de entrada/saída; Destrua o soquete; Retorne. Envie "MAIL FROM: <" junto com o remetente deste email seguido de ">" junto com o texto CRLF para o soquete e receba o response string. Se o erro do fluxo de entrada/saída não estiver em branco, + Escreva o erro do fluxo de entrada/saída para StdOut; Destrua o soquete; Retorne. Se o response string começa com "5", Atribua o response string ao erro do fluxo de entrada/saída; - Elimine os resíduos no erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; + Elimine os resíduos no erro do fluxo de entrada/saída; Destrua o soquete; Retorne. Envie "RCPT TO: <" junto com o destinatário deste email seguido de ">" junto com o texto CRLF para o soquete e receba o response string. Se o erro do fluxo de entrada/saída não estiver em branco, + Escreva o erro do fluxo de entrada/saída para StdOut; Destrua o soquete; Retorne. Se o response string começa com "5", Atribua o response string ao erro do fluxo de entrada/saída; - Elimine os resíduos no erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; + Elimine os resíduos no erro do fluxo de entrada/saída; Destrua o soquete; Retorne. Envie "DATA" junto com o texto CRLF para o soquete e receba o response string. Se o erro do fluxo de entrada/saída não estiver em branco, + Escreva o erro do fluxo de entrada/saída para StdOut; Destrua o soquete; Retorne. Se o response string começa com "5", Atribua o response string ao erro do fluxo de entrada/saída; - Elimine os resíduos no erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; + Elimine os resíduos no erro do fluxo de entrada/saída; Destrua o soquete; Retorne. Limpe uma temp string. @@ -10033,11 +10074,14 @@ Rotina para que se envie um email: Acrescente o texto CRLF seguido de "." junto com o texto CRLF para a temp string. Envie a temp string para o soquete e receba a response string. Se o erro do fluxo de entrada/saída não estiver em branco, + Escreva o erro do fluxo de entrada/saída para StdOut; Destrua o soquete; Retorne. Se o response string começa com "5", Atribua o response string ao erro do fluxo de entrada/saída; - Trim o erro do fluxo de entrada/saída; destrua o soquete; + Escreva o erro do fluxo de entrada/saída para StdOut; + Elimine os resíduos no o erro do fluxo de entrada/saída; + Destrua o soquete; Retorne. Envie "QUIT" junto com o texto CRLF para o soquete. Destrua o soquete. @@ -10786,6 +10830,7 @@ Rotina para que se comece um process usando um endere Limpe o erro do fluxo de entrada/saída. Se o process não for 0, Atribua "Erro. Este processo já está sendo executado." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Atribua a magnitude duma StartupInfo ao CB desta startupinfo. Extraia um endereço da pasta desde o endereço completo. @@ -10812,6 +10857,7 @@ Rotina para que se comece um process usando um endere Retornando um número.\Se a função for bem-sucedida, o valor de retorno será diferente de zero. Se o número for 0, Atribua "Erro. Não foi possível executar o programa." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Atribua o hprocess deste PROCESS_INFORMATION ao process. Processe "kernel32.dll" "CloseHandle" com \ Fecha um identificador de objeto aberto. @@ -11238,6 +11284,7 @@ Rotina para que se escreva um trecho para um arquivo: Retornando um número resultante. Se o número resultante for -1, Atribua "Erro na função SetFilePointer. Não foi possível posicionar o ponteiro no início do arquivo solicitado." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Processe "kernel32.dll" "WriteFile" com \ Serve pra gravar dados no arquivo \ Documentação: -> https://learn.microsoft.com/pt-br/windows/win32/api/fileapi/nf-fileapi-writefile @@ -11249,6 +11296,7 @@ Rotina para que se escreva um trecho para um arquivo: Retornando o número resultante. Se o número resultante for 0, Atribua "Erro ao tentar gravar o arquivo." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Rotina para que se salve um trecho em um endereço completo; @@ -11259,6 +11307,7 @@ Rotina para que se escreva um trecho para um endere Extraia um endereço da pasta desde o endereço completo. Se o endereço da pasta não estiver no sistema de arquivos, Atribua "A pasta: " junto com o endereço da pasta seguido de " não existe." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Defina o endereço completo para modo de leitura&gravação. Preserve o endereço completo. @@ -11279,9 +11328,10 @@ Rotina para que se escreva um trecho para um endere e 0 [hTemplateFile] Retornando um número identificador. Se o número identificador for -1 [INVALID_HANDLE_VALUE], - Atribua "Ocorreu um erro ao tentar abrir o arquivo: " junto com o endereço completo seguido de "." ao erro do fluxo de entrada/saída; + Atribua "Erro ao tentar abrir o arquivo: " junto com o endereço completo seguido de "." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. - Processe "kernel32.dll" "WriteFile" com \ Grava dados no arquivo ou dispositivo de entrada / saída (E/S) especificad + Processe "kernel32.dll" "WriteFile" com \ Grava dados no arquivo ou dispositivo de entrada / saída (E/S) especificada \ Documentação: -> https://learn.microsoft.com/pt-br/windows/win32/api/fileapi/nf-fileapi-writefile O número identificador [hFile] e O caractere inicial deste trecho [lpBuffer] @@ -11313,6 +11363,7 @@ Rotina para que se use a pr Rotina para que se use a próxima linha do console do Notepad++; Rotina para que se use a próxima linha na saída padrão; Rotina para que se escreva na próxima linha da saída padrão; +Rotina para que se escreva na próxima linha da StdOut; Rotina para que se pule para a próxima linha da saída padrão; Rotina para que se pule para a próxima linha da StdOut; Rotina para que se pule para a próxima linha em StdOut; @@ -11341,8 +11392,9 @@ Rotina para que se escreva uma string para StdOut: e O endereçamento dum número [lpNumberOfBytesWritten] e nil [lpOverlapped] Retornando um novo número. - Se o novo número for 0, + Se o novo número for 0, Atribua "Erro. Não foi possível escrever em STDOUT" ao erro do fluxo de entrada/saída; + \Escreva o erro do fluxo de entrada/saída para StdOut; Avise o usuário; Retorne. \Escreva o retorno de carro para StdOut. @@ -11519,8 +11571,8 @@ Rotina para que se mova um percorredor (strings com aspas): Avance o percorredor. Se o segmento final deste percorredor estiver em branco, retorne. Se o conteúdo deste caractere inicial deste segmento final deste percorredor não for as aspas duplas, reitere. - Se o caractere inicial deste segmento final deste percorredor for o caractere final deste segmento final deste percorredor, - Avance o percorredor; + Se o caractere inicial deste segmento final deste percorredor for o caractere final deste segmento final deste percorredor, + Avance o percorredor; Retorne. Avance o percorredor. Se o conteúdo deste caractere inicial deste segmento final deste percorredor não for as aspas duplas, retorne. @@ -11532,8 +11584,8 @@ Rotina para que se mova um percorredor (spell checking rules): Itere. Se o segmento final deste percorredor estiver em branco, retorne. Avance o percorredor. - Se o segmento final deste percorredor está sobre alguma espécie de contração, - Avance o percorredor; + Se o segmento final deste percorredor está sobre alguma espécie de contração, + Avance o percorredor; Reitere. Se o conteúdo deste caractere inicial deste segmento final deste percorredor não for alfanumérico, retorne. Reitere. @@ -11542,11 +11594,11 @@ Rotina para que se mova um percorredor (usando diretrizes de arquivos de texto): Posicione o segmento inicial deste percorredor sobre o segmento final deste percorredor. Itere. Se o segmento final deste percorredor estiver em branco, retorne. - Se o conteúdo deste caractere inicial deste segmento final deste percorredor for o retorno de carro, - Avance o percorredor; + Se o conteúdo deste caractere inicial deste segmento final deste percorredor for o retorno de carro, + Avance o percorredor; Pare. - Se o conteúdo deste caractere inicial deste segmento final deste percorredor for a quebra de linha, - Avance o percorredor; + Se o conteúdo deste caractere inicial deste segmento final deste percorredor for a quebra de linha, + Avance o percorredor; Retorne. \ *Rotina nova criada pelo Dahn para abranger novas linhas terminadas apenas por LF Avance o percorredor. @@ -11557,19 +11609,19 @@ Rotina para que se mova um percorredor (usando diretrizes de arquivos de texto): Rotina para que se mova um percorredor (word wrapping rules): Posicione o segmento inicial deste percorredor sobre o segmento final deste percorredor. Se o segmento final deste percorredor estiver em branco, retorne. - Se o conteúdo deste caractere inicial deste segmento final deste percorredor for o retorno de carro, - Avance o percorredor; + Se o conteúdo deste caractere inicial deste segmento final deste percorredor for o retorno de carro, + Avance o percorredor; Retorne. Itere. - Se o segmento final deste percorredor estiver em branco, + Se o segmento final deste percorredor estiver em branco, Retorne. - Se o conteúdo deste caractere inicial deste segmento final deste percorredor for o retorno de carro, + Se o conteúdo deste caractere inicial deste segmento final deste percorredor for o retorno de carro, Retorne. - Se o segmento inicial deste percorredor estiver em branco, - Avance o percorredor; + Se o segmento inicial deste percorredor estiver em branco, + Avance o percorredor; Reitere. Se o conteúdo deste caractere inicial deste segmento final deste percorredor for semelhante ao conteúdo deste caractere final deste segmento inicial deste percorredor, - Avance o percorredor; + Avance o percorredor; Reitere. Rotina para que se mova um percorredor usando uma caixa (word wrapping rules): @@ -11581,14 +11633,14 @@ Rotina para que se mova um percorredor usando uma caixa (word wrapping rules): Se o segmento final deste percorredor estiver em branco, retorne. Mova o segundo percorredor (word wrapping rules). Se o segmento inicial deste segundo percorredor estiver em branco, retorne. - Se o conteúdo deste caractere inicial deste segmento inicial deste segundo percorredor for o retorno de carro, - Avance o percorredor; + Se o conteúdo deste caractere inicial deste segmento inicial deste segundo percorredor for o retorno de carro, + Avance o percorredor; Retorne. - Se o conteúdo deste caractere inicial deste segmento inicial deste segundo percorredor for algum espaço em branco, - Avance o percorredor pelo quantidade de caracteres deste segmento inicial deste segundo percorredor; + Se o conteúdo deste caractere inicial deste segmento inicial deste segundo percorredor for algum espaço em branco, + Avance o percorredor pelo quantidade de caracteres deste segmento inicial deste segundo percorredor; Reitere. - Se o segmento inicial deste percorredor estiver em branco, - Avance o percorredor pelo quantidade de caracteres deste segmento inicial deste segundo percorredor; + Se o segmento inicial deste percorredor estiver em branco, + Avance o percorredor pelo quantidade de caracteres deste segmento inicial deste segundo percorredor; Reitere. Se o segmento inicial deste percorredor junto com o segmento inicial deste segundo percorredor forem wider do que a caixa, retorne. Avance o percorredor pelo quantidade de caracteres deste segmento inicial deste segundo percorredor. @@ -11598,8 +11650,8 @@ Rotina para que se mova um percorredor usando um separator byte: Posicione o segmento inicial deste percorredor sobre o segmento final deste percorredor. Itere. Se o segmento final deste percorredor estiver em branco, retorne. - Se o conteúdo deste caractere inicial deste segmento final deste percorredor for o separator byte, - Adicione 1 para o caractere inicial deste segmento final deste percorredor; + Se o conteúdo deste caractere inicial deste segmento final deste percorredor for o separator byte, + Adicione 1 para o caractere inicial deste segmento final deste percorredor; Retorne. Avance o percorredor. Reitere. @@ -11912,35 +11964,38 @@ O arquivo de sa Rotina para que se escreva um número para o fluxo de saída: Preserve o número. Converta o número para uma string. - Escreva a string para o console. + Escreva a string para StdOut. + Escreva na próxima linha da saída padrão; Escreva a string para o arquivo de saída. Rotina para que se escreva um número para o fluxo de saída sem pular linhas: Preserve o número. Converta o número para uma string. - Escreva a string para o console sem passar pra próxima linha. + Escreva a string para StdOut. Escreva a string para o arquivo de saída sem passar pra próxima linha. Rotina para que se escreva uma string para o fluxo de saída: - Escreva a string para o console. + Escreva a string para StdOut. Escreva a string para o arquivo de saída. Rotina para que se escreva uma string para o arquivo de saída: Se a pasta de saída não estiver no sistema de arquivos, crie a pasta de saída no sistema de arquivos. Se o arquivo de saída não estiver no sistema de arquivos, crie o arquivo de saída no sistema de arquivos. - Read o arquivo de saída para um trecho. + Leia o arquivo de saída para um trecho. Acrescente a string junto com o texto CRLF para o trecho. Grave o trecho para o arquivo de saída. Rotina para que se escreva uma string para o arquivo de saída sem passar pra próxima linha: - Se a pasta de saída não estiver no sistema de arquivos, crie a pasta de saída no sistema de arquivos. - Se o arquivo de saída não estiver no sistema de arquivos, crie o arquivo de saída no sistema de arquivos. - Read o arquivo de saída para um trecho. + Se a pasta de saída não estiver no sistema de arquivos, + Crie a pasta de saída no sistema de arquivos. + Se o arquivo de saída não estiver no sistema de arquivos, + Crie o arquivo de saída no sistema de arquivos. + Leia o arquivo de saída para um trecho. Acrescente a string para o trecho. Grave o trecho para o arquivo de saída. Rotina para que se escreva uma string para a pasta de saída sem passar pra próxima linha: - Escreva a string para o console sem passar pra próxima linha. + Escreva a string para StdOut. Escreva a string para o arquivo de saída sem passar pra próxima linha. Rotina para que se insira quebra de linha em um trecho: @@ -11960,8 +12015,9 @@ Rotina para que se atribua stdin para um trecho: Limpe o erro do fluxo de entrada/saída. Limpe o trecho. Encontre uma string usando o environment variáveis e "CONTENT_LENGTH". - Se a string estiver em branco, - Atribua "Ocorreu um erro na hora de obter o conteúdo de comprimento CONTENT_LENGTH." ao erro do fluxo de entrada/saída; + Se a string estiver em branco, + Atribua "Erro ao tentar obter o conteúdo da variável de ambiente CONTENT_LENGTH." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Converta a string para uma quantidade de caracteres. Se a quantidade de caracteres for 0, retorne. @@ -11974,9 +12030,10 @@ Rotina para que se atribua stdin para um trecho: e O endereçamento dum número [lpNumberOfBytesRead] \ O número de bytes lidos ao usar o parâmetro hFile síncrono. e nil. [lpOverlapped] \ Necessário se hFile foi aberto com FILE_FLAG_OVERLAPPED, caso contrário, pode ser NULL. \ Se a função for bem-sucedida, o valor retornado será não zero (TRUE). - Se o número [lpNumberOfBytesRead] não for a quantidade de caracteres, - Atribua "Erro ao ler o fluxo de dados da entrada padrão (stdin)." ao erro do fluxo de entrada/saída; - Limpe o trecho; + Se o número [lpNumberOfBytesRead] não for a quantidade de caracteres, + Atribua "Erro ao ler o fluxo de dados da entrada padrão (stdin)." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; + Limpe o trecho; Retorne. Atribua o caractere inicial deste trecho mais a quantidade de caracteres menos 1 ao caractere final deste trecho. @@ -11997,12 +12054,12 @@ Rotina para que se carregue um endere Rotina para que se leia um endereço completo para um trecho: Limpe o erro do fluxo de entrada/saída. Preserve o endereço completo. - Se o conteúdo deste caractere final deste endereço completo for a barra invertida, + Se o conteúdo deste caractere final deste endereço completo for a barra invertida, remova o último caractere desde o endereço completo. Anexe o caractere NULL após o endereço completo. - Se o endereço completo não estiver no sistema de arquivos, - Atribua "O Arquivo: '" junto com o endereço completo seguido de "' não existe." ao erro do fluxo de entrada/saída; - Escreva "Erro. O Arquivo: '" junto com o endereço completo seguido de "' não existe." para StdOut; + Se o endereço completo não estiver no sistema de arquivos, + Atribua "Erro. O Arquivo: '" junto com o endereço completo seguido de "' não existe." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Avise o usuário; Retorne. \ coloca o endereço no modo de leitura/gravação. @@ -12016,8 +12073,9 @@ Rotina para que se leia um endere e 0 [dwFlagsAndAttributes] e 0 [hTemplateFile] Retornando um número identificador. - Se o número identificador for -1 [INVALID_HANDLE_VALUE], - Atribua "Erro ao tentar abrir o arquivo: '" junto com o endereço completo seguido de "'." ao erro do fluxo de entrada/saída; + Se o número identificador for -1 [INVALID_HANDLE_VALUE], + Atribua "Erro ao tentar abrir o arquivo: '" junto com o endereço completo seguido de "'." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Avise o usuário; Retorne. Processe "kernel32.dll" "GetFileSize" com \ Recupera o tamanho do arquivo especificado, em bytes. @@ -12038,25 +12096,26 @@ Rotina para que se leia um endere Processe "kernel32.dll" "CloseHandle" com \Fecha um identificador de objeto aberto. \Documentação: -> https://learn.microsoft.com/pt-br/windows/win32/api/handleapi/nf-handleapi-closehandle O número identificador.[hObject] - Se o número não for 0, + Se o número não for 0, Retorne. Se o número for 0, - Atribua "Ocorreu um erro ao tentar ler o arquivo: " junto com o endereço completo seguido de "." ao erro do fluxo de entrada/saída; + Atribua "Erro ao tentar ler o arquivo: " junto com o endereço completo seguido de "." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Avise o usuário. Rotina para que se atribua um endereço completo para uma imagem; Rotina para que se carregue um endereço completo para uma imagem; Rotina para que se leia um endereço completo para uma imagem: Leia o endereço completo para um trecho. - Se o erro do fluxo de entrada/saída não estiver em branco, + Se o erro do fluxo de entrada/saída não estiver em branco, Esvazie a imagem; Retorne. Crie a imagem usando o trecho. Rotina para que se obtenha um texto retornado desde um terminal; Rotina para que se leia um texto retornado desde um terminal: - Se o terminal for inexistente, - Limpe o texto retornado; + Se o terminal for inexistente, + Limpe o texto retornado; Retorne. Desmanche todos os eventos. Limpe o texto retornado deste terminal. @@ -12112,8 +12171,9 @@ Rotina para que se leia um arquivo para um trecho: e 0 [lpOverlapped] \ Necessário se o parâmetro hFile foi aberto com FILE_FLAG_OVERLAPPED, caso contrário, pode ser NULL. \ Documentação: -> https://learn.microsoft.com/pt-br/windows/win32/api/minwinbase/ns-minwinbase-overlapped Retornando um número resultante. \Se a função for bem-sucedida, o valor de retorno será diferente de zero (VERDADEIRO). - Se o número resultante for 0, - Atribua "Ocorreu um erro ao tentar ler o arquivo." ao erro do fluxo de entrada/saída; + Se o número resultante for 0, + Atribua "Ocorreu um erro ao tentar ler o arquivo." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Rotina para que se obtenha a Bíblia; @@ -12125,8 +12185,8 @@ Rotina para que se leia a B Itere. Se o endereço da pasta estiver em branco, retorne. Atribua o endereço da pasta seguido de "Bíblia.txt" para um endereço completo. - Se o endereço completo estiver no sistema de arquivos, - Leia a Bíblia usando o endereço completo; + Se o endereço completo estiver no sistema de arquivos, + Leia a Bíblia usando o endereço completo; Retorne. Extraia o endereço da pasta desde o endereço da pasta. Reitere. @@ -12150,15 +12210,15 @@ Rotina para que se leia a B Rotina para que se obtenha um byte desde um console; Rotina para que se leia um byte desde um console: Leia uma string desde o console. - Se a string estiver em branco, - Atribua o caractere null ao byte; + Se a string estiver em branco, + Atribua o caractere null ao byte; Retorne. Atribua o conteúdo deste caractere inicial desta string ao byte. Rotina para que se atribua um console para uma string; Rotina para que se leia um console para uma string: - Se o console for inexistente, - Limpe a string; + Se o console for inexistente, + Limpe a string; Retorne. Desmanche todos os eventos. Limpe o texto retornado deste console. @@ -12194,8 +12254,9 @@ Rotina para que se abra um arquivo usando um endere Rotina para que se abra um arquivo usando um endereço completo: Limpe o erro do fluxo de entrada/saída. Extraia um endereço da pasta desde o endereço completo. - Se o endereço da pasta não estiver no sistema de arquivos, - Atribua "A Pasta: " junto com o endereço da pasta seguido de " não existe." ao erro do fluxo de entrada/saída; + Se o endereço da pasta não estiver no sistema de arquivos, + Atribua "A Pasta: " junto com o endereço da pasta seguido de " não existe." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Ative o endereço completo para modo de leitura&gravação. Preserve o endereço completo. @@ -12209,8 +12270,9 @@ Rotina para que se abra um arquivo usando um endere e -2147483520 [dwFlagsAndAttributes = FILE_FLAG_WRITE_THROUGH ou FILE_ATTRIBUTE_NORMAL] e 0 [hTemplateFile] \Ao abrir um arquivo existente, CreateFile ignora este parâmetro Retornando o arquivo. \Se a função falhar, o valor de retorno é -1 (INVALID_HANDLE_VALUE). - Se o arquivo for -1 [INVALID_HANDLE_VALUE], - Atribua "Erro ao abrir o arquivo: " junto com o endereço completo seguido de "." ao erro do fluxo de entrada/saída; + Se o arquivo for -1 [INVALID_HANDLE_VALUE], + Atribua "Erro ao abrir o arquivo: " junto com o endereço completo seguido de "." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. O módulo é uma estrutura com @@ -12243,9 +12305,10 @@ Rotina para que se leia uma response string desde uma requisi e O endereçamento deste tamanho [lpdwNumberOfBytesAvailable] Retornando um número resultante. Se o número resultante for 0 [FALSE], - Atribua "Erro. Não foi possível verificar a quantidade de dados disponíveis." ao erro do fluxo de entrada/saída; - Limpe a response string; - Pare. + Atribua "Erro. Não foi possível verificar a quantidade de dados disponíveis." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; + Limpe a response string; + Pare. Atribua a quantidade de caracteres desta response string para uma quantidade de caracteres armazenados. Reaponte o caractere inicial desta response string usando a quantidade de caracteres armazenados mais o trecho tamanho. Atribua o caractere inicial desta response string mais a quantidade de caracteres armazenados para um ponteiro. @@ -12257,9 +12320,10 @@ Rotina para que se leia uma response string desde uma requisi e O endereçamento duma contagem [lpdwNumberOfBytesRead] Retornando o número resultante. Se o número resultante for 0 [FALSE], - Atribua "Erro durante a leitura dos dados da requisição WinHTTP." ao erro do fluxo de entrada/saída; - Limpe a response string; - Pare. + Atribua "Erro durante a leitura dos dados da requisição WinHTTP." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; + Limpe a response string; + Pare. Atribua o ponteiro mais a contagem menos 1 ao caractere final desta response string. Se a contagem for 0, pare. Reitere. @@ -12278,8 +12342,9 @@ Rotina para que se leia uma URL para um trecho: e nil [lpszProxyBypass] \e 268435456 [dwFlags = INTERNET_FLAG_ASYNC] Retornando um número identificador da conexão de internet. - Se o número identificador da conexão de internet for 0 [NULL], + Se o número identificador da conexão de internet for 0 [NULL], Atribua "Erro. Não foi possível se conectar à internet. Verifique sua conexão" ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Avise o usuário; Retorne. Preserve a URL. @@ -12296,6 +12361,7 @@ Rotina para que se leia uma URL para um trecho: Se o número identificador da URL for 0 [NULL], Avise o usuário; Atribua "Erro. Não foi possível abrir a seguinte URL: " junto com o URL seguido de "." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Processe "wininet.dll" "InternetCloseHandle" com \Fecha um identificador de Internet único. \ Documentação> -> https://learn.microsoft.com/pt-br/windows/win32/api/wininet/nf-wininet-internetclosehandle O número identificador da conexão de internet; [hInternet] @@ -12314,8 +12380,9 @@ Rotina para que se leia uma URL para um trecho: e O endereçamento duma contagem [lpdwNumberOfBytesRead] Retornando um número resultante. Se o número resultante for 0 [FALSE], - Atribua "Ocorreu um erro ao ler a URL '" junto com a URL seguido de "'." ao erro do fluxo de entrada/saída; - Pare. + Atribua "Ocorreu um erro ao ler a URL '" junto com a URL seguido de "'." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; + Pare. Atribua o ponteiro mais a contagem menos 1 ao caractere final deste trecho. Se a contagem for 0, pare. Reitere. @@ -12332,8 +12399,9 @@ Rotina para que se receba o response string desde uma requisi O número identificador de requisição desta requisição WinHTTP [hRequest] e 0 [lpReserved] Retornando um número resultante. - Se o número resultante for 0 [FALSE], - Atribua "Erro ao receber a questão da solicitação HTTP. Funcção WinHttpReceiveResponse (winhttp.dll)." ao erro do fluxo de entrada/saída; + Se o número resultante for 0 [FALSE], + Atribua "Erro ao receber a questão da solicitação HTTP. Funcção WinHttpReceiveResponse (winhttp.dll)." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; Retorne. Rotina para que se receba um trecho desde um soquete: @@ -12353,16 +12421,17 @@ Rotina para que se receba um trecho desde um soquete: e O trecho tamanho [len] e 0 [flags] Retornando uma contagem. - Se a contagem não for -1 [SOCKET_ERROR], - Atribua o ponteiro mais a contagem menos 1 ao caractere final deste trecho; + Se a contagem não for -1 [SOCKET_ERROR], + Atribua o ponteiro mais a contagem menos 1 ao caractere final deste trecho; Retorne. - Se o último erro do windows sockets não for 10040 [WSAMSGSIZE], - Atribua "Erro ao receber os dados. Função 'recv' da lib 'ws2_32.dll'." ao erro do fluxo de entrada/saída; - Limpe o trecho; + Se o último erro do windows sockets não for 10040 [WSAMSGSIZE], + Atribua "Erro ao receber os dados. Função 'recv' da lib 'ws2_32.dll'." ao erro do fluxo de entrada/saída; + Escreva o erro do fluxo de entrada/saída para StdOut; + Limpe o trecho; Retorne. \Se o último winsock erro dum system não for 10040 [WSAMSGSIZE], \ "dum" não é permitido aqui - \Atribua "Ocorreu um erro no recebimento dos dados." ao erro do fluxo de entrada/saída; - \Limpe o trecho; + \Atribua "Ocorreu um erro no recebimento dos dados." ao erro do fluxo de entrada/saída; + \Limpe o trecho; \Retorne. Atribua o ponteiro mais a contagem menos 1 ao caractere final deste trecho. Reitere. @@ -12374,16 +12443,16 @@ Rotina para que se post um data string para uma URL e receba um response string: Crie uma requisição WinHTTP por posting para o URL. Se o erro do fluxo de entrada/saída não estiver em branco, retorne. Envie o data para a requisição WinHTTP. - Se o erro do fluxo de entrada/saída não estiver em branco, - Destrua a requisição WinHTTP; + Se o erro do fluxo de entrada/saída não estiver em branco, + Destrua a requisição WinHTTP; Retorne. Receba o response string desde a requisição WinHTTP. - Se o erro do fluxo de entrada/saída não estiver em branco, - Destrua a requisição WinHTTP; + Se o erro do fluxo de entrada/saída não estiver em branco, + Destrua a requisição WinHTTP; Retorne. Leia o response string desde a requisição WinHTTP. - Se o erro do fluxo de entrada/saída não estiver em branco, - Destrua a requisição WinHTTP; + Se o erro do fluxo de entrada/saída não estiver em branco, + Destrua a requisição WinHTTP; Retorne. Destrua a requisição WinHTTP. @@ -12915,8 +12984,8 @@ A tecla W/w A tecla X/x é uma tecla igual a 88. A tecla Y/y é uma tecla igual a 89. A tecla Z/z é uma tecla igual a 90. -A tecla Windows esquerd é uma tecla igual a 91. -A tecla Windows direit é uma tecla igual a 92. +A tecla Windows esquerda é uma tecla igual a 91. +A tecla Windows direita é uma tecla igual a 92. A tecla de menu de contexto é uma tecla igual a 93. A tecla zero do teclado numérico é uma tecla igual a 96. A tecla End do teclado numérico é uma tecla igual a 97. @@ -12936,9 +13005,6 @@ O ponto do teclado num A barra do teclado numérico é uma tecla igual a 111. A tecla F1 é uma tecla igual a 112. -A tecla F10 é uma tecla igual a 121. -A tecla F11 é uma tecla igual a 122. -A tecla F12 é uma tecla igual a 123. A tecla F2 é uma tecla igual a 113. A tecla F3 é uma tecla igual a 114. A tecla F4 é uma tecla igual a 115. @@ -12947,12 +13013,16 @@ A tecla F6 A tecla F7 é uma tecla igual a 118. A tecla F8 é uma tecla igual a 119. A tecla F9 é uma tecla igual a 120. +A tecla F10 é uma tecla igual a 121. +A tecla F11 é uma tecla igual a 122. +A tecla F12 é uma tecla igual a 123. A tecla NumLock é uma tecla igual a 144. -O scrolllock tecla é uma tecla igual a 145. +A tecla Scroll Lock é uma tecla igual a 145. +A tecla de igualdade é uma tecla igual a 187. A tecla de sinal de igualdade é uma tecla igual a 187. A tecla de símbolo de igualdade é uma tecla igual a 187. -A tecla de igualdade é uma tecla igual a 187. +A tecla de igualdade do teclado numérico é uma tecla igual a 187. A tecla hífem é uma tecla igual a 189. A tecla traço é uma tecla igual a 189. A tecla VK_OEM_3 é uma tecla igual a 192. \\ Essa tecla depende do teclado do fabricante, e do idioma do teclado. Nos EUA é a tecla que fica em cima da tecla Tab @@ -12988,9 +13058,8 @@ Rotina para que se use letras pequenas: Atribua o tamanho de letra pequena ao tamanho da letra deste contexto. Rotina para que se pinte um byte: - \\ Essa rotina aqui "DESENHA" uma letra. Atribua a tamanho da letra deste contexto dividido por 4 ao tamanho do quadrado. \ *** - \Pinte o turtle caixa de texto malha quadriculada. \ for testing -- adicione me now, delete me later -- see debaixo de + \Pinte a grade de caracteres. \ para teste \LETRAS MAIÚSCULAS Se o byte for o acento grave, pinte o accent caractere. Se o byte for o asterisco, pinte o asterisk caractere. @@ -13141,28 +13210,28 @@ Rotina para que se pinte um byte: Se o byte for o número nove, pinte o nine caractere. \ Atualize a tela. \ -Rotina para que se pinte o turtle caixa de texto malha quadriculada: +Rotina para que se pinte a grade de caracteres : \ this é chamado pelo temporary linha reta no "Stoke a ___ caractere" rotina Salve o contexto. - Atribua a grossura da canetinha para uma saved grossura da canetinha. \ see REMARK debaixo de + Atribua a grossura da canetinha para uma saved grossura da canetinha. \ ver REMARK abaixo Use a cor da canetinha cinza claro. Atribua o tamanho da letra deste contexto dividido por 4 para um tamanho. Dê meia volta. Ande o tamanho. Dê meia volta. - Pinte o turtle caixa de texto malha quadriculada caixa es. + Pinte as caixas da grade de texto. Vire para a direita. Ande o tamanho. Vire para a esquerda. - Pinte o turtle caixa de texto malha quadriculada caixa es. + Pinte as caixas da grade de texto. Restaure o contexto. Atribua o saved grossura da canetinha à grossura da canetinha. \ ver REMARK abaixo -Rotina para que se pinte as caixas de texto de tartaruga: - \ isso é chamado a partir da a rotina acima para pintar uma column da malha quadriculada caixas - Atribua a tamanho da letra deste contexto dividido por 4 A um tamanho. +Rotina para que se pinte as caixas da grade de texto: + \ isso é chamado a partir da a rotina acima para pintar uma coluna da grade + Atribua a tamanho da letra deste contexto dividido por 4 para um tamanho. Salve o contexto. - Use a cor da canetinha fino. + Use a cor da canetinha fina. Itere. Pinte o tamanho. Vire para a direita. Pinte o tamanho. Vire para a direita. @@ -13171,7 +13240,8 @@ Rotina para que se pinte as caixas de texto de tartaruga: Ande o tamanho. Adicione 1 para uma contagem. Se a contagem for menor do que 6, reitere. - Restaure o contexto. + Restaure o contexto. + [Reitere.] Rotina para que se pinte o accent caractere: Salve o contexto. @@ -16081,80 +16151,80 @@ Rotina para que se atribua uma caixa arredondada para uma segunda caixa arredond Atribua o raio desta caixa arredondada ao raio desta segunda caixa arredondada. Rotina para que se atribua o centro dum polígono para uma localização: - Se o polígono for inexistente, - Limpe a localização; + Se o polígono for inexistente, + Limpe a localização; Retorne. Atribua o centro desta caixa deste polígono à localização. Rotina para que se atribua o centro inferior dum polígono para uma localização: - Se o polígono for inexistente, - Limpe a localização; + Se o polígono for inexistente, + Limpe a localização; Retorne. Atribua o centro inferior desta caixa deste polígono à localização. Rotina para que se atribua o centro superior dum polígono para uma localização: - Se o polígono for inexistente, - Limpe a localização; + Se o polígono for inexistente, + Limpe a localização; Retorne. Atribua o centro superior desta caixa deste polígono à localização. Rotina para que se atribua a altura dum polígono para uma altura: - Se o polígono for inexistente, - Limpe a altura; + Se o polígono for inexistente, + Limpe a altura; Retorne. Atribua a altura desta caixa deste polígono à altura. Rotina para que se atribua o canto inferior esquerdo dum polígono para uma localização: - Se o polígono for inexistente, - Limpe a localização; + Se o polígono for inexistente, + Limpe a localização; Retorne. Atribua o canto inferior esquerdo desta caixa deste polígono à localização. Rotina para que se atribua o centro esquerdo dum polígono para uma localização: - Se o polígono for inexistente, - Limpe a localização; + Se o polígono for inexistente, + Limpe a localização; Retorne. Atribua o centro esquerdo desta caixa deste polígono à localização. Rotina para que se atribua o canto superior esquerdo dum polígono para uma localização: - Se o polígono for inexistente, - Limpe a localização; + Se o polígono for inexistente, + Limpe a localização; Retorne. Atribua o canto superior esquerdo desta caixa deste polígono à localização. Rotina para que se atribua o canto inferior direito dum polígono para uma localização: - Se o polígono for inexistente, - Limpe a localização; + Se o polígono for inexistente, + Limpe a localização; Retorne. Atribua o canto inferior direito desta caixa deste polígono à localização. Rotina para que se atribua o centro direito dum polígono para uma localização: - Se o polígono for inexistente, - Limpe a localização; + Se o polígono for inexistente, + Limpe a localização; Retorne. Atribua o centro direito desta caixa deste polígono à localização. Rotina para que se atribua o canto superior direito dum polígono para uma localização: - Se o polígono for inexistente, - Limpe a localização; + Se o polígono for inexistente, + Limpe a localização; Retorne. Atribua o canto superior direito desta caixa deste polígono à localização. Rotina para que se atribua a largura dum polígono para uma largura: - Se o polígono for inexistente, - Limpe a largura; + Se o polígono for inexistente, + Limpe a largura; Retorne. Atribua a largura desta caixa deste polígono à largura. Rotina para que se atribua o x-extent dum polígono para uma largura: - Se o polígono for inexistente, - Limpe a largura; + Se o polígono for inexistente, + Limpe a largura; Retorne. Atribua o x-extent desta caixa deste polígono ao largura. Rotina para que se atribua o y-extent dum polígono para uma altura: - Se o polígono for inexistente, - Limpe a altura; + Se o polígono for inexistente, + Limpe a altura; Retorne. Atribua o y-extent desta caixa deste polígono à altura. @@ -16179,11 +16249,11 @@ Rotina para que se centralize um pol Mova o polígono usando o valor da diferença. Rotina para que se atribua a caixa dum polígono para uma caixa: - Se o polígono for inexistente, - Zero a caixa; + Se o polígono for inexistente, + Zero a caixa; Retorne. - Se os vértices deste polígono estiverem vazios, - Zero a caixa; + Se os vértices deste polígono estiverem vazios, + Zero a caixa; Retorne. Atribua o maior número e o maior número e o menor número e o menor número ao caixa. Itere. @@ -16281,8 +16351,8 @@ Rotina para que se atribua o GpRect dum GpImage para um GpRect: Atribua a altura desta GpImage à altura deste GpRect. Rotina para que se atribua a altura dum GpImage para uma altura: - Se o GpImage for inexistente, - Atribua 0 à altura; + Se o GpImage for inexistente, + Atribua 0 à altura; Retorne. Processe "gdiplus.dll" "GdipGetImageHeight" com \Obtém a altura da imagem, em pixels, desta imagem. @@ -16290,8 +16360,8 @@ Rotina para que se atribua a altura dum GpImage para uma altura: e O endereçamento desta altura. [*height] \Ponteiro para uma variável que recebe a altura, em pixels, desta imagem. Rotina para que se atribua a largura dum GpImage para uma largura: - Se o GpImage for inexistente, - Atribua 0 à largura; + Se o GpImage for inexistente, + Atribua 0 à largura; Retorne. Processe "gdiplus.dll" "GdipGetImageWidth" com \Obtém a largura, em pixels, desta imagem. @@ -16969,9 +17039,9 @@ Rotina para que se transcreva o preenchimento do pdf usando uma cor: Atribua a cor à cor de preenchimento atual deste pdf state. Rotina para que se transcreva setcolor usando uma cor da borda e uma cor de preenchimento: - Se a cor de preenchimento não estiver clear, + Se a cor de preenchimento não estiver clear, Transcreva o preenchimento do pdf usando a cor de preenchimento. - Se a cor da borda não estiver clear, + Se a cor da borda não estiver clear, Transcreva o borda do pdf usando a cor da borda. Rotina para que se include uma fonte no current pdf: @@ -17165,9 +17235,9 @@ Rotina para que se acabe de imprimir um pdf (inser Converta o título de índice remissivo deste marcador pdf para um string pdf. Acrescente "/Title " junto com o string pdf para o object. Acrescente "/Parent " junto com o número deste marcador do pdf deste pdf state seguido de " 0 R" para o object. - Se o próximo marcador pdf desta marcador pdf não for inexistente, + Se o próximo marcador pdf desta marcador pdf não for inexistente, Acrescente "/Next " junto com o número deste objeto pdf deste próximo marcador pdf deste marcador pdf seguido de " 0 R" para o object. - Se o marcador pdf anterior desta marcador pdf não for inexistente, + Se o marcador pdf anterior desta marcador pdf não for inexistente, Acrescente "/Prev " junto com o número deste objeto pdf deste marcador pdf anterior deste marcador pdf seguido de " 0 R" para o object. Acrescente "/Dest [" junto com a destinação deste marcador pdf seguido de " 0 R /XYZ null " junto com a altura da página deste marcador pdf seguido de " null]" para o object. Acrescente ">>" para o object. @@ -17221,12 +17291,12 @@ Rotina para que se acabe de imprimir um pdf (finaliza Obtenha um objeto pdf desde os objetos deste pdf state. Se o objeto pdf for inexistente, pare. Se a categoria deste objeto pdf não for "page", reitere. - Se um detector estiver ativo, + Se um detector estiver ativo, Acrescente " " para o objeto pai sem passar pra próxima linha. Acrescente o número deste objeto pdf seguido de " 0 R" para o objeto pai sem passar pra próxima linha. Ative o detector. Adicione 1 para uma contagem. - Se a contagem for uniformemente divisível por 20, + Se a contagem for uniformemente divisível por 20, Acrescente o texto CRLF seguido de " " para o objeto pai sem passar pra próxima linha. Reitere. Acrescente "]" para o objeto pai. @@ -17240,7 +17310,7 @@ Rotina para que se acabe de imprimir um pdf (finaliza Encontre um objeto pdf usando "page". Acrescente "/OpenAction [" junto com o número deste objeto pdf seguido de " 0 R /XYZ null null 1]" para o objeto da raiz. Acrescente "/PageMode /UseNone" para o objeto da raiz. - Se o marcador do pdf deste pdf state não for inexistente, + Se o marcador do pdf deste pdf state não for inexistente, Acrescente "/Outlines " junto com o número deste marcador do pdf deste pdf state seguido de " 0 R" para o objeto da raiz. Acrescente ">>" para o objeto da raiz. Acrescente "endobj" para o objeto da raiz. @@ -19304,14 +19374,14 @@ Rotina para que se inicialize as cores: Rotina para que se use uma canetinha: Atribua a canetinha à canetinha deste contexto. -Rotina para que se use a canetinha fino: - Atribua 1 ao grossura da canetinha. +Rotina para que se use a canetinha fina: + Atribua 1 à grossura da canetinha. Rotina para que se use uma cor: Atribua a cor à cor deste contexto. Rotina para que se use a canetinha grossa: - Atribua 3 ao grossura da canetinha. + Atribua 3 à grossura da canetinha. Rotina para que se permute uma cor com uma segunda cor: Permute a matiz desta cor com a matiz desta segunda cor. @@ -20319,18 +20389,18 @@ Rotina para que se inverta o sinal de uma fra Rotina para que se atribua um detector para uma string; Rotina para que se converta um detector para uma string: - Se o detector estiver ativo, - Atribua "SIM" à string; + Se o detector estiver ativo, + Atribua "SIM" à string; Retorne. \ Se o detector não estiver ativo, Atribua "NÃO" à string. Rotina para que se reaponte um ponteiro usando um quantidade de bytes: - Se o ponteiro for inexistente, - Associe o ponteiro usando a quantidade de bytes; + Se o ponteiro for inexistente, + Associe o ponteiro usando a quantidade de bytes; Retorne. - Se a quantidade de bytes for 0, - Desassocie o ponteiro; + Se a quantidade de bytes for 0, + Desassocie o ponteiro; Retorne. Preserve a quantidade de bytes. Arredonde para cima a quantidade de bytes usando a potência de dois. @@ -20763,8 +20833,8 @@ Rotina para que se lance um subtexto sobre uma string: \assembly Rotina para que se divida um ponteiro por um número; Rotina para que se divida um número por um segundo número: - Se o segundo número for 0, - Atribua o maior número ao número; + Se o segundo número for 0, + Atribua o maior número ao número; Retorne. Decodifique $8B8508000000. \ mov eax,[ebp+8] \ o número Decodifique $8B9D0C000000. \ mov ebx,[ebp+12] \ o segundo número @@ -20776,9 +20846,9 @@ Rotina para que se divida um n Rotina para que se divida um ponteiro por um número usando um quociente e um resto; Rotina para que se divida um número por um segundo número usando um quociente e um resto: - Se o segundo número for 0, - Atribua o maior número ao quociente; - Atribua 0 ao resto; + Se o segundo número for 0, + Atribua o maior número ao quociente; + Atribua 0 ao resto; Retorne. Decodifique $8B8508000000. \ mov eax,[ebp+8] ; -> salva o 1º número (epb+8) no registrador eax Decodifique $8B9D0C000000. \ mov ebx,[ebp+12] ; -> salva o 2º número (epb+12) no registrador ebx diff --git "a/CEL/O Editor de C\303\263digo" "b/CEL/O Editor de C\303\263digo" index 825a3dec..ebdbcd61 100644 --- "a/CEL/O Editor de C\303\263digo" +++ "b/CEL/O Editor de C\303\263digo" @@ -17,52 +17,52 @@ Um bloco Rotina para que se avance um subtexto (depois de um qualificador): [Itere.] - Se o conteúdo deste caractere inicial deste subtexto for o retorno de carro, + Se o conteúdo deste caractere inicial deste subtexto for o retorno de carro, Retorne. - Se o conteúdo deste caractere inicial deste subtexto for o parênteses esquerdo, + Se o conteúdo deste caractere inicial deste subtexto for o parênteses esquerdo, Adicione 1 para uma contagem. - Se o conteúdo deste caractere inicial deste subtexto for o parênteses direito, + Se o conteúdo deste caractere inicial deste subtexto for o parênteses direito, Subtraia 1 desde a contagem. Adicione 1 para o caractere inicial deste subtexto. - Se a contagem for 0, + Se a contagem for 0, Retorne. Reitere. Rotina para que se avance um subtexto (depois de uma observação): [Itere.] - Se o conteúdo deste caractere inicial deste subtexto for o retorno de carro, + Se o conteúdo deste caractere inicial deste subtexto for o retorno de carro, Retorne. - Se o conteúdo deste caractere inicial deste subtexto for o colchete esquerdo, + Se o conteúdo deste caractere inicial deste subtexto for o colchete esquerdo, Adicione 1 para uma contagem. - Se o conteúdo deste caractere inicial deste subtexto for o colchete direito, + Se o conteúdo deste caractere inicial deste subtexto for o colchete direito, Subtraia 1 desde a contagem. Adicione 1 para o caractere inicial deste subtexto. - Se a contagem for 0, + Se a contagem for 0, Retorne. Reitere. Rotina para que se avance um subtexto (depois de uma string): [Itere.] - Se o conteúdo deste caractere inicial deste subtexto for o retorno de carro, + Se o conteúdo deste caractere inicial deste subtexto for o retorno de carro, Retorne. Adicione 1 para o caractere inicial deste subtexto. - Se o conteúdo deste caractere inicial deste subtexto não for as aspas duplas, + Se o conteúdo deste caractere inicial deste subtexto não for as aspas duplas, Reitere. Adicione 1 para o caractere inicial deste subtexto. - Se o conteúdo deste caractere inicial deste subtexto não for as aspas duplas, + Se o conteúdo deste caractere inicial deste subtexto não for as aspas duplas, Retorne. Reitere. Rotina para que se comente as linhas de texto selecionadas em um source: - Se o source for inexistente, + Se o source for inexistente, Retorne. Itere. Obtenha uma linha de texto desde as linhas de texto desta caixa de texto deste source. - Se a linha de texto for inexistente, + Se a linha de texto for inexistente, Retorne. - Se a linha de texto na caixa de texto deste source não estiver selecionada, + Se a linha de texto na caixa de texto deste source não estiver selecionada, Reitere. - Se a linha de texto estiver em branco, + Se a linha de texto estiver em branco, Reitere. Anteponha "\" para a string desta linha de texto. Reitere. @@ -107,9 +107,9 @@ Rotina para que se crie um source usando um trecho: Rotina para que se determine se um trecho está no formato de arquivo de texto: Lance um subtexto sobre o trecho. Itere. - Se o caractere inicial deste subtexto for maior do que o caractere final deste subtexto, + Se o caractere inicial deste subtexto for maior do que o caractere final deste subtexto, Diga sim. \Retorne Verdadeiro - Se o conteúdo deste caractere inicial deste subtexto não for algum byte de texto, + Se o conteúdo deste caractere inicial deste subtexto não for algum byte de texto, Diga não. \ Retorne Falso Adicione 1 para o caractere inicial deste subtexto. Reitere. @@ -261,7 +261,7 @@ Rotina para que se obtenha um subtexto usando uma linha de texto e um source (pa Se o conteúdo deste caractere inicial deste subtexto for o retorno de carro, Limpe o subtexto; Pare. - Se o conteúdo deste caractere inicial deste subtexto for a barra invertida, + Se o conteúdo deste caractere inicial deste subtexto for a barra invertida, Pare. Se o conteúdo deste caractere inicial deste subtexto for as aspas duplas, Avance o subtexto (depois de uma string); @@ -946,12 +946,12 @@ Rotina para que se scrub um bloco: Rotina para que se scrub um bloco (regressivamente): [Itere.] - Se o bloco for inexistente, + Se o bloco for inexistente, Retorne. Atribua a última linha de texto deste bloco para uma linha de texto. - Se a linha de texto for inexistente, + Se a linha de texto for inexistente, Pare. - Se a linha de texto não estiver em branco, + Se a linha de texto não estiver em branco, Pare. Remova a linha de texto desde as linhas de texto deste bloco. Destrua a linha de texto. @@ -961,12 +961,12 @@ Rotina para que se scrub um bloco (regressivamente): Rotina para que se scrub um bloco (à frente): [Itere.] - Se o bloco for inexistente, + Se o bloco for inexistente, Retorne. Atribua a primeira linha de texto deste bloco para uma linha de texto. - Se a linha de texto for inexistente, + Se a linha de texto for inexistente, Pare. - Se a linha de texto não estiver em branco, + Se a linha de texto não estiver em branco, Pare. Remova a linha de texto desde as linhas de texto deste bloco. Destrua a linha de texto. @@ -976,10 +976,10 @@ Rotina para que se scrub um bloco ( Rotina para que se scrub um bloco por extracting: [Itere.] - Se o bloco for inexistente, + Se o bloco for inexistente, Retorne. Atribua a última linha de texto deste bloco para uma linha de texto. - Se a linha de texto for inexistente, + Se a linha de texto for inexistente, Pare. Se a linha de texto estiver em branco, Remova a linha de texto desde as linhas de texto deste bloco; @@ -993,7 +993,7 @@ Rotina para que se scrub um bloco por extracting: Rotina para que se scrub uns blocos: [Itere.] Obtenha um bloco desde os blocos. - Se o bloco for inexistente, + Se o bloco for inexistente, Retorne. Scrub o bloco. Reitere. @@ -1010,7 +1010,7 @@ Um n Um número de folhas/cópia é um número. Rotina para que se classifique uns blocos: - Se os primeiro bloco destes blocos for os último bloco destes blocos, + Se os primeiro bloco destes blocos for os último bloco destes blocos, Retorne. Subdivida os blocos em uns blocos anteriores e uns blocos posteriores. Classifique os blocos anteriores. @@ -1031,7 +1031,7 @@ Rotina para que se classifique uns blocos: Reitere. Rotina para que se classifique definitions usando um source: - Se o source for inexistente, + Se o source for inexistente, Retorne. Crie uns blocos usando as linhas de texto desta caixa de texto deste source. Scrub os blocos. @@ -1051,23 +1051,23 @@ Um source Uma caixa de texto. Rotina para que se rastreie um source usando um evento: - Se o source for inexistente, + Se o source for inexistente, Retorne. - Se o evento for inexistente, + Se o evento for inexistente, Retorne. Expanda alguma seleção na caixa de texto deste source usando a localização deste evento. - Se o detector de tecla Shift deste evento não estiver ativo, + Se o detector de tecla Shift deste evento não estiver ativo, Solte a caixa de texto deste source. Limpe uma seleção. Itere. - Se um detector estiver ativo, + Se um detector estiver ativo, Mostre o painel de informações do ambiente de trabalho. - Se o botão esquerdo deste mouse não estiver sendo pressionado, + Se o botão esquerdo deste mouse não estiver sendo pressionado, Retorne. Atribua a localização deste mouse para uma localização. Role automaticamente a caixa de texto deste source usando a localização e o detector. Expanda alguma seleção na caixa de texto deste source usando a localização. - Se a seleção desta caixa de texto deste source for a seleção, + Se a seleção desta caixa de texto deste source for a seleção, Reitere. Ative o detector. Atribua a seleção desta caixa de texto deste source à seleção. @@ -1077,11 +1077,11 @@ Rotina para que se uncomment algumas linhas de texto selecionadas em um source: Se o source for inexistente, retorne. Itere. Obtenha uma linha de texto desde as linhas de texto desta caixa de texto deste source. - Se a linha de texto for inexistente, + Se a linha de texto for inexistente, Retorne. - Se a linha de texto na caixa de texto deste source não estiver selecionada, + Se a linha de texto na caixa de texto deste source não estiver selecionada, Reitere. - Se o conteúdo deste caractere inicial desta string desta linha de texto não for a barra invertida, + Se o conteúdo deste caractere inicial desta string desta linha de texto não for a barra invertida, Reitere. Remova o primeiro caractere desde a string desta linha de texto. Reitere. diff --git a/CEL/O Editor de Documentos b/CEL/O Editor de Documentos index d0be5b10..f7d7aa8e 100644 --- a/CEL/O Editor de Documentos +++ b/CEL/O Editor de Documentos @@ -32,7 +32,7 @@ Rotina para que se ajuste o edge de uma p Atribua 24 pixels à coordenada X1 deste edge desta página. Atribua a coordenada X2 deste documento menos 24 pixels à coordenada X2 deste edge desta página. Atribua 0 à coordenada Y1 deste edge desta página. - Se a página não for a primeira página deste documento, + Se a página não for a primeira página deste documento, Atribua a coordenada Y2 deste edge desta página anterior desta página à coordenada Y1 deste edge desta página. Atribua a coordenada Y1 deste edge desta página mais o edge altura à coordenada Y2 deste edge desta página. @@ -228,18 +228,18 @@ Rotina para que se mude a cor da borda de uma forma usando uma cor: Rotina para que se mude a cor da borda de umas formas usando uma cor: [Itere.] Obtenha uma forma desde as formas. - Se a forma for inexistente, + Se a forma for inexistente, Retorne. Mude a cor da borda de a forma usando a cor. Reitere. Rotina para que se traga as formas selecionadas sobre uma página para a frente: - Se a página for inexistente, + Se a página for inexistente, Retorne. Mova as formas desta página para uns formas originais. Itere. Atribua a primeira forma destas formas originais para uma forma. - Se a forma for inexistente, + Se a forma for inexistente, Pare. Remova a forma desde as formas originais. Se a forma estiver selecionada, @@ -250,13 +250,13 @@ Rotina para que se traga as formas selecionadas sobre uma p Acrescente a segunda formas para as formas desta página. Rotina para que se capitalize algumas formas selecionadas sobre uma página: - Se a página for inexistente, + Se a página for inexistente, Retorne. Itere. Obtenha uma forma desde as formas desta página. - Se a forma for inexistente, + Se a forma for inexistente, Retorne. - Se a forma não estiver selecionada, + Se a forma não estiver selecionada, Reitere. Capitalize a forma. Reitere. @@ -275,7 +275,7 @@ Rotina para que se capitalize uma forma: Rotina para que se capitalize umas formas: [Itere.] Obtenha uma forma desde as formas. - Se a forma for inexistente, + Se a forma for inexistente, Retorne. Capitalize a forma. Reitere. @@ -3573,24 +3573,24 @@ Rotina para que se renderize uma p Mova o percorredor (diretrizes de documentos). Rotina para que se renderize uns páginas usando um percorredor: - Se o erro do fluxo de entrada/saída não estiver em branco, + Se o erro do fluxo de entrada/saída não estiver em branco, Retorne. - Se o segmento inicial deste percorredor não for "page", + Se o segmento inicial deste percorredor não for "page", Retorne. Renderize uma página usando o percorredor. Acrescente a página para a páginas. Reitere. Rotina para que se renderize um parágrafo usando um percorredor: - Se o erro do fluxo de entrada/saída não estiver em branco, + Se o erro do fluxo de entrada/saída não estiver em branco, Retorne. Crie o parágrafo. Renderize a string deste parágrafo usando o percorredor. Rotina para que se renderize uns parágrafos usando um percorredor: - Se o erro do fluxo de entrada/saída não estiver em branco, + Se o erro do fluxo de entrada/saída não estiver em branco, Retorne. - Se o segmento inicial deste percorredor for "end", + Se o segmento inicial deste percorredor for "end", Retorne. Renderize um parágrafo usando o percorredor. Acrescente o parágrafo para o parágrafos. @@ -3606,7 +3606,7 @@ Rotina para que se renderize uma imagem usando um percorredor: Renderize os dados hexadecimais desta imagem usando o percorredor. Crie o gpBitmap desta imagem usando os dados hexadecimais desta imagem. Rotacione o gpBitmap desta imagem usando o ângulo de rotação desta imagem. - Se o espelhamento horizontal desta imagem estiver ativo, + Se o espelhamento horizontal desta imagem estiver ativo, Inverta horizontalmente o gpBitmap desta imagem. Rotina para que se renderize um polígono usando um percorredor: @@ -4071,9 +4071,9 @@ Rotina para que se mova umas formas usando um par de n Rotina para que se abra uma página: Se a página for inexistente, retorne. - Se a razão de escala desta página desta listagem desta aba atual não for 1/1, + Se a razão de escala desta página desta listagem desta aba atual não for 1/1, Produza o relatório de informações usando "Erro. A razão de escala da página atual está incorreta (aba atual)". - Se a razão de escala desta página não for 1/1, + Se a razão de escala desta página não for 1/1, Produza o relatório de informações usando "Erro. A razão de escala da página atual está incorreta". Redimensione proporcionalmente a página usando a razão de escala deste documento desta listagem desta aba atual. Centralize a página. @@ -5090,8 +5090,8 @@ Rotina para que se classifique umas formas refer Itere. Atribua a primeira forma referência destas formas referências anteriores para uma forma referência anterior. Atribua a primeira forma referência destas formas referências posteriores para uma forma referência posterior. - Se a forma referência anterior for inexistente, - Acrescente os formas referências posteriores para as formas referências; + Se a forma referência anterior for inexistente, + Acrescente os formas referências posteriores para as formas referências; Retorne. Se a forma referência posterior for inexistente, Acrescente os formas referências anteriores para as formas referências; @@ -5116,7 +5116,7 @@ Rotina para que se classifique umas formas refer Se a forma referência posterior for inexistente, Acrescente os formas referências anteriores para as formas referências; Retorne. - Se a coordenada Y1 desta forma desta forma referência anterior for maior do que a coordenada Y1 desta forma desta forma referência posterior, + Se a coordenada Y1 desta forma desta forma referência anterior for maior do que a coordenada Y1 desta forma desta forma referência posterior, Mova a forma referência posterior desde as formas referências posteriores para a formas referências; Reitere. Mova a forma referência anterior desde as formas referências anteriores para a formas referências. Reitere. diff --git a/CEL/O Explorador de Arquivos b/CEL/O Explorador de Arquivos index 075aa7dd..51ba43f2 100644 --- a/CEL/O Explorador de Arquivos +++ b/CEL/O Explorador de Arquivos @@ -1,10 +1,10 @@ \ copyright © 2006, 2017 a sociedade osmosiana - o navegador de arquivos Rotina para que se adicione um elemento para uma listagem e para o sistema de arquivos usando um endereço completo: - Se a listagem for inexistente, + Se a listagem for inexistente, Retorne. Crie o endereço completo no sistema de arquivos. - Se o erro do fluxo de entrada/saída não estiver em branco, + Se o erro do fluxo de entrada/saída não estiver em branco, Retorne. Crie o elemento usando o endereço completo. Insira o elemento aos elementos desta listagem antes de o primeiro elemento selecionado desta listagem. @@ -12,10 +12,10 @@ Rotina para que se adicione um elemento para uma listagem e para o sistema de ar Ajuste cada elemento presente na listagem. Rotina para que se adicione um elemento para uma listagem e para o sistema de arquivos usando um endereço completo e um trecho: - Se a listagem for inexistente, + Se a listagem for inexistente, Retorne. Escreva o trecho para o endereço completo. - Se o erro do fluxo de entrada/saída não estiver em branco, + Se o erro do fluxo de entrada/saída não estiver em branco, Retorne. Crie o elemento usando o endereço completo. Insira o elemento aos elementos desta listagem antes de o primeiro elemento selecionado desta listagem. @@ -23,7 +23,7 @@ Rotina para que se adicione um elemento para uma listagem e para o sistema de ar Ajuste cada elemento presente na listagem. Rotina para que se ajuste cada elemento presente em uma listagem: - Se a listagem for inexistente, + Se a listagem for inexistente, Retorne. Itere. Obtenha um elemento desde os elementos desta listagem. @@ -33,7 +33,7 @@ Rotina para que se ajuste cada elemento presente em uma listagem: Delimite a origem na listagem. Rotina para que se ajuste uma listagem: - Se a listagem for inexistente, + Se a listagem for inexistente, Retorne. Atribua a coordenada X1 deste explorador de arquivos mais a margem deste explorador de arquivos à coordenada X desta origem desta listagem. Atribua a coordenada Y1 deste explorador de arquivos à coordenada Y desta origem desta listagem. @@ -42,27 +42,27 @@ Rotina para que se ajuste uma listagem: Atribua o cursor de texto desta listagem ao anchor desta listagem. Rotina para que se ajuste um elemento em uma listagem: - Se a listagem for inexistente, + Se a listagem for inexistente, Retorne. - Se o elemento for inexistente, + Se o elemento for inexistente, Retorne. Atribua 0 à coordenada X1 deste elemento. Atribua 32767 à coordenada X2 deste elemento. \ Valor máximo do GDI do Windows. Atribua 10 à coordenada Y1 deste elemento. - Se o elemento não for o primeiro elemento desta listagem, + Se o elemento não for o primeiro elemento desta listagem, Atribua a coordenada Y2 deste elemento anterior deste elemento à coordenada Y1 deste elemento. Atribua a coordenada Y1 deste elemento mais a altura da listagem de elementos à coordenada Y2 deste elemento. Rotina para que se role automaticamente uma listagem usando uma localização e um detector: - Se a listagem for inexistente, + Se a listagem for inexistente, Retorne. - Se a localização estiver na caixa deste explorador de arquivos, - Desative o detector; + Se a localização estiver na caixa deste explorador de arquivos, + Desative o detector; Retorne. Ative o detector. - Se a coordenada Y desta localização for menor do que a coordenada Y1 deste explorador de arquivos, + Se a coordenada Y desta localização for menor do que a coordenada Y1 deste explorador de arquivos, Atribua a altura da listagem de elementos ao número Y duma valor da diferença. - Se a coordenada Y desta localização for maior do que a coordenada Y2 deste explorador de arquivos, + Se a coordenada Y desta localização for maior do que a coordenada Y2 deste explorador de arquivos, Atribua - a altura da listagem de elementos ao número Y deste valor da diferença. Role a listagem usando o valor da diferença. Aguarde por 50 milissegundos. @@ -70,15 +70,15 @@ Rotina para que se role automaticamente uma listagem usando uma localiza Uma contagem atual é uma contagem. Rotina para que se calcule um tamanho referente para os elementos selecionados em uma listagem: - Se a listagem for inexistente, - Atribua 0 ao tamanho; + Se a listagem for inexistente, + Atribua 0 ao tamanho; Retorne. Atribua 0 ao tamanho. Atribua 0 para um contagem atual. Atribua a contagem do elemento seleccionado desta listagem para uma contagem total. Itere. Obtenha um elemento desde os elementos desta listagem. - Se o elemento for inexistente, + Se o elemento for inexistente, Retorne. Se o elemento não estiver selecionado, reitere. Adicione 1 para a contagem atual. @@ -88,7 +88,7 @@ Rotina para que se calcule um tamanho referente para os elementos selecionados e Reitere. Rotina para que se feche uma listagem: - Se a listagem for inexistente, + Se a listagem for inexistente, Retorne. Destrua os elementos desta listagem. Destrua o source desta listagem. @@ -96,9 +96,9 @@ Rotina para que se feche uma listagem: Esvazie a página desta listagem. Rotina para que se recolha uma listagem para a raiz: - Se a listagem for inexistente, + Se a listagem for inexistente, Retorne. - Se a categoria desta listagem for "listagem de unidades", + Se a categoria desta listagem for "listagem de unidades", Retorne. Feche a listagem. Atribua a diretório pai desta listagem à listagem. @@ -106,13 +106,13 @@ Rotina para que se recolha uma listagem para a raiz: Rotina para que se copie algum elementos selecionados em uma listagem retornando uma contagem: Atribua 0 à contagem. - Se a listagem for inexistente, + Se a listagem for inexistente, Retorne. Atribua 0 para um contagem atual. Atribua a contagem do elemento seleccionado desta listagem para uma contagem total. Itere. Obtenha um elemento desde os elementos desta listagem. - Se o elemento for inexistente, + Se o elemento for inexistente, Retorne. Se o elemento não estiver selecionado, reitere. Adicione 1 para a contagem atual. @@ -122,7 +122,7 @@ Rotina para que se copie algum elementos selecionados em uma listagem retornando Reitere. Rotina para que se copie um elemento no sistema de arquivos: - Se o elemento for inexistente, + Se o elemento for inexistente, Retorne. Atribua o clipboard deste explorador de arquivos junto com o designador deste elemento para um endereço completo. Duplique o endereço completo deste elemento para o endereço completo no sistema de arquivos. @@ -150,13 +150,13 @@ Rotina para que se crie uma listagem usando um endere Rotina para que se cut algum elementos selecionados em uma listagem retornando uma contagem: Atribua 0 à contagem. - Se a listagem for inexistente, + Se a listagem for inexistente, Retorne. Atribua 0 para um contagem atual. Atribua a contagem do elemento seleccionado desta listagem para uma contagem total. Atribua o primeiro elemento desta listagem para um próximo elemento. Itere. - Se o próximo elemento for inexistente, + Se o próximo elemento for inexistente, Retorne. Atribua o próximo elemento para um current elemento. Atribua o próximo elemento deste current elemento ao próximo elemento. @@ -168,9 +168,9 @@ Rotina para que se cut algum elementos selecionados em uma listagem retornando u Reitere. Rotina para que se cut um elemento em uma listagem e no sistema de arquivos: - Se a listagem for inexistente, + Se a listagem for inexistente, Retorne. - Se o elemento for inexistente, + Se o elemento for inexistente, Retorne. Copie o elemento no sistema de arquivos. Remova o elemento na listagem e no sistema de arquivos. @@ -253,19 +253,19 @@ Rotina para que se determine se o usu Diga não. Rotina para que se solte uma listagem: - Se a listagem for inexistente, + Se a listagem for inexistente, Retorne. Desative o detector de seleção desta listagem. Rotina para que se solte umas listagens: Obtenha uma listagem desde as listagens. - Se a listagem for inexistente, + Se a listagem for inexistente, Retorne. Solte a listagem. Reitere. Rotina para que se solte os elementos em uma listagem: - Se a listagem for inexistente, + Se a listagem for inexistente, Retorne. Solte os elementos desta listagem. Esvazie o cursor de texto desta listagem. @@ -273,18 +273,18 @@ Rotina para que se solte os elementos em uma listagem: Snapshot os elementos desta listagem. Rotina para que se pinte os elementos visíveis em uma listagem: - Se a listagem for inexistente, + Se a listagem for inexistente, Retorne. Itere. Obtenha um elemento desde os elementos desta listagem. - Se o elemento for inexistente, + Se o elemento for inexistente, Retorne. Se o elemento não for visível na listagem, reitere. Pinte o elemento na listagem. Reitere. Rotina para que se pinte uma listagem: - Se a listagem for inexistente, + Se a listagem for inexistente, Retorne. Cubra somente fora de a caixa deste explorador de arquivos. Pinte a caixa deste explorador de arquivos com a cor do ambiente de trabalho [borda] e a cor do ambiente de trabalho [preenchimento]. @@ -295,9 +295,9 @@ Rotina para que se pinte uma listagem: Pinte os elementos visíveis na listagem. Rotina para que se pinte um elemento em uma listagem: - Se a listagem for inexistente, + Se a listagem for inexistente, Retorne. - Se o elemento for inexistente, + Se o elemento for inexistente, Retorne. Atribua a cor do ambiente de trabalho para uma cor da borda. Atribua a cor do ambiente de trabalho para uma cor de preenchimento. @@ -409,8 +409,8 @@ Rotina para que se encontre um elemento usando uns elementos e um designador: Reitere. Rotina para que se encontre um elemento em uma listagem usando uma localização (delimitando): - Se a listagem for inexistente, - Esvazie o elemento; + Se a listagem for inexistente, + Esvazie o elemento; Retorne. Atribua o canto superior esquerdo desta caixa deste primeiro elemento desta listagem ao canto superior esquerdo duma caixa. Atribua o canto inferior direito desta caixa deste último elemento desta listagem ao canto inferior direito desta caixa. @@ -443,8 +443,8 @@ Rotina para que se obtenha uns links do endere Reitere. Rotina para que se obtenha o painel de informações por uma listagem: - Se a listagem for inexistente, - Limpe a string deste painel de informações; + Se a listagem for inexistente, + Limpe a string deste painel de informações; Retorne. Atribua a contagem do elemento seleccionado desta listagem para uma contagem. Se a contagem for 0, format a contagem destes elementos desta listagem e "item" ou "itens" à string deste painel de informações. @@ -453,11 +453,11 @@ Rotina para que se obtenha o painel de informa Se o endereço completo desta listagem for somente leitura, acrescente " (s)" para a string deste painel de informações. Rotina para que se efetue cópias usando uma listagem: - Se a listagem estiver [na] raiz, - Avise o usuário; + Se a listagem estiver [na] raiz, + Avise o usuário; Retorne. - Se nada estiver selecionado na listagem, - Mostre na tela "Você não selecionou nada pra eu copiar."; + Se nada estiver selecionado na listagem, + Mostre na tela "Você não selecionou nada pra eu copiar."; Retorne. Mostre no painel de informações "Copiando...". Destrua a clipboard deste explorador de arquivos no sistema de arquivos. @@ -468,11 +468,11 @@ Rotina para que se efetue c Desmanche a fila de eventos. Rotina para que se execute cut usando uma listagem: - Se a listagem estiver [na] raiz, - Avise o usuário; + Se a listagem estiver [na] raiz, + Avise o usuário; Retorne. - Se nada estiver selecionado na listagem, - Mostre na tela "Você não selecionou nada pra eu recortar."; + Se nada estiver selecionado na listagem, + Mostre na tela "Você não selecionou nada pra eu recortar."; Retorne. Mostre no painel de informações "Recortando...". Atribua o próximo elemento deste último elemento selecionado desta listagem para um elemento. @@ -486,29 +486,29 @@ Rotina para que se execute cut usando uma listagem: Desmanche a fila de eventos. Rotina para que se efetue a duplicação usando uma listagem: - Se a listagem estiver [na] raiz, - Avise o usuário; + Se a listagem estiver [na] raiz, + Avise o usuário; Retorne. - Se o endereço completo desta listagem for somente leitura, - Mostre na tela "Erro. Pasta bloqueada para gravação. (rotina efetue a duplicação)."; + Se o endereço completo desta listagem for somente leitura, + Mostre na tela "Erro. Pasta bloqueada para gravação. (rotina efetue a duplicação)."; Retorne. Atribua o primeiro elemento selecionado desta listagem para um elemento. - Se o elemento for inexistente, - Mostre na tela "Não sei o que duplicar."; + Se o elemento for inexistente, + Mostre na tela "Não sei o que duplicar."; Retorne. Pergunte "Novo nome?" com o designador s/ barra invertida deste elemento. Se o texto do campo estiver em branco, retorne. \Lowercase o texto do campo. Atribua o endereço da pasta deste elemento junto com o texto do campo para um endereço completo. - Se a categoria deste elemento for "endereço de pasta", + Se a categoria deste elemento for "endereço de pasta", Acrescente "\" para o endereço completo. - Se o endereço completo estiver no sistema de arquivos, - Mostre na tela "Esse arquivo já existe no sistema."; + Se o endereço completo estiver no sistema de arquivos, + Mostre na tela "Esse arquivo já existe no sistema."; Retorne. Mostre o ambiente de trabalho com "Duplicando...". Duplique o elemento na listagem e no sistema de arquivos usando o endereço completo retornando um novo elemento. - Se o erro do fluxo de entrada/saída não estiver em branco, - Mostre na tela o erro do fluxo de entrada/saída; + Se o erro do fluxo de entrada/saída não estiver em branco, + Mostre na tela o erro do fluxo de entrada/saída; Retorne. Focalize no novo elemento na listagem. Mostre o ambiente de trabalho com "Duplicado". @@ -518,17 +518,17 @@ Rotina para que se execute um evento usando uma listagem (pressionamento de tecl Execute o evento usando a listagem (pressionamento de tecla - tecla Delete). Rotina para que se execute um evento usando uma listagem (pressionamento de tecla - tecla Delete): - Se o modo do programa desta aba atual não for "explorador de arquivos", - Produza o relatório de informações usando "Erro interno na função: handle delete usando um listagem"; + Se o modo do programa desta aba atual não for "explorador de arquivos", + Produza o relatório de informações usando "Erro interno na função: handle delete usando um listagem"; Retorne. - Se a listagem estiver [na] raiz, - Avise o usuário; + Se a listagem estiver [na] raiz, + Avise o usuário; Retorne. - Se o endereço completo desta listagem for somente leitura, - Mostre na tela "Erro. Pasta bloqueada para gravação. (pressionamento de tecla)."; + Se o endereço completo desta listagem for somente leitura, + Mostre na tela "Erro. Pasta bloqueada para gravação. (pressionamento de tecla)."; Retorne. - Se nada estiver selecionado na listagem, - Mostre na tela "Erro ao apagar item. Nenhum item selecionado."; + Se nada estiver selecionado na listagem, + Mostre na tela "Erro ao apagar item. Nenhum item selecionado."; Retorne. Se o usuário [ainda] não decidiu-se, retorne. Mostre no painel de informações "Eliminando...". @@ -541,8 +541,8 @@ Rotina para que se execute um evento usando uma listagem (pressionamento de tecl Desmanche a fila de eventos. Rotina para que se execute um evento usando uma listagem (pressionamento de tecla - seta pra baixo + Shift): - Se o próximo elemento deste cursor de texto desta listagem for inexistente, - Avise o usuário; + Se o próximo elemento deste cursor de texto desta listagem for inexistente, + Avise o usuário; Retorne. Atribua o próximo elemento deste cursor de texto desta listagem ao cursor de texto desta listagem. Selecione os elementos desta listagem usando a seleção desta listagem. @@ -551,12 +551,12 @@ Rotina para que se execute um evento usando uma listagem (pressionamento de tecl Rotina para que se execute um evento usando uma listagem (pressionamento de tecla - seta pra baixo): Se a listagem estiver vazia, retorne. - Se o cursor de texto desta listagem for inexistente, - Focalize no primeiro elemento desta listagem na listagem; - Mostre o painel de informações do ambiente de trabalho; + Se o cursor de texto desta listagem for inexistente, + Focalize no primeiro elemento desta listagem na listagem; + Mostre o painel de informações do ambiente de trabalho; Retorne. - Se o detector de tecla Shift deste evento estiver ativo, - Execute o evento usando a listagem (pressionamento de tecla - seta pra baixo + Shift); + Se o detector de tecla Shift deste evento estiver ativo, + Execute o evento usando a listagem (pressionamento de tecla - seta pra baixo + Shift); Retorne. Atribua o próximo elemento deste cursor de texto desta listagem para um elemento. Se o elemento for inexistente, atribua o primeiro elemento desta listagem ao elemento. @@ -565,9 +565,9 @@ Rotina para que se execute um evento usando uma listagem (pressionamento de tecl Rotina para que se execute um evento usando uma listagem (pressionamento de tecla - tecla End): Se a listagem estiver vazia, retorne. - Se o detector de tecla Shift deste evento não estiver ativo, - Focalize no último elemento desta listagem na listagem; - Mostre o ambiente de trabalho; + Se o detector de tecla Shift deste evento não estiver ativo, + Focalize no último elemento desta listagem na listagem; + Mostre o ambiente de trabalho; Retorne. Se o anchor desta listagem for inexistente, atribua o primeiro elemento desta listagem ao anchor desta listagem. Atribua o último elemento desta listagem ao cursor de texto desta listagem. @@ -579,8 +579,8 @@ Rotina para que se execute um evento usando uma listagem (pressionamento de tecl Abra o item. Rotina para que se execute um evento usando uma listagem (pressionamento de tecla - tecla Esc): - Se nada estiver selecionado na listagem, - Execute encerramento; + Se nada estiver selecionado na listagem, + Execute encerramento; Retorne. Se a listagem estiver vazia, retorne. Solte os elementos na listagem. @@ -588,9 +588,9 @@ Rotina para que se execute um evento usando uma listagem (pressionamento de tecl Rotina para que se execute um evento usando uma listagem (pressionamento de tecla - tecla Home): Se a listagem estiver vazia, retorne. - Se o detector de tecla Shift deste evento não estiver ativo, - Focalize no primeiro elemento desta listagem na listagem; - Mostre o ambiente de trabalho; + Se o detector de tecla Shift deste evento não estiver ativo, + Focalize no primeiro elemento desta listagem na listagem; + Mostre o ambiente de trabalho; Retorne. Se o anchor desta listagem for inexistente, atribua o último elemento desta listagem ao anchor desta listagem. Atribua o primeiro elemento desta listagem ao cursor de texto desta listagem. @@ -601,9 +601,9 @@ Rotina para que se execute um evento usando uma listagem (pressionamento de tecl Rotina para que se execute um evento usando uma listagem (pressionamento de tecla - tecla Page Down): Se a listagem estiver vazia, retorne. Role a listagem para baixo one página. - Se o detector de tecla Shift deste evento não estiver ativo, - Focalize no primeiro visível elemento desta listagem na listagem; - Mostre o painel de informações do ambiente de trabalho; + Se o detector de tecla Shift deste evento não estiver ativo, + Focalize no primeiro visível elemento desta listagem na listagem; + Mostre o painel de informações do ambiente de trabalho; Retorne. Se o anchor desta listagem for inexistente, atribua o primeiro elemento desta listagem ao anchor desta listagem. Atribua o primeiro visível elemento desta listagem ao cursor de texto desta listagem. @@ -614,9 +614,9 @@ Rotina para que se execute um evento usando uma listagem (pressionamento de tecl Rotina para que se execute um evento usando uma listagem (pressionamento de tecla - tecla Page Up): Se a listagem estiver vazia, retorne. Role a listagem para cima one página. - Se o detector de tecla Shift deste evento não estiver ativo, - Focalize no primeiro visível elemento desta listagem na listagem; - Mostre o painel de informações do ambiente de trabalho; + Se o detector de tecla Shift deste evento não estiver ativo, + Focalize no primeiro visível elemento desta listagem na listagem; + Mostre o painel de informações do ambiente de trabalho; Retorne. Se o anchor desta listagem for inexistente, atribua o último elemento desta listagem ao anchor desta listagem. Atribua o primeiro visível elemento desta listagem ao cursor de texto desta listagem. @@ -625,8 +625,8 @@ Rotina para que se execute um evento usando uma listagem (pressionamento de tecl Mostre o painel de informações do ambiente de trabalho. Rotina para que se execute um evento usando uma listagem (pressionamento de tecla - seta pra cima - shifted): - Se o elemento anterior deste cursor de texto desta listagem for inexistente, - Avise o usuário; + Se o elemento anterior deste cursor de texto desta listagem for inexistente, + Avise o usuário; Retorne. Atribua o elemento anterior deste cursor de texto desta listagem ao cursor de texto desta listagem. Selecione os elementos desta listagem usando a seleção desta listagem. @@ -635,12 +635,12 @@ Rotina para que se execute um evento usando uma listagem (pressionamento de tecl Rotina para que se execute um evento usando uma listagem (pressionamento de tecla - seta pra cima): Se a listagem estiver vazia, retorne. - Se o cursor de texto desta listagem for inexistente, - Focalize no último elemento desta listagem na listagem; - Mostre o painel de informações do ambiente de trabalho; + Se o cursor de texto desta listagem for inexistente, + Focalize no último elemento desta listagem na listagem; + Mostre o painel de informações do ambiente de trabalho; Retorne. - Se o detector de tecla Shift deste evento estiver ativo, - Execute o evento usando a listagem (pressionamento de tecla - seta pra cima - shifted); + Se o detector de tecla Shift deste evento estiver ativo, + Execute o evento usando a listagem (pressionamento de tecla - seta pra cima - shifted); Retorne. Atribua o elemento anterior deste cursor de texto desta listagem para um elemento. Se o elemento for inexistente, atribua o último elemento desta listagem ao elemento. @@ -648,35 +648,35 @@ Rotina para que se execute um evento usando uma listagem (pressionamento de tecl Mostre o painel de informações do ambiente de trabalho. Rotina para que se execute um evento usando uma listagem (pressionamento de tecla): - Se a tecla deste evento for a tecla backspace, - Execute o evento usando a listagem (pressionamento de tecla - tecla backspace); + Se a tecla deste evento for a tecla backspace, + Execute o evento usando a listagem (pressionamento de tecla - tecla backspace); Retorne. - Se a tecla deste evento for a tecla Delete, - Execute o evento usando a listagem (pressionamento de tecla - tecla Delete); + Se a tecla deste evento for a tecla Delete, + Execute o evento usando a listagem (pressionamento de tecla - tecla Delete); Retorne. - Se a tecla deste evento for a tecla Enter, - Execute o evento usando a listagem (pressionamento de tecla - tecla Enter); + Se a tecla deste evento for a tecla Enter, + Execute o evento usando a listagem (pressionamento de tecla - tecla Enter); Retorne. - Se a tecla deste evento for a seta pra baixo, - Execute o evento usando a listagem (pressionamento de tecla - seta pra baixo); + Se a tecla deste evento for a seta pra baixo, + Execute o evento usando a listagem (pressionamento de tecla - seta pra baixo); Retorne. - Se a tecla deste evento for a tecla End, - Execute o evento usando a listagem (pressionamento de tecla - tecla End); + Se a tecla deste evento for a tecla End, + Execute o evento usando a listagem (pressionamento de tecla - tecla End); Retorne. - Se a tecla deste evento for a tecla Esc, - Execute o evento usando a listagem (pressionamento de tecla - tecla Esc); + Se a tecla deste evento for a tecla Esc, + Execute o evento usando a listagem (pressionamento de tecla - tecla Esc); Retorne. - Se a tecla deste evento for a tecla Home, - Execute o evento usando a listagem (pressionamento de tecla - tecla Home); + Se a tecla deste evento for a tecla Home, + Execute o evento usando a listagem (pressionamento de tecla - tecla Home); Retorne. - Se a tecla deste evento for a tecla PgDn, - Execute o evento usando a listagem (pressionamento de tecla - tecla Page Down); + Se a tecla deste evento for a tecla PgDn, + Execute o evento usando a listagem (pressionamento de tecla - tecla Page Down); Retorne. - Se a tecla deste evento for a tecla PgUp, - Execute o evento usando a listagem (pressionamento de tecla - tecla Page Up); + Se a tecla deste evento for a tecla PgUp, + Execute o evento usando a listagem (pressionamento de tecla - tecla Page Up); Retorne. - Se a tecla deste evento for a seta pra cima, - Execute o evento usando a listagem (pressionamento de tecla - seta pra cima); + Se a tecla deste evento for a seta pra cima, + Execute o evento usando a listagem (pressionamento de tecla - seta pra cima); Retorne. Rotina para que se execute um evento usando uma listagem (clique - alterado): @@ -698,23 +698,23 @@ Rotina para que se execute um evento usando uma listagem (clique - com Shift): Rastreie a listagem usando o evento. Rotina para que se execute um evento usando uma listagem (clique): - Se a localização deste evento não estiver na listagem, - Execute o evento usando a listagem (clique - fiora da listagem); + Se a localização deste evento não estiver na listagem, + Execute o evento usando a listagem (clique - fiora da listagem); Retorne. - Se o evento foi alterado, - Execute o evento usando a listagem (clique - alterado); + Se o evento foi alterado, + Execute o evento usando a listagem (clique - alterado); Retorne. - Se o detector de tecla Shift deste evento estiver ativo, - Execute o evento usando a listagem (clique - com Shift); + Se o detector de tecla Shift deste evento estiver ativo, + Execute o evento usando a listagem (clique - com Shift); Retorne. Execute o evento usando a listagem (clique - normal). Rotina para que se execute um evento usando uma listagem (clique duplo): - Se something estiver selecionado na listagem, - Abra o item; + Se something estiver selecionado na listagem, + Abra o item; Retorne. - Se a localização deste evento não estiver na listagem, - Abra o item; + Se a localização deste evento não estiver na listagem, + Abra o item; Retorne. Expanda alguma seleção na listagem usando a localização deste evento. Mostre o painel de informações do ambiente de trabalho. @@ -731,20 +731,20 @@ Rotina para que se execute um evento usando uma listagem (exibir cursor do mouse Mostre a seta do mouse. Rotina para que se execute extract cifra binária literal usando uma listagem: - Se a listagem estiver [na] raiz, - Avise o usuário; + Se a listagem estiver [na] raiz, + Avise o usuário; Retorne. - Se a contagem do elemento seleccionado desta listagem não for 1, - Mostre na tela "Selecione ao menos um arquivo item para extrair."; + Se a contagem do elemento seleccionado desta listagem não for 1, + Mostre na tela "Selecione ao menos um arquivo item para extrair."; Retorne. Mostre no painel de informações "Copiando...". Atribua o primeiro elemento selecionado desta listagem para um elemento. - Se a categoria deste elemento não for "arquivo", - Mostre na tela "Erro. Só é possível extrair o conteúdo hexadecimal de arquivos"; + Se a categoria deste elemento não for "arquivo", + Mostre na tela "Erro. Só é possível extrair o conteúdo hexadecimal de arquivos"; Retorne. Leia o endereço completo deste elemento para um trecho. - Se o erro do fluxo de entrada/saída não estiver em branco, - Mostre na tela o erro do fluxo de entrada/saída; + Se o erro do fluxo de entrada/saída não estiver em branco, + Mostre na tela o erro do fluxo de entrada/saída; Retorne. Converta o trecho para uma cifra hexadecimal. Anteponha "$" para a cifra hexadecimal. \ melhor remover @@ -752,11 +752,11 @@ Rotina para que se execute extract cifra bin Mostre no painel de informações "Copiado". Rotina para que se execute obtenha tamanho usando uma listagem: - Se a listagem for raiz, - Avise o usuário; + Se a listagem for raiz, + Avise o usuário; Retorne. - Se nada estiver selecionado na listagem, - Mostre na tela "Erro: Nenhum item selecionado na listagem."; + Se nada estiver selecionado na listagem, + Mostre na tela "Erro: Nenhum item selecionado na listagem."; Retorne. Mostre no painel de informações "Obtendo tamanho da listagem...". Calcule um tamanho referente aos elementos selecionados na listagem. @@ -765,45 +765,45 @@ Rotina para que se execute obtenha tamanho usando uma listagem: Desmanche a fila de eventos. Rotina para que se crie a nova pasta usando uma listagem: - Se a listagem estiver [na] raiz, - Avise o usuário; + Se a listagem estiver [na] raiz, + Avise o usuário; Retorne. - Se o endereço completo desta listagem for somente leitura, - Mostre na tela "Erro. Pasta está bloqueada para gravação."; + Se o endereço completo desta listagem for somente leitura, + Mostre na tela "Erro. Pasta está bloqueada para gravação."; Retorne. Pergunte "Qual o nome da pasta?". Se o texto do campo estiver em branco, retorne. - Se o texto do campo não for compatível c/ o DOS, - Mostre na tela "Erro. Nome inválido"; + Se o texto do campo não for compatível c/ o DOS, + Mostre na tela "Erro. Nome inválido"; Retorne. Atribua o endereço completo desta listagem junto com o texto do campo seguido de "\" para um endereço completo. - Se o endereço completo estiver no sistema de arquivos, - Mostre na tela "Erro. Esta pasta já existe. Escolha outro nome."; + Se o endereço completo estiver no sistema de arquivos, + Mostre na tela "Erro. Esta pasta já existe. Escolha outro nome."; Retorne. Mostre o ambiente de trabalho com "Criando...". Adicione um elemento para a listagem e para o sistema de arquivos usando o endereço completo. - Se o erro do fluxo de entrada/saída não estiver em branco, - Mostre na tela o erro do fluxo de entrada/saída; + Se o erro do fluxo de entrada/saída não estiver em branco, + Mostre na tela o erro do fluxo de entrada/saída; Retorne. Focalize no elemento na listagem. Mostre o ambiente de trabalho com "Pasta criada com sucesso". Desmanche a fila de eventos. Rotina para que se crie o novo documento usando uma listagem: - Se a listagem estiver [na] raiz, - Avise o usuário; + Se a listagem estiver [na] raiz, + Avise o usuário; Retorne. - Se o endereço completo desta listagem for somente leitura, - Mostre na tela "Essa pasta está bloqueada."; + Se o endereço completo desta listagem for somente leitura, + Mostre na tela "Essa pasta está bloqueada."; Retorne. Pergunte "Nome do Documento?". Se a texto do campo estiver em branco, retorne. - Se a texto do campo não for compatível c/ o DOS, - Mostre na tela "Nome inválido"; + Se a texto do campo não for compatível c/ o DOS, + Mostre na tela "Nome inválido"; Retorne. Atribua o endereço completo desta listagem junto com o texto do campo para um endereço completo. - Se o endereço completo estiver no sistema de arquivos, - Mostre na tela "Esse nome já existe. Use outro nome."; + Se o endereço completo estiver no sistema de arquivos, + Mostre na tela "Esse nome já existe. Use outro nome."; Retorne. Mostre o ambiente de trabalho com "Criando Documento...". Atribua "ream " junto com a versão do editor de documentos para um trecho. \ ream @@ -811,47 +811,47 @@ Rotina para que se crie o novo documento usando uma listagem: Acrescente a quebra de linha para o trecho. Acrescente "end" para o trecho. Adicione um elemento para a listagem e para o sistema de arquivos usando o endereço completo e o trecho. - Se o erro do fluxo de entrada/saída não estiver em branco, - Mostre na tela o erro do fluxo de entrada/saída; + Se o erro do fluxo de entrada/saída não estiver em branco, + Mostre na tela o erro do fluxo de entrada/saída; Retorne. Focalize no elemento na listagem. Mostre o ambiente de trabalho com "Documento criado". Desmanche a fila de eventos. Rotina para que se crie o novo arquivo arquivo de texto usando uma listagem: - Se a listagem estiver [na] raiz, - Avise o usuário; + Se a listagem estiver [na] raiz, + Avise o usuário; Retorne. - Se o endereço completo desta listagem for somente leitura, - Mostre na tela "Essa pasta está bloqueada."; + Se o endereço completo desta listagem for somente leitura, + Mostre na tela "Essa pasta está bloqueada."; Retorne. Pergunte "Nome do arquivo?". Se o texto do campo estiver em branco, retorne. - Se o texto do campo não for compatível c/ o DOS, - Mostre na tela "Nome inválido"; + Se o texto do campo não for compatível c/ o DOS, + Mostre na tela "Nome inválido"; Retorne. Atribua o endereço completo desta listagem junto com o texto do campo para um endereço completo. - Se o endereço completo estiver no sistema de arquivos, - Mostre na tela "Esse nome já existe. Use outro nome."; + Se o endereço completo estiver no sistema de arquivos, + Mostre na tela "Esse nome já existe. Use outro nome."; Retorne. Mostre o ambiente de trabalho com "Criando...". Adicione um elemento para a listagem e para o sistema de arquivos usando o endereço completo. - Se o erro do fluxo de entrada/saída não estiver em branco, - Mostre na tela o erro do fluxo de entrada/saída; + Se o erro do fluxo de entrada/saída não estiver em branco, + Mostre na tela o erro do fluxo de entrada/saída; Retorne. Focalize no elemento na listagem. Mostre o ambiente de trabalho com "Arquivo criado". Desmanche a fila de eventos. Rotina para que se cole o item usando uma listagem: - Se a listagem estiver [na] raiz, - Avise o usuário; + Se a listagem estiver [na] raiz, + Avise o usuário; Retorne. - Se o clipboard deste explorador de arquivos estiver vazia no sistema de arquivos, - Avise o usuário; + Se o clipboard deste explorador de arquivos estiver vazia no sistema de arquivos, + Avise o usuário; Retorne. - Se o endereço completo desta listagem for somente leitura, - Mostre na tela "Essa pasta está bloqueada."; + Se o endereço completo desta listagem for somente leitura, + Mostre na tela "Essa pasta está bloqueada."; Retorne. Mostre no painel de informações "Colando...". Cole os itens copiados na listagem e no sistema de arquivos retornando uma contagem. @@ -862,62 +862,62 @@ Rotina para que se cole o item usando uma listagem: Desmanche a fila de eventos. Rotina para que se renomeie o arquivo usando uma listagem: - Se a listagem estiver [na] raiz, - Avise o usuário; + Se a listagem estiver [na] raiz, + Avise o usuário; Retorne. - Se o endereço completo desta listagem for somente leitura, - Mostre na tela "Essa pasta está bloqueada."; + Se o endereço completo desta listagem for somente leitura, + Mostre na tela "Essa pasta está bloqueada."; Retorne. Atribua o primeiro elemento selecionado desta listagem para um elemento. - Se o elemento for inexistente, - Mostre na tela "Não tem nada selecionado pra renomear"; + Se o elemento for inexistente, + Mostre na tela "Não tem nada selecionado pra renomear"; Retorne. Pergunte "Novo nome?" com o designador s/ barra invertida deste elemento. Se o texto do campo estiver em branco, retorne. Lowercase o texto do campo. Atribua o endereço da pasta deste elemento junto com o texto do campo para um endereço completo. Se a categoria deste elemento for "endereço de pasta", acrescente "\" para o endereço completo. - Se o endereço completo estiver no sistema de arquivos, - Mostre na tela "Erro. Esse nome já existe. Escolha outro nome."; + Se o endereço completo estiver no sistema de arquivos, + Mostre na tela "Erro. Esse nome já existe. Escolha outro nome."; Retorne. Mostre o ambiente de trabalho com "Renomeando...". Rename o elemento na listagem e no sistema de arquivos usando o endereço completo. - Se o erro do fluxo de entrada/saída não estiver em branco, - Mostre na tela o erro do fluxo de entrada/saída; + Se o erro do fluxo de entrada/saída não estiver em branco, + Mostre na tela o erro do fluxo de entrada/saída; Retorne. Focalize no elemento na listagem. Mostre o ambiente de trabalho com "Renomeado". Desmanche a fila de eventos. Rotina para que se reverta a ação usando uma listagem: - Se a listagem for raiz, - Avise o usuário; + Se a listagem for raiz, + Avise o usuário; Retorne. Inverta a listagem. Mostre o painel de informações do ambiente de trabalho. Desmanche a fila de eventos. Rotina para que se coordene a execução dos programas usando uma listagem: - Se a listagem for raiz, - Avise o usuário; + Se a listagem for raiz, + Avise o usuário; Retorne. Atribua o primeiro elemento selecionado desta listagem para um elemento. - Se o elemento for inexistente, - Mostre na tela "Não há nada para executar aqui."; + Se o elemento for inexistente, + Mostre na tela "Não há nada para executar aqui."; Retorne. - Se a extensão deste elemento não for ".exe", - Mostre na tela "Não é possível executar esse tipo de arquivo dessa forma."; + Se a extensão deste elemento não for ".exe", + Mostre na tela "Não é possível executar esse tipo de arquivo dessa forma."; Retorne. Mostre no painel de informações "Executando...". Comece o processo atual usando o endereço completo deste elemento. - Se o erro do fluxo de entrada/saída não estiver em branco, - Mostre na tela o erro do fluxo de entrada/saída; + Se o erro do fluxo de entrada/saída não estiver em branco, + Mostre na tela o erro do fluxo de entrada/saída; Retorne. Desmanche a fila de eventos. Rotina para que se selecione todos os itens usando uma listagem: - Se a listagem é raiz, - Avise o usuário; + Se a listagem é raiz, + Avise o usuário; Retorne. Solte os elementos na listagem. Selecione os elementos desta listagem. @@ -926,8 +926,8 @@ Rotina para que se selecione todos os itens usando uma listagem: Mostre o painel de informações do ambiente de trabalho. Rotina para que se execute classifique elementos usando uma listagem e uma string: - Se a listagem é raiz, - Avise o usuário; + Se a listagem é raiz, + Avise o usuário; Retorne. Se a string for "data", classifique a listagem por date. Se a string for "categoria", classifique a listagem por categoria. @@ -985,17 +985,17 @@ Uma p Rotina para que se abra uma listagem: Se a listagem for inexistente, retorne. - Se a categoria desta listagem for "listagem de unidades", - Abra a listagem (listagem de unidades); + Se a categoria desta listagem for "listagem de unidades", + Abra a listagem (listagem de unidades); Retorne. - Se a categoria desta listagem for "unidade de disco", - Abra a listagem (unidade de disco ou pasta); + Se a categoria desta listagem for "unidade de disco", + Abra a listagem (unidade de disco ou pasta); Retorne. - Se a categoria desta listagem for "endereço de pasta", - Abra a listagem (unidade de disco ou pasta); + Se a categoria desta listagem for "endereço de pasta", + Abra a listagem (unidade de disco ou pasta); Retorne. - Se a categoria desta listagem for "arquivo", - Abra a listagem (arquivo); + Se a categoria desta listagem for "arquivo", + Abra a listagem (arquivo); Retorne. Rotina para que se abra uma listagem (unidade de disco ou pasta): @@ -1023,11 +1023,11 @@ Rotina para que se abra uma listagem (arquivo de texto): Rotina para que se abra uma listagem (arquivo): Leia o endereço completo desta listagem para um trecho. Se o erro do fluxo de entrada/saída não estiver em branco, retorne. - Se o trecho for documento-format, - Abra a listagem usando o trecho (formato de documento); + Se o trecho for documento-format, + Abra a listagem usando o trecho (formato de documento); Retorne. - Se o trecho estiver no formato de arquivo de texto, - Abra a listagem usando o trecho (arquivo de texto); + Se o trecho estiver no formato de arquivo de texto, + Abra a listagem usando o trecho (arquivo de texto); Retorne. Abra a listagem usando o trecho (arquivo binário). @@ -1066,8 +1066,8 @@ Rotina para que se abra uma listagem usando um endere Se o endereço da pasta não estiver em branco, abra a listagem usando o endereço da pasta. Extraia um designador desde o endereço completo. Encontre um elemento usando os elementos desta listagem e o designador. - Se o elemento for inexistente, - Atribua "arquivo ou pasta inexistente" ao erro do fluxo de entrada/saída; + Se o elemento for inexistente, + Atribua "arquivo ou pasta inexistente" ao erro do fluxo de entrada/saída; Retorne. Abra o elemento. Focalize no elemento na listagem. @@ -1084,29 +1084,29 @@ Rotina para que se cole os itens copiados em uma listagem e no sistema de arquiv Solte os elementos na listagem. Itere. Obtenha um item desde o clipboard deste explorador de arquivos. - Se o item não for encontrado, + Se o item não for encontrado, Retorne. Adicione 1 para a contagem atual. - Se o usuário não estiver querendo sobrescrever o item na listagem, + Se o usuário não estiver querendo sobrescrever o item na listagem, Reitere. Mostre no painel de informações a contagem atual seguido de " de " junto com a contagem total de itens seguido de "...". Cole o item na listagem e no sistema de arquivos antes de o primeiro elemento selecionado. - Se o erro do fluxo de entrada/saída não estiver em branco, + Se o erro do fluxo de entrada/saída não estiver em branco, Reitere. Adicione 1 para a contagem. Reitere. Rotina para que se cole um item em uma listagem e no sistema de arquivos antes de um elemento: - Se a listagem for inexistente, + Se a listagem for inexistente, Retorne. Atribua o endereço completo desta listagem para um endereço completo. Acrescente o designador deste item para o endereço completo. Duplique o endereço completo deste item para o endereço completo no sistema de arquivos. - Se o erro do fluxo de entrada/saída não estiver em branco, + Se o erro do fluxo de entrada/saída não estiver em branco, Retorne. Encontre um segundo elemento usando os elementos desta listagem e o designador deste item. - Se o segundo elemento não for inexistente, - Selecione o segundo elemento; + Se o segundo elemento não for inexistente, + Selecione o segundo elemento; Retorne. Crie um terceiro elemento usando o endereço completo. Insira o terceiro elemento aos elementos desta listagem antes de o elemento. @@ -1271,8 +1271,10 @@ Rotina para que se role at Se o elemento estiver visível na listagem, retorne. Atribua a caixa deste elemento para uma caixa. Mova a caixa usando a origem desta listagem. - Se a coordenada Y2 desta caixa for menor do que ou igual à coordenada Y1 deste explorador de arquivos, atribua a coordenada Y1 deste explorador de arquivos menos a coordenada Y1 desta caixa ao número Y duma valor da diferença. - Se a coordenada Y1 desta caixa for maior do que ou igual à coordenada Y2 deste explorador de arquivos, atribua a coordenada Y2 deste explorador de arquivos menos a coordenada Y1 desta caixa menos o edge altura ao número Y deste valor da diferença. + Se a coordenada Y2 desta caixa for menor do que ou igual à coordenada Y1 deste explorador de arquivos, + Atribua a coordenada Y1 deste explorador de arquivos menos a coordenada Y1 desta caixa ao número Y duma valor da diferença. + Se a coordenada Y1 desta caixa for maior do que ou igual à coordenada Y2 deste explorador de arquivos, + Atribua a coordenada Y2 deste explorador de arquivos menos a coordenada Y1 desta caixa menos o edge altura ao número Y deste valor da diferença. Role a listagem usando o valor da diferença. Rotina para que se selecione um elemento: @@ -1352,7 +1354,7 @@ Rotina para que se classifique uma listagem por categoria: Ajuste cada elemento presente na listagem. Rotina para que se classifique uns elementos por designador: - Se o primeiro elemento destes elementos for o último elemento destes elementos, + Se o primeiro elemento destes elementos for o último elemento destes elementos, Retorne. Subdivida os elementos em uns elementos anteriores e uns elementos posteriores. Classifique o elementos anteriores por designador. @@ -1360,11 +1362,11 @@ Rotina para que se classifique uns elementos por designador: Itere. Atribua o primeiro elemento destes elementos anteriores para um elemento anterior. Atribua o primeiro elemento destes elementos posteriores para um elemento posterior. - Se o elemento anterior for inexistente, - Acrescente o elementos posteriores aos elementos; + Se o elemento anterior for inexistente, + Acrescente o elementos posteriores aos elementos; Retorne. - Se o elemento posterior for inexistente, - Acrescente o elementos anteriores aos elementos; + Se o elemento posterior for inexistente, + Acrescente o elementos anteriores aos elementos; Retorne. Se o designador s/ barra invertida deste elemento anterior for maior do que o designador s/ barra invertida deste elemento posterior, Mova o elemento posterior desde o elementos posteriores para os elementos; @@ -1380,11 +1382,11 @@ Rotina para que se classifique uns elementos por extens Itere. Atribua o primeiro elemento destes elementos anteriores para um elemento anterior. Atribua o primeiro elemento destes elementos posteriores para um elemento posterior. - Se o elemento anterior for inexistente, - Acrescente o elementos posteriores para os elementos; + Se o elemento anterior for inexistente, + Acrescente o elementos posteriores para os elementos; Retorne. - Se o elemento posterior for inexistente, - Acrescente o elementos anteriores para os elementos; + Se o elemento posterior for inexistente, + Acrescente o elementos anteriores para os elementos; Retorne. Se a extensão deste elemento anterior for maior do que a extensão deste elemento posterior, Mova o elemento posterior desde o elementos posteriores para os elementos; @@ -1393,7 +1395,7 @@ Rotina para que se classifique uns elementos por extens Reitere. Rotina para que se classifique uns elementos por date: - Se o primeiro elemento destes elementos for o último elemento destes elementos, + Se o primeiro elemento destes elementos for o último elemento destes elementos, Retorne. Subdivida os elementos em uns elementos anteriores e uns elementos posteriores. Classifique o elementos anteriores por date. @@ -1401,11 +1403,11 @@ Rotina para que se classifique uns elementos por date: Itere. Atribua o primeiro elemento destes elementos anteriores para um elemento anterior. Atribua o primeiro elemento destes elementos posteriores para um elemento posterior. - Se o elemento anterior for inexistente, - Acrescente o elementos posteriores para os elementos; + Se o elemento anterior for inexistente, + Acrescente o elementos posteriores para os elementos; Retorne. - Se o elemento posterior for inexistente, - Acrescente o elementos anteriores para os elementos; + Se o elemento posterior for inexistente, + Acrescente o elementos anteriores para os elementos; Retorne. Se o grupo data/hora de criação deste elemento anterior for maior do que o grupo data/hora de criação deste elemento posterior, Mova o elemento posterior desde o elementos posteriores para os elementos; @@ -1414,7 +1416,7 @@ Rotina para que se classifique uns elementos por date: Reitere. Rotina para que se classifique uns elementos por categoria: - Se o primeiro elemento destes elementos for o último elemento destes elementos, + Se o primeiro elemento destes elementos for o último elemento destes elementos, Retorne. Subdivida os elementos em uns elementos anteriores e uns elementos posteriores. Classifique os elementos anteriores por categoria. @@ -1422,11 +1424,11 @@ Rotina para que se classifique uns elementos por categoria: Itere. Atribua o primeiro elemento destes elementos anteriores para um elemento anterior. Atribua o primeiro elemento destes elementos posteriores para um elemento posterior. - Se o elemento anterior for inexistente, - Acrescente o elementos posteriores para os elementos; + Se o elemento anterior for inexistente, + Acrescente o elementos posteriores para os elementos; Retorne. - Se o elemento posterior for inexistente, - Acrescente o elementos anteriores para os elementos; + Se o elemento posterior for inexistente, + Acrescente o elementos anteriores para os elementos; Retorne. Se a categoria deste elemento anterior for maior do que a categoria deste elemento posterior, Mova o elemento posterior desde o elementos posteriores para os elementos; @@ -1437,14 +1439,14 @@ Rotina para que se classifique uns elementos por categoria: Um contagem total é uma contagem. Rotina para que se rastreie uma listagem usando um evento: - Se a listagem for inexistente, + Se a listagem for inexistente, Retorne. - Se o evento for inexistente, + Se o evento for inexistente, Retorne. Limpe uma seleção de elementos. Itere. Se um detector estiver ativo, mostre o painel de informações do ambiente de trabalho. - Se o botão esquerdo deste mouse não estiver sendo pressionado, + Se o botão esquerdo deste mouse não estiver sendo pressionado, Retorne. Atribua a localização deste mouse para uma localização. Role automaticamente a listagem usando a localização e o detector. diff --git a/CEL/PAL-1000.exe b/CEL/PAL-1000.exe index f29342e8..b8f1f5aa 100644 Binary files a/CEL/PAL-1000.exe and b/CEL/PAL-1000.exe differ