Jump to content

Recommended Posts

Este tópico é para montarmos uma biblioteca básica para utilizarmos o AutoIt de uma forma mais comercial.

 

Todas as funções aqui apresentadas são de uso e acesso livre a qualquer pessoa para qualquer utilização que desejar, independente de cobrança ou não. Traduzindo, se quiser usar o que tiver aqui para fazer um sistema e cobrar por ele, fique a vontade. Nosso intuito é divulgar e difundir o conhecimento, mas por favor, mantenha os créditos!

 

As funções aqui presentes serão adequadas ao padrão internacional de formatação e documentação e portanto serão centralizadas, formatadas e liberadas na última versão disponível aqui neste post. Me comprometo a fazer este trabalho de ajustes e manter a biblioteca atualizada. Por favor, peço auxílio a todos na questão de padronização.

 

Outro detalhe é que as funções, na medida do possível, sejam completamente independentes, ou se necessário acompanhadas de todos os includes e/ou fontes que sejam necessários à sua execução.

 

A intenção é poder incorporar através de #include a Framework e poder utilizar qualquer função nela contida. Exemplo:

#include "Framework.au3"

OutPut(DT2EXT(_NowCalcDate()))

Observar que o #include tem ASPAS (") e não os tradicionais <>. Porque disso? Para procurar o arquivo Framework.au3 na MESMA pasta onde está o nosso script principal.

 

Se usarmos como

#include <Framework.au3>

Provavelmente vai dar errado porque o AutoIt procura o arquivo na pasta INCLUDE. Se quiser usar assim, lembre de copiar o arquivo para lá mas cuidado para não ficar com 2 cópias!

 

Uma boa dica para obter os parâmetros de cada função, é pressionar CTRL-J com o mouse em cima da função!

 

Versão 1.04 - padronizadas constantes de localização
corrigida função TRUNC com resultados 0 (zero)
Versão 1.03 colocado mais algumas validações de parâmetros

substituídos comandos _ArrayAdd para aumentar a eficiência

corrigido retorno de algumas funções (sempre setava @error)

incluído as funções StringDifference e Trunc

Versão 1.02 - corrigido cálculo da função PADC e incluído algumas funções para números

Versão 1.01 - integradas as funções de string

Versão 1.0

Funções até então:

 

Name ..........: OUTPUT
Description ...: Mostra mensagem usando ConsoleWrite ou MsgBox
Example .......: OUTPUT("Isto é uma mensagem")
Name ..........: DAY
Description ...: Dia do mês de uma data específica
Example .......: DAY(_NowCalcDate()) ; retorna o dia da data de hoje
Name ..........: DOW
Description ...: Dia da semana de uma data específica
Example .......: DOW(_NowCalcDate()) ; retorna o dia da semana de hoje
Name ..........: DOW2EXT
Description ...: Extenso do dia da semana
Example .......: DOWEXT(4) ; retorna "Quarta"
DOWEXT(4, 3) ; retorna "Qua"
DOWEXT(4, Default, Default, True) ; retorna "Quarta-feira"
DOWEXT(4, Default, False, True) ; retorna "quarta-feira"
Name ..........: EXT2DOW
Description ...: Dia da Semana de acordo com o extenso
Example .......: EXT2DOW("Quarta") ; retorna 4
EXT2DOW("Dom") ; retorna 1
EXT2DOW("Sexta-feira") ; retorna 6
Name ..........: MONTH
Description ...: Mês de uma data específica
Example .......: MONTH(_NowCalcDate()) ; retorna o mês da data de hoje
Name ..........: MONTH2EXT
Description ...: Mês por extenso
Example .......: MONTH2EXT(2) ; retorna Fevereiro
MONTH2EXT(8) ; retorna Agosto
Name ..........: EXT2MONTH
Description ...: Mês de acordo com o extenso
Example .......: EXT2MONTH("Março") ; retorna 3
EXT2MONTH("Set") ; retorna 9
Name ..........: YEAR
Description ...: Ano de uma data específica
Example .......: YEAR(_NowCalcDate()) ; retorna o ano da data de hoje
Name ..........: DT2EXP
Description ...: Expande a data para o formato dd/MMM/yyyy
Example .......: DT2EXP(_NowCalcDate()) ; retorna 12/Dez/2017
Name ..........: DT2EXT
Description ...: Extenso de uma data
Example .......: DT2EXT(_NowCalcDate()) ; retorna Terça, 12 de Dezembro de 2017
DT2EXT(_NowCalcDate(), False) ; retorna 12 de Dezembro de 2017
Name ..........: VIRA_DATA
Description ...: Inverte o formato de data de ddmmyyyy para yyymmdd ou vice-versa com ou sem separadores
Example .......: VIRA_DATA("25/06/2017") ; retorna 2017/06/25
Name ..........: SPACE
Description ...: Retorna string com uma quantidade determinada de espaços
Example .......: SPACE(30) ; retorna " "
Name ..........: LIMPA_ESPACO_DUPLO
Description ...: Elimina os espaços duplos dentro de uma string
Example .......: LIMPA_ESPACO_DUPLO(" Este é um exemplo ") ; retorna " Este é um exemplo "
Name ..........: LTRIM
Description ...: Elimina os espaços ANTES do texto, pode escolher qual caracter será limpo
Example .......: LTRIM(" Este é um exemplo ") ; retorna "Este é um exemplo "
Name ..........: RTRIM
Example .......: RTRIM(" Este é um exemplo ") ; retorna " Este é um exemplo"
Name ..........: ALLTRIM
Description ...: Elimina os espaços ANTES e DEPOIS do texto, pode escolher qual caracter será limpo
Example .......: ALLTRIM(" Este é um exemplo ") ; retorna "Este é um exemplo"
Name ..........: PADR
Description ...: Completa uma string com espaços NO FINAL até uma determinada quantidade
Example .......: PADR("ABCDE", 10) ; retorna "ABCDE "
PADR("ABCDE", 3) ; retorna "ABCDE"
Name ..........: PADL
Description ...: Completa uma string com espaços NO COMEÇO até uma determinada quantidade
Example .......: PADL("ABCDE", 10) ; retorna " ABCDE"
PADL("ABCDE", 3) ; retorna "ABCDE"
Name ..........: PADC
Description ...: Completa uma string com espaços NO COMEÇO e NO FINAL até uma determinada quantidade centralizando o texto dentro da string
Example .......: PADC("ABCDE", 11) ; retorna " ABCDE "
PADC("ABCDE", 3) ; retorna "ABCDE"
Name ..........: FATORIAL
Description ...: Fatorial de um número
Example .......: FATORIAL(5) ; retorna 120
Name ..........: STRZERO
Description ...: Completa com zeros à esquerda dos números
Example .......: STRZERO(123, 5) ; retorna "00123"
STRZERO(123, 7, 2) ; retorna "00123.00"
Name ..........: NUMBERFORMAT
Description ...: Formata um nro com separador de milhares e decimais
Example .......: NUMBERFORMAT(12345, 0) ; retorna "12.345"
NUMBERFORMAT(12345, 2) ; retorna "12.345,00"
NUMBERFORMAT(-12345, 0) ; retorna "-12.345"
NUMBERFORMAT(-12345, 2) ; retorna "-12.345,00"
NUMBERFORMAT(12345, 0, 15) ; retorna " 12.345"
NUMBERFORMAT(12345, 2, 15) ; retorna " 12.345,00"
NUMBERFORMAT(-12345, 0, 15, True) ; retorna " (12.345)"
NUMBERFORMAT(-12345, 2, 15, True) ; retorna " (12.345,00)"
Name ..........: MONEYFORMAT
Description ...: Formata um nro com separador de milhares e decimais e inclue o símbolo da moeda no começo, R$ para Brasil
Example .......: MONEYFORMAT(12345, 0) ; retorna "R$ 12.345"
MONEYFORMAT(12345, 2) ; retorna "R$ 12.345,00"
MONEYFORMAT(-12345, 0) ; retorna "R$ -12.345"
MONEYFORMAT(-12345, 2) ; retorna "R$ -12.345,00"
MONEYFORMAT(12345, 0, 15) ; retorna "R$ 12.345"
MONEYFORMAT(12345, 2, 15) ; retorna "R$ 12.345,00"
MONEYFORMAT(-12345, 0, 15, True) ; retorna "R$ (12.345)"
MONEYFORMAT(-12345, 2, 15, True) ; retorna "R$ (12.345,00)"

 

