Na mensagem anterior eu fiz uma sugestão para tentar melhorar o testa_data, que
faz parte do zztool.
Constatei depois, que se acaso o ano tiver menos de 4 dígitos, o comando date
pode interpretar a data no formato "mm/dd/yyyy" (padrão americano)
Então para evitar essa interpretação envio um complemento:
Antes do comando date coloque esse trecho:
yyyy=$(echo "2*10^(3-${#yyyy})"|bc)$yyyy
yyyy=${yyyy#0}
Isso evita ano com menos de 4 dígitos.
Lamento, mas percebi isso depois
Como contribuição deixo aqui um outra sugestão:
O testa_data, que é uma opção do zztool, verifica com uso do grep o seguinte
padrão [0123][0-9]/[01][0-9]/[0-9]{1,}
Mas isso permite algumas datas inválidas como 35/18/2
E como é possível ocorrer erros de digitação, ou usuários "espertos" demais,
acredito que fecho algumas brechas
Então eu sugiro essa alteração:
Onde está:
echo "$2" | grep "^[0123][0-9]/[01][0-9]/[0-9]\{1,\}" >/dev/null
Substituir por:
local yyyy mm dd
yyyy=${2##*/}
mm=${2#*/}
mm=${mm%/*}
dd=${2%%/*}
date -d "${yyyy}/${mm}/${dd}" 2>1 >/dev/null
Espero que ajude.
Oi Itamar,
Muito obrigado pelas contribuições!
No momento estou sem tempo de mexer nas ZZ, mas quero fazer uma grande
reforma nelas para que fique mais fácil contribuições como estas tuas,
nas funções que não são extras.
Ainda não tenho previsão para que isso aconteça, mas quando for, eu aviso, ok?
Desculpe não poder fazer nada no momento, mas prefiro esperar por um
tempo de qualidade para poder mexer nas ZZ com calma.
Abraço
2009/9/27 itamarnet <itamarnet@...>:
> Senhores acabo de entrar no grupo e tenho alguma sugestões: Não sei se seria o
caso de colocar como extra, pois na verdade alteram funções que já existem. Eu
não encontrei nada similar na breve busca que fiz, então ouso postar para
apreciação:
>
> zzseq:
> Neste caso eu coloquei uma forma de aceitar o terceiro parâmetro que estava no
"TODO", e inclui por conta possibilidade de haver prefixos e sufixos a
numeração gerada. Não sei se é a solução mais elegante, mas está em aberto para
melhorias também
> # ----------------------------------------------------------------------------
> # Mostra uma seqüência numérica, um número por linha.
> # Obs.: Emulação do comando seq, presente no Linux, com algumas melhorias
adicionais.
> # Uso: zzseq [número-inicial] número-final [step [prefixo [sufixo]]]
> # Ex.: zzseq 5
> # zzseq 10 2 5 "Numero " ")"
> #
> # ----------------------------------------------------------------------------
> # TODO aceitar terceiro parâmetro, igual no Linux: 10 -2 0 (início step fim)
> zzseq ()
> {
> zzzz -h seq $1 && return
>
> local operacao='+'
> local inicio=1
> local fim=$1
> local step=1
> local saida prefixo sufixo
>
> # Verificação dos parâmetros
> [ "$1" ] || { zztool uso seq; return; }
>
> # Se houver dois números, vai "do primeiro ao segundo"
> [ "$2" ] && inicio=$1 fim=$2
>
> # Se houver três números, vai "do primeiro ao segundo em saltos"
> [ "$3" ] && inicio=$1 fim=$3 step=$2
>
> # Se houver um quarto arqumento é tratado como prefixo
> [ "$4" ] && prefixo="$4"
>
> # Se houver um quito arqumento é tratado como sufixo
> [ "$5" ] && sufixo="$5"
>
> # Verificações básicas
> if ! (zztool testa_numero_sinal "$inicio" &&
> zztool testa_numero_sinal "$fim" &&
> zztool testa_numero_sinal "$step")
> then
> zztool uso seq
> return
> fi
>
> # Se o primeiro for maior que o segundo, a contagem é regressiva
> if ([ $inicio -gt $fim ])
> then
> for ((saida=$inicio;saida>=$fim;saida-=$step))
> do
> echo ${prefixo}${saida}${sufixo}
> done
> else
> for ((saida=$inicio;saida<=$fim;saida+=$step))
> do
> echo ${prefixo}${saida}${sufixo}
> done
> fi
> }
>
>
>
> ####################################################################
>
> zzloteria:
> Neste caso alterei um pouco para corrigir um problema com a duplasena, mas que
parece temporário.
> Inclui consulta para a federal e timemania
> E também a possibilidade de pesquisar por concursos antigos.
> # ----------------------------------------------------------------------------
> # Consulta os resultados da quina, megasena, duplasena, lotomania, lotofácil,
federal e timemania.
> # Obs.: Se o segundo argumento for um numero, perquisa o resultado filtrando o
concurso
> # Se nenhum argumento for passado, todas as loterias são mostradas.
> # Uso: zzloteria [quina | megasena | duplasena | lotomania | lotofacil |
federal | timemania] concurso]
> # Ex.: zzloteria
> # zzloteria quina megasena
> # ----------------------------------------------------------------------------
> zzloteria ()
> {
> zzzz -h loteria $1 && return
>
> local dump numero_concurso data resultado acumulado tipo
> local resultado_val resultado_num num_con sufixo
> local url='http://www1.caixa.gov.br/loterias/loterias'
> local tipos='quina megasena duplasena lotomania lotofacil federal
timemania'
>
> # Caso o segundo argumento seja um numero, filtra pelo concurso
equivalente
> zztool testa_numero "$2"
> if ([ $? -eq 0 ])
> then
> num_con="?submeteu=sim&opcao=concurso&txtConcurso=$2"
> tipos="$1"
> else
> # Caso contrario mostra todos os tipos, ou alguns selecionados
> unset num_con
> [ "$1" ] && tipos="$*"
> fi
>
> # Para cada tipo de loteria...
> for tipo in $tipos
> do
> zztool eco $tipo:
>
> # Há várias pegadinhas neste código. Alguns detalhes:
> # - A variável $dump é um cache local do resultado
> # - É usado ZZWWWDUMP+filtros (e não ZZWWWHTML) para forçar a
saída em UTF-8
> # - O resultado é deixado como uma única longa linha
> # - O resultado são vários campos separados por pipe |
> # - Cada tipo de loteria traz os dados em posições (e formatos)
diferentes :/
>
> case "$tipo" in
> duplasena)
> sufixo="_pesquisa_new.asp"
> ;;
> *)
> sufixo="_pesquisa.asp"
> ;;
> esac
>
>
>
> dump=$($ZZWWWDUMP "$url/$tipo/${tipo}${sufixo}$num_con" |
> tr -d \\n |
> sed 's/ */ /g ; s/^ //')
>
> # O número do concurso é sempre o primeiro campo
> numero_concurso=$(echo "$dump" | cut -d '|' -f 1)
>
> case "$tipo" in
> lotomania)
> # O resultado vem separado em campos distintos.
Exemplo:
> #
|01|04|06|12|21|25|27|36|42|44|50|51|53|59|68|69|74|78|87|91|91|
>
> data=$( echo "$dump" | cut -d '|' -f 42)
> acumulado=$(echo "$dump" | cut -d '|' -f 71,72)
> resultado=$(echo "$dump" | cut -d '|' -f 7-26 |
> sed 's/|/@/10 ; s/|/ - /g' |
> tr @ '\n'
> )
> ;;
> lotofacil)
> # O resultado vem separado em campos distintos.
Exemplo:
> #
|01|04|07|08|09|10|12|14|15|16|21|22|23|24|25|
>
> data=$( echo "$dump" | cut -d '|' -f 37)
> acumulado=$(echo "$dump" | cut -d '|' -f 56,57)
> resultado=$(echo "$dump" | cut -d '|' -f 4-18 |
> sed 's/|/@/10 ; s/|/@/5 ; s/|/ - /g' |
> tr @ '\n'
> )
> ;;
> megasena)
> # O resultado vem separado por asteriscos.
Exemplo:
> # | * 16 * 58 * 43 * 37 * 52 * 59 |
>
> data=$( echo "$dump" | cut -d '|' -f 12)
> acumulado=$(echo "$dump" | cut -d '|' -f 22,23)
> resultado=$(echo "$dump" | cut -d '|' -f 21 |
> tr '*' '-' |
> tr '|' '\n' |
> sed 's/^ - //'
> )
> ;;
> duplasena)
> # O resultado vem separado por asteriscos,
tendo dois grupos
> # numéricos: o primeiro e segundo resultado.
Exemplo:
> # | * 05 * 07 * 09 * 21 * 38 * 40 | * 05 * 17 *
20 * 22 * 31 * 45 |
>
> data=$( echo "$dump" | cut -d '|' -f 18)
> acumulado=$(echo "$dump" | cut -d '|' -f 23,24)
> resultado=$(echo "$dump" | cut -d '|' -f 4,5 |
> tr '*' '-' |
> tr '|' '\n' |
> sed 's/^ - //'
> )
> ;;
> quina)
> # O resultado vem duplicado em um único campo,
sendo a segunda
> # parte o resultado ordenado numericamente.
Exemplo:
> # | * 69 * 42 * 13 * 56 * 07 * 07 * 13 * 42 *
56 * 69 |
>
> data=$( echo "$dump" | cut -d '|' -f 17)
> acumulado=$(echo "$dump" | cut -d '|' -f 18,19)
> resultado=$(echo "$dump" | cut -d '|' -f 15 |
> sed 's/\* /|/6' |
> tr '*' '-' |
> tr '|' '\n' |
> sed 's/^ - // ; 1d'
> )
> ;;
> federal)
> data=$( echo "$dump" | cut -d '|' -f 17)
> numero_concurso=$(echo "$dump" | cut -d '|' -f
3)
> unset acumulado
> resultado_num=$(echo "$dump" | cut -d '|' -f
7,9,11,13,15 |
> tr '*' '-' |
> tr '|' '\n' |
> sed 's/^ - //'
> )
> resultado_val=$(echo "$dump" | cut -d '|' -f
8,10,12,14,16 |
> tr '*' '-' |
> tr '|' '\n' |
> sed 's/^ - //'
> )
>
> resultado=$(paste <(zzseq 1 1 5 "" "º Prêmio")
<(echo "$resultado_num") <(echo "$resultado_val"))
> ;;
> timemania)
> data=$( echo "$dump" | cut -d '|' -f 2)
> acumulado=$(echo "$dump" | cut -d '|' -f 24)
> acumulado=${acumulado}"|"$(echo "$dump" | cut
-d '|' -f 23)
> resultado=$(echo "$dump" | cut -d '|' -f 8 |
> tr '*' '-' |
> tr '|' '\n' |
> sed 's/^ - //'
> )
> resultado=$(echo -e ${resultado}"\nTime:
"$(echo "$dump" | cut -d '|' -f 9))
> ;;
> esac
>
> # Mostra o resultado na tela (caso encontrado algo)
> if [ "$resultado" ]
> then
> echo "$resultado" | sed 's/^/ /'
> echo " Concurso $numero_concurso ($data)"
> [ "$acumulado" ] && echo " Acumulado em R$
$acumulado" | sed 's/|/ para /'
> echo
> fi
> done
> }
>
> #########################################################
>
> Os testes que fiz aqui funcionaram perfeitamente, e apenas editei para a
versão ISO-8859-1
>
> Aguardo sugestões e espero que possa ser aceito dentro do funcoeszz oficial,
ou como um extra
>
> Sem mais,
> Agradeço
>
>
>
> ------------------------------------
>
> --
> Links do Yahoo! Grupos
>
>
>
--
Aurélio | www.aurelio.net | @oreio
Senhores acabo de entrar no grupo e tenho alguma sugestões: Não sei se seria o
caso de colocar como extra, pois na verdade alteram funções que já existem. Eu
não encontrei nada similar na breve busca que fiz, então ouso postar para
apreciação:
zzseq:
Neste caso eu coloquei uma forma de aceitar o terceiro parâmetro que estava no
"TODO", e inclui por conta possibilidade de haver prefixos e sufixos a
numeração gerada. Não sei se é a solução mais elegante, mas está em aberto para
melhorias também
# ----------------------------------------------------------------------------
# Mostra uma seqüência numérica, um número por linha.
# Obs.: Emulação do comando seq, presente no Linux, com algumas melhorias
adicionais.
# Uso: zzseq [número-inicial] número-final [step [prefixo [sufixo]]]
# Ex.: zzseq 5
# zzseq 10 2 5 "Numero " ")"
#
# ----------------------------------------------------------------------------
# TODO aceitar terceiro parâmetro, igual no Linux: 10 -2 0 (início step fim)
zzseq ()
{
zzzz -h seq $1 && return
local operacao='+'
local inicio=1
local fim=$1
local step=1
local saida prefixo sufixo
# Verificação dos parâmetros
[ "$1" ] || { zztool uso seq; return; }
# Se houver dois números, vai "do primeiro ao segundo"
[ "$2" ] && inicio=$1 fim=$2
# Se houver três números, vai "do primeiro ao segundo em saltos"
[ "$3" ] && inicio=$1 fim=$3 step=$2
# Se houver um quarto arqumento é tratado como prefixo
[ "$4" ] && prefixo="$4"
# Se houver um quito arqumento é tratado como sufixo
[ "$5" ] && sufixo="$5"
# Verificações básicas
if ! (zztool testa_numero_sinal "$inicio" &&
zztool testa_numero_sinal "$fim" &&
zztool testa_numero_sinal "$step")
then
zztool uso seq
return
fi
# Se o primeiro for maior que o segundo, a contagem é regressiva
if ([ $inicio -gt $fim ])
then
for ((saida=$inicio;saida>=$fim;saida-=$step))
do
echo ${prefixo}${saida}${sufixo}
done
else
for ((saida=$inicio;saida<=$fim;saida+=$step))
do
echo ${prefixo}${saida}${sufixo}
done
fi
}
####################################################################
zzloteria:
Neste caso alterei um pouco para corrigir um problema com a duplasena, mas que
parece temporário.
Inclui consulta para a federal e timemania
E também a possibilidade de pesquisar por concursos antigos.
# ----------------------------------------------------------------------------
# Consulta os resultados da quina, megasena, duplasena, lotomania, lotofácil,
federal e timemania.
# Obs.: Se o segundo argumento for um numero, perquisa o resultado filtrando o
concurso
# Se nenhum argumento for passado, todas as loterias são mostradas.
# Uso: zzloteria [quina | megasena | duplasena | lotomania | lotofacil | federal
| timemania] concurso]
# Ex.: zzloteria
# zzloteria quina megasena
# ----------------------------------------------------------------------------
zzloteria ()
{
zzzz -h loteria $1 && return
local dump numero_concurso data resultado acumulado tipo
local resultado_val resultado_num num_con sufixo
local url='http://www1.caixa.gov.br/loterias/loterias'
local tipos='quina megasena duplasena lotomania lotofacil federal timemania'
# Caso o segundo argumento seja um numero, filtra pelo concurso equivalente
zztool testa_numero "$2"
if ([ $? -eq 0 ])
then
num_con="?submeteu=sim&opcao=concurso&txtConcurso=$2"
tipos="$1"
else
# Caso contrario mostra todos os tipos, ou alguns selecionados
unset num_con
[ "$1" ] && tipos="$*"
fi
# Para cada tipo de loteria...
for tipo in $tipos
do
zztool eco $tipo:
# Há várias pegadinhas neste código. Alguns detalhes:
# - A variável $dump é um cache local do resultado
# - É usado ZZWWWDUMP+filtros (e não ZZWWWHTML) para forçar a saída em UTF-8
# - O resultado é deixado como uma única longa linha
# - O resultado são vários campos separados por pipe |
# - Cada tipo de loteria traz os dados em posições (e formatos) diferentes :/
case "$tipo" in
duplasena)
sufixo="_pesquisa_new.asp"
;;
*)
sufixo="_pesquisa.asp"
;;
esac
dump=$($ZZWWWDUMP "$url/$tipo/${tipo}${sufixo}$num_con" |
tr -d \\n |
sed 's/ */ /g ; s/^ //')
# O número do concurso é sempre o primeiro campo
numero_concurso=$(echo "$dump" | cut -d '|' -f 1)
case "$tipo" in
lotomania)
# O resultado vem separado em campos distintos. Exemplo:
# |01|04|06|12|21|25|27|36|42|44|50|51|53|59|68|69|74|78|87|91|91|
data=$( echo "$dump" | cut -d '|' -f 42)
acumulado=$(echo "$dump" | cut -d '|' -f 71,72)
resultado=$(echo "$dump" | cut -d '|' -f 7-26 |
sed 's/|/@/10 ; s/|/ - /g' |
tr @ '\n'
)
;;
lotofacil)
# O resultado vem separado em campos distintos. Exemplo:
# |01|04|07|08|09|10|12|14|15|16|21|22|23|24|25|
data=$( echo "$dump" | cut -d '|' -f 37)
acumulado=$(echo "$dump" | cut -d '|' -f 56,57)
resultado=$(echo "$dump" | cut -d '|' -f 4-18 |
sed 's/|/@/10 ; s/|/@/5 ; s/|/ - /g' |
tr @ '\n'
)
;;
megasena)
# O resultado vem separado por asteriscos. Exemplo:
# | * 16 * 58 * 43 * 37 * 52 * 59 |
data=$( echo "$dump" | cut -d '|' -f 12)
acumulado=$(echo "$dump" | cut -d '|' -f 22,23)
resultado=$(echo "$dump" | cut -d '|' -f 21 |
tr '*' '-' |
tr '|' '\n' |
sed 's/^ - //'
)
;;
duplasena)
# O resultado vem separado por asteriscos, tendo dois grupos
# numéricos: o primeiro e segundo resultado. Exemplo:
# | * 05 * 07 * 09 * 21 * 38 * 40 | * 05 * 17 * 20 * 22 * 31 * 45 |
data=$( echo "$dump" | cut -d '|' -f 18)
acumulado=$(echo "$dump" | cut -d '|' -f 23,24)
resultado=$(echo "$dump" | cut -d '|' -f 4,5 |
tr '*' '-' |
tr '|' '\n' |
sed 's/^ - //'
)
;;
quina)
# O resultado vem duplicado em um único campo, sendo a segunda
# parte o resultado ordenado numericamente. Exemplo:
# | * 69 * 42 * 13 * 56 * 07 * 07 * 13 * 42 * 56 * 69 |
data=$( echo "$dump" | cut -d '|' -f 17)
acumulado=$(echo "$dump" | cut -d '|' -f 18,19)
resultado=$(echo "$dump" | cut -d '|' -f 15 |
sed 's/\* /|/6' |
tr '*' '-' |
tr '|' '\n' |
sed 's/^ - // ; 1d'
)
;;
federal)
data=$( echo "$dump" | cut -d '|' -f 17)
numero_concurso=$(echo "$dump" | cut -d '|' -f 3)
unset acumulado
resultado_num=$(echo "$dump" | cut -d '|' -f 7,9,11,13,15 |
tr '*' '-' |
tr '|' '\n' |
sed 's/^ - //'
)
resultado_val=$(echo "$dump" | cut -d '|' -f 8,10,12,14,16 |
tr '*' '-' |
tr '|' '\n' |
sed 's/^ - //'
)
resultado=$(paste <(zzseq 1 1 5 "" "º Prêmio") <(echo "$resultado_num")
<(echo "$resultado_val"))
;;
timemania)
data=$( echo "$dump" | cut -d '|' -f 2)
acumulado=$(echo "$dump" | cut -d '|' -f 24)
acumulado=${acumulado}"|"$(echo "$dump" | cut -d '|' -f 23)
resultado=$(echo "$dump" | cut -d '|' -f 8 |
tr '*' '-' |
tr '|' '\n' |
sed 's/^ - //'
)
resultado=$(echo -e ${resultado}"\nTime: "$(echo "$dump" | cut -d '|' -f 9))
;;
esac
# Mostra o resultado na tela (caso encontrado algo)
if [ "$resultado" ]
then
echo "$resultado" | sed 's/^/ /'
echo " Concurso $numero_concurso ($data)"
[ "$acumulado" ] && echo " Acumulado em R$ $acumulado" | sed 's/|/ para /'
echo
fi
done
}
#########################################################
Os testes que fiz aqui funcionaram perfeitamente, e apenas editei para a versão
ISO-8859-1
Aguardo sugestões e espero que possa ser aceito dentro do funcoeszz oficial, ou
como um extra
Sem mais,
Agradeço
--- Em zztabtab@..., "richard_gatinho_ruas"
<richard.gatinho.ruas.ramos@...> escreveu
>
> Sistemas *NIX contam a data em segundos desde 01/01/1970 00:00, então se trata
de uma limitação de plataforma.
Mas a data pode ser negativa; por isso, é possível representar qualquer data
2^31 segundos *antes* e *depois* de 1/1/1970. A correção que eu mandei soluciona
o problema...
>
> --- Em zztabtab@..., "huangho@" <huangho@> escreveu
> >
> > Saudações!
> >
> > Notei que a função zzdiadasemana retorna valores incorretos para datas
anteriores a 1/1/1970.
> >
> > $ zzdiadasemana 01/01/1970
> > quinta-feira
> > $ zzdiadasemana 31/12/1969
> > sexta-feira
> >
> > Esta parte:
> > dia=$(( ${delta#-} % 7)) # remove o sinal negativo (se tiver)
> > Deveria ser algo assim:
> > dia=$((delta%7))
> > [ $dia -lt 0 ] && dia=$((dia+7))
> >
>
Bom dia,
Quero parabenizar o trabalho das pessoas envolvidas no projeto, hoje estou
fazendo uso dos modulos de unix2dos e dos2unix na importaçao de arquivos entre
os sistemas da empresa que trabalho, foi de grande valia a contribuiçao de
voces.
pessoal, ja verificando as funcionalidades, acho que ficaria legal a
possibilidade de envio de mensagem de texto pra celular via terminal..assim o
sistema poderia gerar mensagens informativas e transmitir via sms.
ja existe algum projeto pra essa funcionalidade?
grande abraço a todos.
-----------------------------
Francisco Neto
CPD Tintas Alves
Feira de Santana-Bahia
------------------------------
Tel (75) 2102-9076
Cel (75) 8149-3976
------------------------------
30 Jul 2009 20:57:19 -0000, Moderador do grupo zztabtab
<zztabtab-owner@...> escreveu:
>
> Olá,
>
> Bem-vindo ao grupo zztabtab em Yahoo! Grupos.
>
> Para começar a enviar mensagens aos membros deste grupo, basta enviar um
> e-mail para
>
> zztabtab@...
>
> Se você não deseja pertencer ao zztabtab, pode cancelar a assinatura
> enviando um e-mail para
>
> zztabtab-unsubscribe@...
>
> Você também pode visitar o site da web do Yahoo! Grupos para modificar suas
> assinaturas:
>
> http://br.groups.yahoo.com/mygroups
>
> Descrição do grupo:
>
> Grupo de convivência onde os usuários das funções ZZ
> podem trocar informações e experiências.
> Também é o lugar onde são feitos os anúncios de versão nova.
>
> Aurélio Marinho Jargas
>
>
>
> O uso que você faz do Yahoo! Grupos está sujeito aos
http://br.yahoo.com/info/utos.html
>
>
>
>
>
>
>
Boa tarde a todos ZZusers,
Adicionei ao repositorios das funções extra uma nova função, a zzcbn.
Ela busca os comentários diários (ou das últimas duas semanas) dos
comentaristas da rádio CBN.
Ainda tem algumas alterações para fazer, pois todos os comentários
(vários anos) estão disponíveis, apenas o título deles é mais
complicado de obter.
A função usa o mplayer para toca os comentários, pois acho um player
com teclas de atalhos fácil de lembrar. Não saberia qual o melhor
player usar sem que precise fazer o download do mesmo.
Abraços e espero que aproveitem..
Rafael Casali
tudo ok, consegui fazer o commit.
Rodrigo
2009/5/3 Rodrigo Cunha <rodrigopc@...>:
> não estou conseguindo fazer o commit destas funções para o
> repositório. Se alguém puder fazer isso pra mim, agradeço!
>
> zzcineuci (nova): lista os filmes em exibição nos cinemas UCI;
> zzora (alteração): mudança na ER.
>
> []s
>
> Rodrigo
>
não estou conseguindo fazer o commit destas funções para o
repositório. Se alguém puder fazer isso pra mim, agradeço!
zzcineuci (nova): lista os filmes em exibição nos cinemas UCI;
zzora (alteração): mudança na ER.
[]s
Rodrigo
Aqui estão as funções do Alexandre::
http://funcoeszz.googlecode.com/svn/trunk/extra/zzbrasileiraohttp://funcoeszz.googlecode.com/svn/trunk/extra/zzbrasileiraob
2009/2/17 ALexandre Brodt Fernandes <alexandre@...>:
> Ano passado eu fiz a zzbrasileirao, série A e B..
> É uma boa fazer outros campeonatos..
> []'s
>
> 2009/2/16 4d4c47 Pontocom Pontobr <m4d4c47@...>
>>
>> vim aqui agradecer, pois sou usuário desse belo programa muito massa,
>> tenho uma sugestão:
>>
>> podia ter um "zzfutebol" com a lista dos 6 primeiros times dos campeonatos
>> brasileiro ( campeonato nacional e regional) e o campeonato europeu, parece
>> ser uma boa dica, falou
>>
>>
>> ________________________________
>> Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 -
>> Celebridades - Música - Esportes
>
>
> --
> Obrigado.
> Atenciosamente,
> Alexandre Brodt Fernandes
> OWS - Opportunity Web Software
> Gerente de Projetos
> http://www.ows.com.br
> alexandre@...
> 54 3311 3399
>
> ** Evite imprimir: 50 kgs de papel = 1 Árvore **
>
>
>
--
Aurélio Marinho Jargas
www.aurelio.net
vim aqui agradecer, pois sou usuário desse belo programa muito massa, tenho uma sugestão:
podia ter um "zzfutebol" com a lista dos 6 primeiros times dos campeonatos brasileiro ( campeonato nacional e regional) e o campeonato europeu, parece ser uma boa dica, falou
vim aqui agradecer, pois sou usuário desse belo programa muito massa, tenho uma sugestão:
podia ter um "zzfutebol" com a lista dos 6 primeiros times dos campeonatos brasileiro ( campeonato nacional e regional) e o campeonato europeu, parece ser uma boa dica, falou
Criei uma nova função de humor! Estou tendo problemas pra me autenticar no svn, então vou mandar por aqui mesmo, por favor, alguma alma caridosa envie pro repositório.
Criei uma nova função de humor! Estou tendo problemas pra me autenticar no svn, então vou mandar por aqui mesmo, por favor, alguma alma caridosa envie pro repositório.
On Dec 12, 2008 10:38pm, Marcell Martini <marcellmartini@...> wrote: > 2-) Pq dentro da funcao zzrandbackground tem um find, e esse find só está funcionando se tiver o / no final do caminho. sem o barra, o retorno do find é vazio.
não dá pra só apendeá uma barra e pronto? acho que também funciona com duas barras.
1-) No consele nao deve dar erro se vc tiver o gnome instalado. Caso nao tenho o gnome instalado ai da erro sim.
2-) Pq dentro da funcao zzrandbackground tem um find, e esse find só está funcionando se tiver o / no final do caminho. sem o barra, o retorno do find é vazio.
Elias dorneles, estou encaminhando suas perguntas para a lista das funções zz tambem, para que se alguem souber de mais alguma coisa, ou se tenha duvida tambem, que possam compartilhar conosco ok?
não cheguei a ler muito bem o seu código, mas tenho umas perguntitas. :)
On Dec 12, 2008 9:05pm, Marcell Martini <marcellmartini@...> wrote:
> se vc colocar no .bashrc funciona :'). Entao é só colocar no .bashrc: "zzrandbackground -l /media/wallpaper/ 120 &" que funciona.
se a função estiver no bashrc, e logar no console, não vai dá erro?
outra coisa, por que ela só funciona se passar o / no fim do nome do diretório?
Ela pode ser usada com um loop infinito (-l) ou para trocar o background. Se for de vontade que fique trocando. vc pode usar da seguinte forma:
zzrandbackground -l /media/wallpaper/ 120
Dessa forma o background vai mudar a cada 2 minutos (120 segundos). Outra forma é ir em System > Preferences > Sessions e adicionar um novo "Startus Programs". A configuração fica assim:
Aí toda vez que vc entrar no gnome a função é carregada automáticamente.
Outra forma de usar a zzrandbackground é sem a opção de loop (-l), que serve
para mudar o background apenas uma vez. Nesse caso só é preciso passar o caminho onde os wallpapers estão.
zzrandbackground /media/wallpaper/
Bom é isso ai povo.. se virem algum erro, ou alguma melhoria.. falem ae!! :D
Ela pode ser usada com um loop infinito (-l) ou para trocar o background. Se for de vontade que fique trocando. vc pode usar da seguinte forma:
zzrandbackground -l /media/wallpaper/ 120
Dessa forma o background vai mudar a cada 2 minutos (120 segundos). Outra forma é ir em System > Preferences > Sessions e adicionar um novo "Startus Programs". A configuração fica assim:
Aí toda vez que vc entrar no gnome a função é carregada automáticamente.
Outra forma de usar a zzrandbackground é sem a opção de loop (-l), que serve
para mudar o background apenas uma vez. Nesse caso só é preciso passar o caminho onde os wallpapers estão.
zzrandbackground /media/wallpaper/
Bom é isso ai povo.. se virem algum erro, ou alguma melhoria.. falem ae!! :D
Oi pessoal,
Tem função extra nova na área!
zzporcento — Calcula porcentagens.
# ----------------------------------------------------------------------------
# Calcula porcentagens.
# Se informado um número, mostra sua tabela de porcentagens.
# Se informados dois números, mostra a porcentagem relativa entre eles.
# Se informados um número e uma porcentagem, mostra os valores da porcentagem.
#
# Autor: Aurélio Jargas <verde (a) aurelio net>
# Versão: 4
# Uso: zzporcento valor [valor|porcentagem%]
# Ex.: zzporcento 500 # Tabela de porcentagens de 500
# zzporcento 500.0000 # Tabela para número fracionário (.)
# zzporcento 500,0000 # Tabela para número fracionário (,)
# zzporcento 5.000,00 # Tabela para valor monetário
# zzporcento 500 25 # Mostra a porcentagem de 25 para 500 (5%)
# zzporcento 500 1000 # Mostra a porcentagem de 1000 para 500 (200%)
# zzporcento 500,00 25% # Mostra quanto é 25% de 500,00
# zzporcento 500,00 2,5% # Mostra quanto é 2,5% de 500,00
# ----------------------------------------------------------------------------
Uma maneira rápida de calcular porcentagens de números ou valores
monetários. Basta você passar o número que ela te devolve uma
tabelinha com algumas porcentagens-chave deste número. Veja:
$ zzporcento 500
200% 1000
150% 750
125% 625
100% 500
90% 450
80% 400
75% 375
70% 350
60% 300
50% 250
40% 200
30% 150
25% 125
20% 100
15% 75
10% 50
9% 45
8% 40
7% 35
6% 30
5% 25
4% 20
3% 15
2% 10
1% 5
As duas colunas são separadas por um TAB, ficando bem fácil pescar
estes dados depois com um grep+cut, veja:
$ zzporcento 500 | grep ^25%
25% 125
$ zzporcento 500 | grep ^25% | cut -f 2
125
Mas o melhor ainda está por vir. Você pode passar um segundo
argumento, que é a porcentagem desejada. Imagine que você tem algo que
custa R$ 500,00 e quer dar um desconto de 5% para o seu amigo:
$ zzporcento 500,00 5%
+5% 525,00
100% 500,00
-5% 475,00
5% 25,00
As três primeiras linhas mostram o valor total (100%) com um acréscimo
e um decréscimo de 5%. Agora você sabe que deverá cobrar R$ 475,00 de
seu amigo. Você não precisa calcular nada, a função já retorna os
dados mastigados. A quinta linha, separada das três primeiras, mostra
o valor do desconto de 5%, neste caso R$ 25,00.
Outra utilidade é na compra e venda de ações. Você informa o valor da
ação e a sua margem de lucro/perda. Digamos que minha margem seja de
5%. Vejamos em quanto fechou a cotação das ações da Petrobrás hoje: R$
21,87.
$ zzporcento 21,87 5%
+5% 22,96
100% 21,87
-5% 20,78
5% 1,09
Ou seja, se eu comprar a este preço, posso vender quando subir a R$
22,96. Porém se cair, seguro até R$ 20,78. Abaixo disso está fora da
minha margem.
Se você precisa fazer contas com valores fracionários, não tem
problema. A função preserva o número de dígitos fracionários original,
bem como o separador, que pode ser o ponto ou a vírgula. Veja:
$ zzporcento 0.1234 5%
+5% 0.1295
100% 0.1234
-5% 0.1173
5% 0.0061
$ zzporcento 0,12345678 5%
+5% 0,12962961
100% 0,12345678
-5% 0,11728395
5% 0,00617283
Ah, sim. E a porcentagem também pode ser fracionária, claro:
$ zzporcento 0,12345678 1,23%
+1,23% 0,12497529
100% 0,12345678
-1,23% 0,12193827
1,23% 0,00151851
Por último, caso você passe um segundo número ao invés de uma
porcentagem, é mostrada a relação entre eles, tomando o primeiro como
o 100%. Veja:
$ zzporcento 500 25
5,00%
$ zzporcento 500 1000
200,00%
$ zzporcento 500,00 1000,00
200,00%
Ou seja, 25 é 5% de 500 e 1000 é 200%.
Eu gostei muito dessa função e vou usar bastante para brincar com ações. E você?
Lembrando: Esta ainda é uma função extra, só vai entrar nas ZZ
oficiais em algum lançamento futuro. Para brincar com ela hoje você
deve baixar direto do SVN. Tem instruções lá no site
(http://funcoeszz.net/extra.html), mas resumindo:
svn co http://funcoeszz.googlecode.com/svn/trunk/extra $HOME/zzextra
E pronto! Se você já fez isso antes e só quer atualizar o diretório
para pegar a função nova, faça:
cd $HOME/zzextra ; svn update
Falouzz!
--
Aurélio Marinho Jargas
www.aurelio.net
É isso mesmo Marcell, o formato tem que ser exatamente igual ao das
outras funções, eu aconselho copiar e colar para evitar problemas.
Tem que ser assim, quanto mais restrito o formato, melhor, pois
evita-se de termos falsos-positivos.
Abraço!
2008/12/5 Marcell Martini <marcellmartini@...>:
> Percebi que se a primeira linha do comentário do header for feito assim :
> #-- o -h da função não funciona, parece que tem que ter um espaço entre o #
> e o - para poder funcionar o -h.
>
> Tipo:
>
> #--
> # teste
> #--
>
> Nao funfa
>
> # -
> # teste
> #--
>
> Funfa.
>
> É para funcionar assim mesmo ???
>
> Flw ae...
>
> Marcell S. Martini
>
--
Aurélio Marinho Jargas
www.aurelio.net
Percebi que se a primeira linha do comentário do header for feito assim :#-- o -h da função não funciona, parece que tem que ter um espaço entre o # e o - para poder funcionar o -h.
Isso serviria para comprara as horas e saber qual é a maior que outra. Sei que podria ser feito com zzhora h1 - h2, e se o resultado fosse negativo, a segunda seria maior que a primeira, mas da forma que está a zzhora hoje, o resultado sai -00:00 por exemplo, e comprar isso com uma hora passada é chato. Acho que ficaria mais facil fazendo essa comparação tudo em minuto. E como a zzhora já faz isso, achei que poderia ser feita nela essa mudança. Mas bom ou poderia ser criada uma funcao zz extra, a zzhoraminuto, ou poderia ser colocado essa opção na zzhora.. o que vcs acham????
tipo a zzhoraminuto já ta pronta. No caso de colocar a funcionalidade na zzhora o diff dela poderia ser:
Index: funcoeszz =================================================================== --- funcoeszz (revision 114) +++ funcoeszz (working copy) @@ -2701,6 +2701,13 @@ # Os cálculos são feitos utilizando apenas minutos. # Então é preciso converter as horas:minutos para somente minutos. n1=$((hh1*60+mm1)) + + # Se for passado somente a primeira hora, quer dizer que + # deseja saber a quantidade de minutos que essa hora tem + if [ "$hhmm1" -a ! "$2" ]; then + echo $n1 + return 0 + fi n2=$((hh2*60+mm2)) # Tudo certo, hora de fazer o cálculo
Ou poderia ser colocada a opção -m para fazer essa impressão.. e ai o que vcs acham??
Isso serviria para comprara as horas e saber qual é a maior que outra. Sei que podria ser feito com zzhora h1 - h2, e se o resultado fosse negativo, a segunda seria maior que a primeira, mas da forma que está a zzhora hoje, o resultado sai -00:00 por exemplo, e comprar isso com uma hora passada é chato. Acho que ficaria mais facil fazendo essa comparação tudo em minuto. E como a zzhora já faz isso, achei que poderia ser feita nela essa mudança. Mas bom ou poderia ser criada uma funcao zz extra, a zzhoraminuto, ou poderia ser colocado essa opção na zzhora.. o que vcs acham????
tipo a zzhoraminuto já ta pronta. No caso de colocar a funcionalidade na zzhora o diff dela poderia ser:
Index: funcoeszz =================================================================== --- funcoeszz (revision 114) +++ funcoeszz (working copy) @@ -2701,6 +2701,13 @@ # Os cálculos são feitos utilizando apenas minutos. # Então é preciso converter as horas:minutos para somente minutos. n1=$((hh1*60+mm1)) + + # Se for passado somente a primeira hora, quer dizer que + # deseja saber a quantidade de minutos que essa hora tem + if [ "$hhmm1" -a ! "$2" ]; then + echo $n1 + return 0 + fi n2=$((hh2*60+mm2)) # Tudo certo, hora de fazer o cálculo
Ou poderia ser colocada a opção -m para fazer essa impressão.. e ai o que vcs acham??
Tá lá Marcell,
Coloquei no SVN.
Melhorei um pouco a sua regex, para ficar menor e mais portável (o ?
não funciona no BSD, trocado egrep por grep).
Aproveitei para melhorar a regex da testa_data também, que antes
casava coisas como 39/19/2000. Agora ela somente casa os dias corretos
para cada mês: 31 em janeiro, 29 em fevereiro, e assim vai.
testa_data)
# Testa se $2 é uma data (dd/mm/aaaa)
local d29='\(0[1-9]\|[12][0-9]\)/\(0[1-9]\|1[012]\)'
local d30='30/\(0[13-9]\|1[012]\)'
local d31='31/\(0[13578]\|1[02]\)'
echo "$2" | grep "^\($d29\|$d30\|$d31\)/[0-9]\{1,\}$" >/dev/null
;;
testa_hora)
# Testa se $2 é uma hora (hh:mm)
echo "$2" | grep "^\(0\{0,1\}[0-9]\|1[0-9]\|2[0-3]\):[0-5][0-9]$" >/dev/null
;;
Valeu!
2008/12/3 Marcell Martini <marcellmartini@...>:
> Da forma que eu mandei a regex casa com 05:050 e nao é uma hora válida :).
> Coloquei um $ no final de cada parte para casar somente a hora 05:05 e nao
> 05:050
>
> a regex ficou assim:
>
> ^0?[0-9]:[0-5][0-9]$|^1[0-9]:[0-5][0-9]$|^2[0-3]:[0-5][0-9]$
>
> Flw ae
>
> []'s
>
> Marcell S. Martini
>
> On Wed, Dec 3, 2008 at 12:02 PM, Marcell Martini <marcellmartini@...>
> wrote:
>>
>> E ai blz,
>>
>> Aurélio, seria possivel colocar na zztool o teste_hora?? ficaria assim:
>>
>> testa_hora)
>> # Testa se $2 é uma hora válida (00:00-23:59) ou
>> (0:00-23:59)
>> echo "$2" | egrep
>> "^0?[0-9]:[0-5][0-9]|^1[0-9]:[0-5][0-9]|^2[0-3]:[0-5][0-9]" >/dev/null
>> ;;
>>
>>
>> Não sei se vc usa algo para hora :).. mas eu tava precisando, e achei que
>> seria uma boa ter ela na ZZ
>>
>> Flw ae
>>
>> []'s
>>
>> Marcell S. Martini
>
>
--
Aurélio Marinho Jargas
www.aurelio.net
Da forma que eu mandei a regex casa com 05:050 e nao é uma hora válida :). Coloquei um $ no final de cada parte para casar somente a hora 05:05 e nao 05:050
On Wed, Dec 3, 2008 at 12:02 PM, Marcell Martini <marcellmartini@...> wrote:
E ai blz,
Aurélio, seria possivel colocar na zztool o teste_hora?? ficaria assim:
testa_hora) # Testa se $2 é uma hora válida (00:00-23:59) ou (0:00-23:59) echo "$2" | egrep "^0?[0-9]:[0-5][0-9]|^1[0-9]:[0-5][0-9]|^2[0-3]:[0-5][0-9]" >/dev/null
;;
Não sei se vc usa algo para hora :).. mas eu tava precisando, e achei que seria uma boa ter ela na ZZ
Sim, já tem a testa_data, tá faltando o testa_hora mesmo.
Hoje eu coloco, valeu a dica!
2008/12/3 Marcell Martini <marcellmartini@...>:
> E ai blz,
>
> Aurélio, seria possivel colocar na zztool o teste_hora?? ficaria assim:
>
> testa_hora)
> # Testa se $2 é uma hora válida (00:00-23:59) ou
> (0:00-23:59)
> echo "$2" | egrep
> "^0?[0-9]:[0-5][0-9]|^1[0-9]:[0-5][0-9]|^2[0-3]:[0-5][0-9]" >/dev/null
> ;;
>
>
> Não sei se vc usa algo para hora :).. mas eu tava precisando, e achei que
> seria uma boa ter ela na ZZ
>
> Flw ae
>
> []'s
>
> Marcell S. Martini
>
--
Aurélio Marinho Jargas
www.aurelio.net