Name ..........: STRINGDIFFERENCE
Description ...: Mostra a diferença entre duas strings
Example .......: STRINGDIFFERENCE("abc", "abcde") ; return "de"
STRINGDIFFERENCE("123456", "246") ; return "135"
Name ..........: TRUNC
Description ...: Trunca números (corta o nro desprezando as decimais)
Example .......: TRUNC(1.238, 2) ; returns 1.23

 

Framework.au3

  • Like 1

Share this post


Link to post
Share on other sites
Para começar e como exemplo, seguem funções para extrair DIAS, MESES e ANOS de datas para poder convertê-las em datas por extenso!
Assim uma data estilo YYYY/MM/DD será escrita por extenso.
Exemplo: _DT2EXT(_NowCalcDate()), onde _NowCalcDate() seria a data de hoje (14/12/2017) retornará uma string "Quinta, 14 de Dezembro de 2017".
Ou _DT2EXT(_NowCalcDate(), False, 3), onde _NowCalcDate() seria a data de hoje (14/12/2017) retornará uma string "14 de Dez de 2017".
#include <Date.au3>
#include <File.au3>
#include <Array.au3>

; Constantes gerais para localização
Global Const $GnLCID = _WinAPI_GetUserDefaultLCID()
Global Const $GsSep_Data = _WinAPI_GetLocaleInfo($GnLCID, $LOCALE_SDATE)
Global Const $GsMoeda = _WinAPI_GetLocaleInfo($GnLCID, $LOCALE_SCURRENCY)
Global Const $GsSep_Decimal = _WinAPI_GetLocaleInfo($GnLCID, $LOCALE_SDECIMAL)
Global Const $GsSep_Milhar = _WinAPI_GetLocaleInfo($GnLCID, $LOCALE_STHOUSAND)

; #FUNCTION# ====================================================================================================================
; Name ..........: DAY
; Description ...: Dia do mês de uma data específica
; Syntax ........: DAY ($sData_Hora)
; Parameters ....: $sData_Hora - [String] data no formato ddmmyyyy ou yyyymmdd com ou sem separadores
; Return values .: Sucesso     - [Number] Nro contendo o dia
;                  Falha       - [Number] 0 e seta @error e @extended
; Author.........: Manimal (visite Fórum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: DAY(_NowCalcDate()) ; retorna o dia da data de hoje
; ===============================================================================================================================
Func DAY ($sData_Hora)
   Local $aTemp = StringRegExp($sData_Hora, "^(?:(?|(\d{2})\D\d{2}\D\d{4}|\d{4}\D\d{2}\D(\d{2})))(?: \d{2}:\d{2}:\d{2})?$", $STR_REGEXPARRAYMATCH) ; dd*mm*yyyy or yyyy*mm*dd opcional 99:99:99
   If @error Then
      $aTemp = StringRegExp($sData_Hora, "^(\d{2})\d{2}(\d{4})$", $STR_REGEXPARRAYMATCH) ; ddmmyyyy
      If @error Then Return SetError(@error, @extended, 0)
      If $aTemp[1] <= 1231 Then ; yyyymmdd
         $aTemp = StringRegExp($sData_Hora, "^\d{6}(\d{2})$", $STR_REGEXPARRAYMATCH)
         If @error Then Return SetError(@error, @extended, 0)
      EndIf
   EndIf
   Return SetError(0, 0, $aTemp[0])
EndFunc   ;==>DAY

; #FUNCTION# ====================================================================================================================
; Name ..........: DOW
; Description ...: Dia da semana de uma data específica
; Syntax ........: DOW ($sData_Hora)
; Parameters ....: $sData_Hora - [String] data no formato ddmmyyyy ou yyyymmdd com ou sem separadores
; Return values .: Sucesso     - [Number] Nro contendo dia da semana (1 = Dom, 2 = Seg, 3 = Ter, 4 = Qua, 5 = Qui, 6 = Sex, 7 = Sáb)
;                  Falha       - [Number] 0 e seta @error
; Author ........: Manimal (visite Forum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: DOW(_NowCalcDate()) ; retorna o dia da semana de hoje
; ===============================================================================================================================
Func DOW ($sData_Hora)
   Local $nDow = _DateToDayOfWeek(YEAR($sData_Hora), MONTH($sData_Hora), DAY($sData_Hora))
   Return SetError(1, @error, $nDow)
EndFunc   ;==>DOW

; #FUNCTION# ====================================================================================================================
; Name ..........: DOW2EXT
; Description ...: Extenso do dia da semana
; Syntax ........: DOW2EXT ($nDow[, $nTamanho = 50[, $bCapital = True[, $bSufixo = False]]])
; Parameters ....: $nDow     - [Number] Nro contendo dia da semana (1 = Dom, 2 = Seg, 3 = Ter, 4 = Qua, 5 = Qui, 6 = Sex, 7 = Sáb)
;                  $nTamanho - [optional, Number]  Nro com tamanho do retorno. Default is 50.
;                  $bCapital - [optional, Boolean] Se deve capitalizar a primeira letra. Default is True.
;                  $bSufixo  - [optional, Boolean] Se deve elminar o sufixo "-feira". Default is False.
; Return values .: Sucesso   - [String] Dia por extenso
;                  Falha     - [String] "" (vazio) e seta @error
; Author ........: Manimal (visite Forum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: DOWEXT(4)                         ; retorna "Quarta"
;                  DOWEXT(4, 3)                      ; retorna "Qua"
;                  DOWEXT(4, Default, Default, True) ; retorna "Quarta-feira"
;                  DOWEXT(4, Default, False, True)   ; retorna "quarta-feira"
; Remarks .......: Função internacionalizada, deve retornar o nome dia da semana na linguagem instalada padrão do Windows
; ===============================================================================================================================
Func DOW2EXT ($nDow, $nTamanho = 50, $bCapital = True, $bSufixo = False)
   If $nTamanho = Default Then $nTamanho = 50
   If $bCapital = Default Then $bCapital = True
   If $bSufixo = Default Then $bSufixo = False
   Local $sTexto = _DateDayOfWeek($nDow, $DMW_LOCALE_LONGNAME)
   If @error Then Return SetError(1, @error, "")
   If not $bSufixo Then $sTexto = StringRegExpReplace($sTexto, "-feira", "")
   If $bCapital Then $sTexto = StringUpper(StringLeft($sTexto, 1)) & StringTrimLeft($sTexto, 1)
   Return SetError(0, 0, StringLeft($sTexto, $nTamanho))
EndFunc   ;==>DOW2EXT

; #FUNCTION# ====================================================================================================================
; Name ..........: EXT2DOW
; Description ...: Dia da Semana de acordo com o extenso
; Syntax ........: EXT2DOW ($sExtenso)
; Parameters ....: $sExtenso - [String] Texto contendo o dia da semana
; Return values .: Sucesso   - [Number] Nro contendo dia da semana (1 = Dom, 2 = Seg, 3 = Ter, 4 = Qua, 5 = Qui, 6 = Sex, 7 = Sáb)
;                  Falha     - [Number] 0 e seta @error
; Author ........: Manimal (visite Forum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: EXT2DOW ("Quarta")      ;  retorna 4
;                  EXT2DOW ("Dom")         ;  retorna 1
;                  EXT2DOW ("Sexta-feira") ;  retorna 6
; ===============================================================================================================================
Func EXT2DOW ($sExtenso)
   Local $aNomes[0]
   For $nDow = 1 to 7
      _ArrayAdd($aNomes, _DateDayOfWeek($nDow, $DMW_LOCALE_LONGNAME))
   Next
   $nDow = _ArraySearch($aNomes, $sExtenso, 0, 0, 0, 1) ; último parâmetro determina search parcial
   If @error Then Return SetError(1, @error, 0)
   Return SetError(0, 0, $nDow + 1)
EndFunc   ;==>EXT2DOW

; #FUNCTION# ====================================================================================================================
; Name ..........: MONTH
; Description ...: Mês de uma data específica
; Syntax ........: MONTH ($sData_Hora)
; Parameters ....: $sData_Hora - [String] data no formato ddmmyyyy ou yyyymmdd com ou sem separadores
; Return values .: Sucesso     - [Number] Nro contendo o mês
;                  Falha       - [Number] 0 e seta @error e @extended
; Author.........: Manimal (visite Fórum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: MONTH(_NowCalcDate()) ; retorna o mês da data de hoje
; ===============================================================================================================================
Func MONTH ($sData_Hora)
   Local $aTemp = StringRegExp($sData_Hora, "^(?:(?|\d{2}\D(\d{2})\D\d{4}|\d{4}\D(\d{2})\D(\d{2})))(?: \d{2}:\d{2}:\d{2})?$", $STR_REGEXPARRAYMATCH) ; dd*mm*yyyy or yyyy*mm*dd opcional 99:99:99
   If @error Then
      $aTemp = StringRegExp($sData_Hora, "^\d{2}(\d{2})(\d{4})$", $STR_REGEXPARRAYMATCH) ; ddmmyyyy
      If @error Then Return SetError(@error, @extended, 0)
      If $aTemp[1] <= 1231 Then ; yyyymmdd
         $aTemp = StringRegExp($sData_Hora, "^\d{4}(\d{2})\d{2}$", $STR_REGEXPARRAYMATCH)
         If @error Then Return SetError(@error, @extended, 0)
      EndIf
   EndIf
   Return SetError(0, 0, $aTemp[0])
EndFunc   ;==>MONTH

; #FUNCTION# ====================================================================================================================
; Name ..........: MONTH2EXT
; Description ...: Mês por extenso
; Syntax ........: MONTH2EXT ($nMes[, $nTamanho = 50[, $bCapital = True]])
; Parameters ....: $nMes     - [Number] Nro contendo o mês.
;                  $nTamanho - [optional, Number]  Nro com tamanho do retorno. Default is 50.
;                  $bCapital - [optional, Boolean] Se deve capitalizar a primeira letra. Default is True.
; Return values .: Sucesso   - [String] extenso
;                  Falha     - [String] "" (vazio) e seta @error
; Author ........: Manimal (visite Forum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: MONTH2EXT (2) ; retorna Fevereiro
;                  MONTH2EXT (8) ; retorna Agosto
; Remarks .......: Função internacionalizada, deve retornar o nome do mês na linguagem instalada padrão do Windows
; ===============================================================================================================================
Func MONTH2EXT ($nMes, $nTamanho = 50, $bCapital = True)
   If $nTamanho = Default Then $nTamanho = 50
   If $bCapital = Default Then $bCapital = True
   Local $sTexto = _DateToMonth($nMes, $DMW_LOCALE_LONGNAME)
   If @error Then Return SetError(1, @error, "")
   If $bCapital Then $sTexto = StringUpper(StringLeft($sTexto, 1)) & StringTrimLeft($sTexto, 1)
   Return SetError(0, 0, StringLeft($sTexto, $nTamanho))
EndFunc   ;==>MONTH2EXT

; #FUNCTION# ====================================================================================================================
; Name ..........: EXT2MONTH
; Description ...: Mês de acordo com o extenso
; Syntax ........: EXT2MONTH ($sExtenso)
; Parameters ....: $sExtenso - [String] Texto contendo o nome do mês
; Return values .: Sucesso   - [Number] Nro contendo mês
;                  Falha     - [Number] 0 e seta @error
; Author ........: Manimal (visite Forum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: EXT2MONTH ("Março") ;  retorna 3
;                  EXT2MONTH ("Set")   ;  retorna 9
; ===============================================================================================================================
Func EXT2MONTH ($sExtenso)
   Local $aNomes[0]
   For $nMes = 1 to 12
      _ArrayAdd($aNomes, _DateToMonth($nMes, $DMW_LOCALE_LONGNAME))
   Next
   $nMes = _ArraySearch($aNomes, $sExtenso, 0, 0, 0, 1) ; último parâmetro determina search parcial
   If @error Then Return SetError(1, @error, 0)
   Return SetError(0, 0, $nMes + 1)
EndFunc   ;==>EXT2MONTH

; #FUNCTION# ====================================================================================================================
; Name ..........: YEAR
; Description ...: Ano de uma data específica
; Syntax ........: YEAR ($sData_Hora)
; Parameters ....: $sData_Hora - [String] data no formato ddmmyyyy ou yyyymmdd com ou sem separadores
; Return values .: Sucesso     - [Number] Nro contendo o ano
;                  Falha       - [Number] 0 e seta @error e @extended
; Author.........: Manimal (visite Fórum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: YEAR(_NowCalcDate()) ; retorna o ano da data de hoje
; ===============================================================================================================================
Func YEAR ($sData_Hora)
   Local $aTemp = StringRegExp($sData_Hora, "^(?:(?|\d{2}\D\d{2}\D(\d{4})|(\d{4})\D\d{2}\D\d{2}))(?: \d{2}:\d{2}:\d{2})?$", $STR_REGEXPARRAYMATCH) ; dd*mm*yyyy or yyyy*mm*dd opcional 99:99:99
   If @error Then
      $aTemp = StringRegExp($sData_Hora, "^\d{4}(\d{4})$", $STR_REGEXPARRAYMATCH) ; ddmmyyyy
      If @error Then Return SetError(@error, @extended, 0)
      If $aTemp[0] <= 1231 Then ; yyyymmdd
         $aTemp = StringRegExp($sData_Hora, "^(\d{4})\d{4}$", $STR_REGEXPARRAYMATCH)
         If @error Then Return SetError(@error, @extended, 0)
      EndIf
   EndIf
   Return SetError(0, 0, $aTemp[0])
EndFunc   ;==>YEAR

; #FUNCTION# ====================================================================================================================
; Name ..........: DT2EXP
; Description ...: Expande a data para o formato dd/MMM/yyyy (usado em inputs)
; Syntax ........: DT2EXP ($sData_Hora[, $nTamanho = 3[, $bCapital = True]])
; Parameters ....: $sData_Hora - [String] data no formato ddmmyyyy ou yyyymmdd com ou sem separadores
;                  $nTamanho   - [optional, Number]  Nro com tamanho do retorno. Default is 50.
;                  $bCapital   - [optional, Boolean] Se deve capitalizar a primeira letra. Default is True.
; Return values .: Sucesso     - [String] data formatada
;                  Falha       - [String] "" (vazio) e seta @error
; Author ........: Manimal (visite Forum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: DT2EXP(_NowCalcDate()) ; retorna 12/Dez/2017
; ===============================================================================================================================
Func DT2EXP ($sData_Hora, $nTamanho = 3, $bCapital = True)
   Local $sTexto = DAY($sData_Hora) & $GsSep_Data & MONTH2EXT(MONTH($sData_Hora), $nTamanho, $bCapital) & $GsSep_Data & YEAR($sData_Hora)
   If @error Then Return SetError(1, @error, "")
   Local $aTemp = StringRegExp($sData_Hora, " (\d{2}:\d{2}):\d{2}$", $STR_REGEXPARRAYMATCH)
   If not @error Then $sTexto &= " - " & $aTemp[0]
   Return SetError(0, 0, $sTexto)
EndFunc   ;==>DT2EXP

; #FUNCTION# ====================================================================================================================
; Name ..........: DT2EXT
; Description ...: Extenso de uma data
; Syntax ........: DT2EXT ($sData_Hora[, $nTamanho = 50[, $bCapital = True[, $bSufixo = False]]])
; Parameters ....: $sData_Hora - [String] data no formato ddmmyyyy ou yyyymmdd com ou sem separadores
;                  $bDow       - [optional, Boolean] Se deve incluir o dia da semana. Default is True.
;                  $nTamanho   - [optional, Number]  Nro com tamanho do retorno. Default is 50.
;                  $bCapital   - [optional, Boolean] Se deve capitalizar a primeira letra. Default is True.
;                  $bSufixo    - [optional, Boolean] Se deve elminar o sufixo "-feira". Default is False.
; Return values .: Sucesso     - [String] data por extenso
;                  Falha       - [String] "" (vazio) e seta @error
; Author ........: Manimal (visite Forum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: DT2EXT(_NowCalcDate())        ; retorna Terça, 12 de Dezembro de 2017
;                  DT2EXT(_NowCalcDate(), False) ; retorna 12 de Dezembro de 2017
; ===============================================================================================================================
Func DT2EXT ($sData_Hora, $bDow = True, $nTamanho = 50, $bCapital = True, $bSufixo = False)
   Local $sTexto = StringRegExpReplace(DT2EXP($sData_Hora, $nTamanho, $bCapital), $GsSep_Data, " de ")
   If @error Then Return SetError(1, @error, "")
   If $bDow Then $sTexto = DOW2EXT(DOW($sData_Hora), $nTamanho, $bCapital, $bSufixo) & ", " & $sTexto
   Return SetError(0, 0, $sTexto)
EndFunc   ;==>DT2EXT

; #FUNCTION# ====================================================================================================================
; Name ..........: VIRA_DATA
; Description ...: Inverte o formato de data de ddmmyyyy para yyymmdd ou vice-versa com ou sem separadores
; Syntax ........: VIRA_DATA ($sData_Hora)
; Parameters ....: $sData_Hora - [String] data no formato ddmmyyyy ou yyyymmdd com ou sem separadores
; Return values .: Sucesso     - [String] data invertida
;                  Falha       - [String] "" e seta @error e @extended
; Author ........: Manimal (visite Forum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: VIRA_DATA("25/06/2017") ; retorna 2017/06/25
; Remarks .......: Só funciona com data. Se tiver hora junto dá erro e retorna "" (vazio)
; ===============================================================================================================================
Func VIRA_DATA ($sData_Hora)
   Local $aTemp = StringRegExp($sData_Hora, "(?|^(\d{2})(\D)(\d{2})(\D)(\d{4})$|^(\d{4})(\D)(\d{2})(\D)(\d{2})$)", $STR_REGEXPARRAYMATCH) ; dd*mm*yyyy or yyyy*mm*dd
   If not @error Then Return SetError(0, 0, $aTemp[4] & $aTemp[1] & $aTemp[2] & $aTemp[3] & $aTemp[0])
   $aTemp = StringRegExp($sData_Hora, "^(\d{2})(\d{2})(\d{4})$", $STR_REGEXPARRAYMATCH) ; ddmmyyyy
   If @error Then Return SetError(@error, @extended, "")
   If $aTemp[2] <= 1231 Then ; yyyymmdd
      $aTemp = StringRegExp($sData_Hora, "^(\d{4})(\d{2})(\d{2})$", $STR_REGEXPARRAYMATCH)
      If @error Then Return SetError(@error, @extended, "")
   EndIf
   Return SetError(0, 0, $aTemp[2] & $aTemp[1] & $aTemp[0])
EndFunc   ;==>VIRA_DATA

 

  • Like 1

Share this post


Link to post
Share on other sites

Dando sequencia à biblioteca, mais algumas funções, agora sobre strings!

 

As funções abaixo já estão integradas no Framewrok do primeiro post.

 

Vamos lá pessoa, auxiliem, contribuam, comentem pelo menos se gostaram ou não, se tem alguma dúvida, como funciona uma função e assim por diante...

; #FUNCTION# ====================================================================================================================
; Name ..........: SPACE
; Description ...: Retorna string com uma quantidade determinada de espaços
; Syntax ........: SPACE ($nTamanho)
; Parameters ....: $nTamanho - [Number] Quantidade de espaços
; Return values .: Sucesso   - [String] String de espaços
;                  Falha     - seta @error
; Author ........: Manimal (visite Forum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: SPACE(30)
; ===============================================================================================================================
Func SPACE ($nTamanho)
    Local $sTexto = _StringRepeat(" ", $nTamanho)
   Return SetError(1, @error, $sTexto)
EndFunc   ;==>SPACE

; #FUNCTION# ====================================================================================================================
; Name ..........: LIMPA_ESPACO_DUPLO
; Description ...: Elimina os espaços duplos dentro de uma string
; Syntax ........: LIMPA_ESPACO_DUPLO ($sTexto)
; Parameters ....: $sTexto - [String] Texto para ser limpo
; Return values .: Sucesso - [String] Texto com os espaços duplos removidos
;                  Falha   - seta @error
; Author ........: Manimal (visite Forum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: LIMPA_ESPACO_DUPLO("   Este   é um   exemplo   ") ; retorna " Este é um exemplo "
; Remarks .......: Elimina APENAS os espaços DUPLOS, TRIPLOS, etc. Se quiser limpar os espaços antes ou depois usar LTRIM, RTRIM ou ALLTRIM
; ===============================================================================================================================
Func LIMPA_ESPACO_DUPLO ($sTexto)
   $sTexto = StringStripWS($sTexto, $STR_STRIPSPACES)
   Return SetError(1, @error, $sTexto)
EndFunc   ;==>LIMPA_ESPACO_DUPLO

; #FUNCTION# ====================================================================================================================
; Name ..........: LTRIM
; Description ...: Elimina os espaços ANTES do texto, pode escolher qual caracter será limpo
; Syntax ........: LTRIM ($sTexto[, $sChar = " "])
; Parameters ....: $sTexto - [String] Texto a ser limpo
;                  $sChar  - [optional, String] Qual caracter que será limpo. Default is " ".
; Return values .: Sucesso - [String] Texto sem espaços no começo (à esquerda)
;                  Falha   - seta @error e @extended
; Author ........: Manimal (visite Forum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: LTRIM("   Este   é um   exemplo   ") ; retorna "Este   é um   exemplo   "
; ===============================================================================================================================
Func LTRIM ($sTexto, $sChar = " ")
    If $sChar = Default Then $sChar = " "
    If $sChar = " " Then Return SetError(0, 0, StringStripWS($sTexto, $STR_STRIPLEADING))
   $sTexto = StringRegExpReplace($sTexto, "^" & $sChar & "*", "")
   Return SetError(@error, @extended, $sTexto)
EndFunc   ;==>LTRIM

; #FUNCTION# ====================================================================================================================
; Name ..........: RTRIM
; Description ...: Elimina os espaços DEPOIS do texto, pode escolher qual caracter será limpo
; Syntax ........: RTRIM ($sTexto[, $sChar = " "])
; Parameters ....: $sTexto - [String] Texto a ser limpo
;                  $sChar  - [optional, String] Qual caracter que será limpo. Default is " ".
; Return values .: Sucesso - [String] Texto sem espaços no final (à direita)
;                  Falha   - seta @error e @extended
; Author ........: Manimal (visite Forum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: RTRIM("   Este   é um   exemplo   ") ; retorna "   Este   é um   exemplo"
; ===============================================================================================================================
Func RTRIM ($sTexto, $sChar = " ")
    If $sChar = Default Then $sChar = " "
    If $sChar = " " Then Return SetError(0, 0, StringStripWS($sTexto, $STR_STRIPTRAILING))
   $sTexto = StringRegExpReplace($sTexto, $sChar & "*$", "")
   Return SetError(@error, @extended, $sTexto)
EndFunc   ;==>RTRIM

; #FUNCTION# ====================================================================================================================
; Name ..........: ALLTRIM
; Description ...: Elimina os espaços ANTES e DEPOIS do texto, pode escolher qual caracter será limpo
; Syntax ........: ALLTRIM ($sTexto[, $sChar = " "])
; Parameters ....: $sTexto - [String] Texto a ser limpo
;                  $sChar  - [optional, String] Qual caracter que será limpo. Default is " ".
; Return values .: Sucesso - [String] Texto sem espaços no começo E final
; Author ........: Manimal (visite Forum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: ALLTRIM("   Este   é um   exemplo   ") ; retorna "Este   é um   exemplo"
; ===============================================================================================================================
Func ALLTRIM ($sTexto, $sChar = " ")
    If $sChar = Default Then $sChar = " "
    If $sChar = " " Then Return SetError(0, 0, StringStripWS($sTexto, $STR_STRIPLEADING + $STR_STRIPTRAILING))
    Return SetError(0, 0, LTRIM(RTRIM($sTexto, $sChar)))
EndFunc   ;==>ALLTRIM

; #FUNCTION# ====================================================================================================================
; Name ..........: PADR
; Description ...: Preenche uma string com espaços NO FINAL até uma determinada quantidade
; Syntax ........: PADR ($sTexto, $nTamanho[, $sCaracter = " "])
; Parameters ....: $sTexto    - [String] Texto a ser preenchido
;                  $nTamanho  - [Number] Tamanho total da string
;                  $sCaracter - [optional, String] Caracter a preencher. Default is " ".
; Return values .: Sucesso    - [String] Texto preenchido
; Author ........: Manimal (visite Forum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: PADR("ABCDE", 10) ; retorna "ABCDE     "
; Remarks .......: Tamanho pode encolher a string se for menor do que o tamanho original
; ===============================================================================================================================
Func PADR ($sTexto, $nTamanho, $sCaracter = " ")
    If $sCaracter = Default Then $sCaracter = " "
    Return SetError(0, 0, StringLeft($sTexto & _StringRepeat($sCaracter, $nTamanho), $nTamanho))
EndFunc   ;==>PADR

; #FUNCTION# ====================================================================================================================
; Name ..........: PADL
; Description ...: Preenche uma string com espaços NO COMEÇO até uma determinada quantidade
; Syntax ........: PADL ($sTexto, $nTamanho[, $sCaracter = " "])
; Parameters ....: $sTexto    - [String] Texto a ser preenchido
;                  $nTamanho  - [Number] Tamanho total da string
;                  $sCaracter - [optional, String] Caracter a preencher. Default is " ".
; Return values .: Sucesso    - [String] Texto preenchido
; Author ........: Manimal (visite Forum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: PADL("ABCDE", 10) ; retorna "     ABCDE"
; Remarks .......: Tamanho pode encolher a string se for menor do que o tamanho original
; ===============================================================================================================================
Func PADL ($sTexto, $nTamanho, $sCaracter = " ")
    If $sCaracter = Default Then $sCaracter = " "
    Return SetError(0, 0, StringRight(_StringRepeat($sCaracter, $nTamanho) & $sTexto, $nTamanho))
EndFunc   ;==>PADL

; #FUNCTION# ====================================================================================================================
; Name ..........: PADC
; Description ...: Preenche uma string com espaços NO COMEÇO e NO FINAL até uma determinada quantidade centralizando o texto dentro da string
; Syntax ........: PADR ($sTexto, $nTamanho[, $sCaracter = " "])
; Parameters ....: $sTexto    - [String] Texto a ser preenchido
;                  $nTamanho  - [Number] Tamanho total da string
;                  $sCaracter - [optional, String] Caracter a preencher. Default is " ".
; Return values .: Sucesso    - [String] Texto "centralizado"
; Author ........: Manimal (visite Forum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: PADR("ABCD", 10) ; retorna "   ABCD   "
; Remarks .......: Tamanho pode encolher a string se for menor do que o tamanho original
; ===============================================================================================================================
Func PADC ($sTexto, $nTamanho, $sCaracter = " ")
    If $sCaracter = Default Then $sCaracter = " "
   If StringLen($sTexto) >= $nTamanho Then Return SetError(0, 0, $sTexto)
   Local $Extra = Int(($nTamanho - StringLen($sTexto)) / 2)
    Return SetError(0, 0, StringLeft(_StringRepeat($sCaracter, $Extra) & $sTexto & _StringRepeat($sCaracter, $nTamanho), $nTamanho))
EndFunc   ;==>PADC

Acorda povo! :600866:

  • Like 1

Share this post


Link to post
Share on other sites

Por exemplo:

 

A função OUTPUT é uma função que utilizo sempre para escrever alguma mensagem ou debugar alguma variável, acompanhar o código, etc.

 

Quando em desenvolvimento e usando o F5 para rodar o script, a OUTPUT faz com que as mensagens sejam escritas usando o comando ConsoleWrite, mas quando o programa está compilado (.EXE), estas mesmas mensagens são escritas usando o MSGBOX. Assim não é necessário ficar trocando os comandos para teste ou debug.

 

Outro detalhe é o fato de usar a variável $GbDebug_Mode para identificar se está ou não em modo de desenvolvimento.

 

Esta variável facilita pois certas mensagens ou comandos só devem ser executados durante a fase de programação e volta e meia "esquecemos" de retirar as mesmas antes de compilar final, daí as mensagens de teste aparecem no produto final :mad2:

 

Usando a variável $GbDebug_Mode, ajuda bastante!

 

Exemplo:

For $nLoop = 1 to 10
   If $GbDebug_Mode Then OutPut("[" & $nLoop & "]")
   Sleep(100)
Next

Durante o F5, mostra a mensagem do nro do loop. Quando compilado, não mostra nada! :o

  • Like 1

Share this post


Link to post
Share on other sites

@Manimal,

 

Gostei do código, segue as boas práticas.

 

Se me permite sugerir, compartilhe o código no Github, acredito que fica mais fácil de administrar as versões e os builds de cada versão.

  • Like 1

Share this post


Link to post
Share on other sites

Olá Luigi.

 

Com certeza que usar o Github facilitaria as coisas, mas acho que sairia do escopo do fórum não?

 

Nem todos aqui tem acesso ou sabem (ou saberiam) usar o GitHub, só por isso...

  • Like 1

Share this post


Link to post
Share on other sites

@Manimal, sobre o uso do github, acredito que:

 

* é uma nova forma de compartilhar código (não sejamos "puristas" em achar que somente um fórum, no caso o nosso é a única forma de compartilhar código)

* uma hora talvez esse forum acabe, e com ele todo o conhecimento, e talvez o github esteja lá (até a Microsoft esta lá)

* sua ideia é ótima, e merece visibilidade universal, acho que um forum limita um pouco essa visibilidade, afinal de contas, quem quiser fazer o download e não dar feedback algum, vai fazer isso no forum, no github, em qualquer lugar... quem quiser acrescentar, vai fazer o que for preciso e irá somar

*quanto usar o github ser mais complicado, sim, parece, até eu tenho um pouco de dificuldade em entender o conceito de brunchs, mas as grandes ideias nas grandes empresas utilizam esta receita, temos que estudar e assimilar

* eu não sou fã de código compartilhado em mediafire ou aquelas paginas que fazem voce esperar 1 minuto e ficam te mostrando propaganda enquanto vc espera, da uma sensacao ruim

 

Mas, é apenas a minha forma de ver, independente do formato que vocé escolher, eu vou ajudar no que for possivel.

  • Like 2

Share this post


Link to post
Share on other sites

@Luigi.

 

Com certeza que não sou "purista", nem tem como ser atualmente... :lol:

 

Vou abrir um repositório no GitHub e depois deixo o link aqui. Obrigado pela sugestão.

 

@mutleey

 

Qualquer ajuda é bem-vinda, qualquer dúvida, comentário ou crítica construtiva ajuda no processo. Só que precisamos que mais pessoas façam parte...

 

@todos

 

Sendo assim, estou trabalhando em mais algumas funções de números e preciso que alguém se comprometa a desenvolver uma rotina de número por extenso.

 

Alguém se habilita? Não existe errado aqui galera... Só ideias e melhorias...

Share this post


Link to post
Share on other sites

Ok, agora segue algumas funções de números:

; #FUNCTION# ====================================================================================================================
; Name ..........: FATORIAL
; Description ...: Fatorial de um número
; Syntax ........: FATORIAL ($nNumero)
; Parameters ....: $nNumero - [Number] Nro para calcular o fatorial
; Return values .: Sucesso  - [Number] Fatorial do nro
;                  Falha    - [Number] 0 e seta @error
; Author ........: Manimal (visite Forum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: FATORIAL(5) ; retorna 120
; ===============================================================================================================================
Func FATORIAL ($nNumero)
   If $nNumero <= 0 Then Return SetError(1, 0, 0)
   If $nNumero = 1 Then Return SetError(0, 0, 1)
   Return SetError(0, 0, $nNumero * FATORIAL($nNumero - 1))
EndFunc   ;==>FATORIAL

; #FUNCTION# ====================================================================================================================
; Name ..........: STRZERO
; Description ...: Completa com zeros à esquerda dos números
; Syntax ........: STRZERO ($nNumero, $nDigitos[, $nDecimais = 0])
; Parameters ....: $nNumero   - [Number] Nro a ser formatado
;                  $nDigitos  - [Number] Quantidade de dígitos
;                  $nDecimais - [optional,Number] Quantidade de decimais. Default is 0.
; Return values .: Sucesso    - [String] Nro formatado
; Author ........: Manimal (visite Forum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: STRZERO(123, 5)    ; retorna "00123"
;                  STRZERO(123, 7, 2) ; retorna "00123.00"
; Remarks .......: Quando informa as decimais o tamanho aumenta em 1 caracter por causa do ponto decimal
; ===============================================================================================================================
Func STRZERO ($nNumero, $nDigitos, $nDecimais = 0)
   If $nDecimais = Default Then $nDecimais = 0
   If $nDecimais > 0 Then $nDigitos += 1
   Return SetError(0, 0, StringFormat("%0" & $nDigitos & "." & $nDecimais & "f", $nNumero))
EndFunc   ;==>STRZERO

; #FUNCTION# ====================================================================================================================
; Name ..........: NUMBERFORMAT
; Description ...: Formata um nro com separador de milhares e decimais
; Syntax ........: NUMBERFORMAT($nNumero[, $nDecimais = 2[, $bContabil = False[, $sSep_Decimal = $GsSep_Decimal[, $sSep_Milhar = $GsSep_Milhar]]]])
; Parameters ....: $nNumero      - [Number] Nro a ser formatado
;                  $nDecimais    - [optional, Number] Quantidade de decimais. Default is 2.
;                  $nTamanho     - [optional, Number] Tamanho da formatação. Default is 0 = tamanho que der
;                  $bContabil    - [optional, Boolean] Se o valor NEGATIVO deve aparecer entre parentesis (padrão contábil)
;                  $sSep_Decimal - [optional, String] Separador de decimais. Default is "," para Brasil
;                  $sSep_Milhar  - [optional, String] Separador de milhar. Default is "." para Brasil
; Return values .: Sucesso       - [String] Nro formatado
; Author ........: Manimal (visite Forum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: NUMBERFORMAT(12345, 0)            ; retorna "12.345"
;                  NUMBERFORMAT(12345, 2)            ; retorna "12.345,00"
;                  NUMBERFORMAT(-12345, 0)           ; retorna "-12.345"
;                  NUMBERFORMAT(-12345, 2)           ; retorna "-12.345,00"
;                  NUMBERFORMAT(12345, 0, 15)        ; retorna "         12.345"
;                  NUMBERFORMAT(12345, 2, 15)        ; retorna "      12.345,00"
;                  NUMBERFORMAT(-12345, 0, 15, True) ; retorna "       (12.345)"
;                  NUMBERFORMAT(-12345, 2, 15, True) ; retorna "    (12.345,00)"
; Remarks .......: Se for informado um tamanho E não couber o nro, retorna o nro independente do tamanho
;                  NUMBERFORMAT(12345, 2, 5)         ; retorna "12.345,00"
; ===============================================================================================================================
Func NUMBERFORMAT($nNumero, $nDecimais = 2, $nTamanho = 0, $bContabil = False, $sSep_Decimal = $GsSep_Decimal, $sSep_Milhar = $GsSep_Milhar)
   If $nDecimais = Default Then $nDecimais = 2
   If $bContabil = Default Then $bContabil = False
   If $sSep_Decimal = Default Then $sSep_Decimal = $GsSep_Decimal
   If $sSep_Milhar = Default Then $sSep_Milhar = $GsSep_Milhar
   Local $sNumero = _WinAPI_GetNumberFormat($GnLCID, $nNumero, _WinAPI_CreateNumberFormatInfo($nDecimais, 0, 3, $sSep_Decimal, $sSep_Milhar, ($bContabil) ? 0 : 1))
   If $nTamanho > 0 and $nTamanho > StringLen($sNumero) Then $sNumero = PADL($sNumero, $nTamanho)
   Return SetError(0, 0, $sNumero)
EndFunc   ;==>NUMBERFORMAT

; #FUNCTION# ====================================================================================================================
; Name ..........: MONEYFORMAT
; Description ...: Formata um nro com separador de milhares e decimais e inclue o símbolo da moeda no começo, R$ para Brasil
; Syntax ........: MONEYFORMAT($nNumero[, $nDecimais = 2[, $bContabil = False[, $sSep_Decimal = $GsSep_Decimal[, $sSep_Milhar = $GsSep_Milhar]]]])
; Parameters ....: $nNumero      - [Number] Nro a ser formatado
;                  $nDecimais    - [optional, Number]  Quantidade de decimais. Default is 2.
;                  $nTamanho     - [optional, Number]  Tamanho da formatação. Default is 0 = tamanho que der
;                  $bContabil    - [optional, Boolean] Se o valor NEGATIVO deve aparecer entre parentesis (padrão contábil)
;                  $sSep_Decimal - [optional, String]  Separador de decimais. Default is "," para Brasil
;                  $sSep_Milhar  - [optional, String]  Separador de milhar. Default is "." para Brasil
; Return values .: Sucesso       - [String] Nro formatado
; Author ........: Manimal (visite Forum AutoIT Brasil - http://forum.autoitbrasil.com/)
; Example .......: MONEYFORMAT(12345, 0)            ; retorna "R$ 12.345"
;                  MONEYFORMAT(12345, 2)            ; retorna "R$ 12.345,00"
;                  MONEYFORMAT(-12345, 0)           ; retorna "R$ -12.345"
;                  MONEYFORMAT(-12345, 2)           ; retorna "R$ -12.345,00"
;                  MONEYFORMAT(12345, 0, 15)        ; retorna "R$       12.345"
;                  MONEYFORMAT(12345, 2, 15)        ; retorna "R$    12.345,00"
;                  MONEYFORMAT(-12345, 0, 15, True) ; retorna "R$     (12.345)"
;                  MONEYFORMAT(-12345, 2, 15, True) ; retorna "R$  (12.345,00)"
; Remarks .......: Se for informado um tamanho E não couber o nro mais o símbolo da moeda, retorna a moeda com o nro independente do tamanho
;                  MONEYFORMAT(12345, 2, 5)         ; retorna "R$ 12.345,00"
; ===============================================================================================================================
Func MONEYFORMAT($nNumero, $nDecimais = 2, $nTamanho = 0, $bContabil = False, $sSep_Decimal = $GsSep_Decimal, $sSep_Milhar = $GsSep_Milhar)
   Local $sNumero = NUMBERFORMAT($nNumero, $nDecimais, $nTamanho, $bContabil, $sSep_Decimal, $sSep_Milhar)
   If $nTamanho = 0 Then Return SetError(0, 0, $GsMoeda & " " & $sNumero)
   If not StringRegExp($sNumero, "^ {" & StringLen($GsMoeda) + 1 & "}") Then Return SetError(0, 1, $GsMoeda & " " & $sNumero)
   Return SetError(0, 0, StringRegExpReplace($sNumero, "^ {" & StringLen($GsMoeda) + 1 & "}(.+)$", $GsMoeda & " $1"))
EndFunc   ;==>MONEYFORMAT

Share this post


Link to post
Share on other sites

@Luigi.

 

Boa! Minha função anterior era na mesma linha, usando Regex também.

 

Daí achei essa função interna do Windows que traz inclusive os separadores de milhar e de decimal de acordo com a linguagem do Windows. Achei mais interessante.

 

Mas muito bom. Show de bola!

Share this post


Link to post
Share on other sites

Olá pessoal.

 

Seguindo com as atualizações (v1.03) e novas funções (StringDifference e Trunc).

 

StringDifference serve para mostrar a diferença entre 2 strings. O normal é usar os operadores = ou <> para saber se as strings são iguais ou não. Com esta, podemos ver também QUAL a diferença.

 

  • STRINGDIFFERENCE("abc", "abcde") ; return "de"
  • STRINGDIFFERENCE("123456", "246") ; return "135"
  • STRINGDIFFERENCE("Segunda-feira", "Segunda") ; return "-feira"

 

Trunc é uma função normal para trabalhar com números. Não tinha percebido que não existe naturalmente no AutoIt. Existem INT, ROUND, FLOOR e CEILING, todas com funções diferentes da TRUNC. Seguem as diferenças entre as demais citadas.

 

  • TRUNC(1.238, 2) ; return 1.23
  • INT(1.238) ; return 1
  • FLOOR(1.238) ; return 1
  • CEILING(1.238) ; return 2
  • ROUND(1.238, 2) ; return 1.24
  • ROUND(1.238, 1) ; return 1.2
  • ROUND(1.238, 0) ; return 1

Arquivo principal no 1o post atualizado.

  • Like 1

Share this post


Link to post
Share on other sites

Gostaria de saber quais funções podem ser adicionadas a essa biblioteca

Como trabalho em uma empresa multinacional e utilizamos muito Autoit aqui, desde 2008 se não me falha a memória, acabo que tendo que criar varias UDFs para atender a demandas específicas.

Caso a biblioteca for de uso geral para area comercial, gostaria de implementar algumas funções que utilizo ou ja utilizei em ambito corporativo. 

Exemplo: Extrair informações, gerenciar objetos do Active Directory em massa
Efetuar login na aplicação utilizando credenciais do Active Directory ou local
Instalar softwares de forma automatizada, utilizando interface própria ou em modo silent
Gerenciar infomações de banco de dados
Aplicar correções do Windows
Gerenciar informações do Registro
e etc.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×