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
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
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
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
>
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
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
>
>
>
>
>
>
>
--- 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))
> >
>
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
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
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.
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
Boa noite a todos,
estou me desfazendo de alguns livros e gostaria de saber quem está interessado.
Visual Basic .Net - Aplicativo de banco de dados - Ijaui F da Silva - R$ 20,00
Programando em C# com .NET Framework da Microsoft - Antonio Carlos Barbosa - R$
30,00
Aprenda Asp.Net Ajax em 15 Passos - Roque Fernando M Sousa - R$ 30,00
Como Programar com Asp.Net e C# - Alfredo Lotar - R$ 40,00
Universidade Java - Torne-se um especialista nessa poderosa linguagem! - Franco
Yoshida - R$ 30,00
Como Criar Web Pages Rápidas e Eficientes usando PHP e MySQL - David Tansley -
R$ 30,00
Netware 5 - Soluções Rápidas - Billie Pierce e Mark Pierce - R$ 40,00
SQL Server 2005 - Administração e Desenvolvimento - Curso completo - Julio
Battisti - R$ 100,00
Caso leve todos eu faço por R$ 290,00.
Favor entrar em contato PVT
[OFF-TOPIC] Desfazendo de livros
Obrigado.
Depois de atualizar meu Cygwin para a versão 1.7.1, comecei a observar problemas de codificação em algumas funções (os caracteres acentuados não estavam mais sendo exibidos).
Acredito que a causa do problema seja o fato de que o Cygwin a partir da versão 1.7 tenha suporte a UTF-8 no console [1].
Eu consegui resolver o problema baixando a versão UTF-8 das Funções ZZ. O curioso é que o comando de diagnóstico (zzzz --teste) [2] identifica a codificação do sistema ainda como ISO-8859-1.
A função zzdicbabylon está quebrada desde pelo menos esta segunda-feira (22-mar-2010). Segue em anexo o patch para ser aplicado no código fonte e o texto completo de como ficou a função. Eu testei apenas no Cygwin, e como não sou um expert em sed não me surpreenderei quando alguém descobrir que a função não funciona em outro ambiente. Por isso seria legal se a função pudesse ser testada em outros sistemas também.
[Anexos de =?ISO-8859-1?Q?Douglas_Jos=E9?= incluídos abaixo]
Oi pessoal,
A função zzdicbabylon está quebrada desde pelo menos esta segunda-feira (22-mar-2010). Segue em anexo o patch para ser aplicado no código fonte e o texto completo de como ficou a função. Eu testei apenas no Cygwin, e como não sou um expert em sed não me surpreenderei quando alguém descobrir que a função não funciona em outro ambiente. Por isso seria legal se a função pudesse ser testada em outros sistemas também.
OLÁ,
COMO VAI? TENHO UM CONVITE IRRESISTÍVEL PARA FAZER A VOCÊ! PEÇO APENAS 1 MINUTO
DE SUA ATENÇÃO! TENHO CERTEZA DE QUE NÃO IRÁ SE ARREPENDER! PELO CONTRÁRIO,
VOCÊ IRÁ ME AGRADECER POR RECEBER ESTE CONVITE!
PARTICIPO
DE UM SITE DE RELACIONAMENTOS (MELHOR DO QUE ORKUT E FACEBOOK) QUE POSSUI UMA
INFINIDADE DE OPÇÕES DE ENTRETENIMENTO E O MELHOR, PAGA PELA PARTICIPAÇÃO DOS
MEMBROS!
ESTOU
FALANDO DO KLIKOT! O FENÔMENO QUE JÁ POSSUI MAIS DE 700 MIL MEMBROS EM TODO O
MUNDO! E ISSO EM APENAS 2 MESES DE EXISTÊNCIA! SERÁ QUE ESSE VAI PEGAR? CLARO
QUE VAI!!!
HÁ
VÁRIAS FORMAS DE GANHAR DINHEIRO NO KLIKOT, E VOCÊ NÃO PAGA NADA PARA
PARTICIPAR! ISSO MESMO, A PARTICIPAÇÃO É GRATUITA!!!
É
NECESSÁRIO SER CONVIDADO POR ALGUÉM PARA PARTICIPAR. ACESSE O MEU LINK DE
CONVITE ABAIXO E CADASTRE-SE!
SE
O LINK ACIMA NÃO FUNCIONAR COPIE E COLE EM SEU NAVEGADOR!
O QUE É?
KLIKOT É UM NOVO TIPO DE REDE SOCIAL (MELHOR QUE
ORKUT E FACEBOOK), BASEADO NO PRINCÍPIO DE QUE OS MEMBROS DEVEM SER RECOMPENSADOS
PELAS SUAS CONTRIBUIÇÕES.
COMO GANHAR DINHEIRO NO KLIKOT?
EXISTEM
VÁRIAS FORMAS DE GANHOS, SÃO ELAS:
- PONTOS
POR MARKETING
ESSES
PONTOS REPRESENTAM A ATIVIDADE DOS MEMBROS QUE VOCÊ CONVIDOU PARA O KLIKOT, E É
MOSTRADA NA SUA REDE DE CONVIDADOS (ÁRVORE DE MARKETING). A ÁRVORE MOSTRA TODOS OS MEMBROS QUE VOCÊ CONVIDOU PARA
O KLIKOT E TODOS OS MEMBROS QUE ELES CONVIDARAM, ATÉ 5 NÍVEIS. QUANTO
MAIS ELES ACESSAREM, MAIS PONTOS POR MARKETING VOCÊ RECEBE. ESSES PONTOS SERÃO
TRANSFORMADOS EM DINHEIRO AO FINAL DE CADA DIA.
- PONTOS
POR CONTEÚDO
ESSES PONTOS REPRESENTAM A SOMA TOTAL DE PONTOS POR
CONTEÚDO PRODUZIDOS.
1)QUANDO ALGUÉM NO
KLIKOT VISUALIZA SEU PERFIL VOCÊ GANHA PONTOS;
2)QUANDO ALGUÉM NO
KLIKOT VISUALIZA O SEU ALBUM DE FOTOS VOCÊ GANHA PONTOS;
3)QUANDO VOCÊ CRIA UM
ARTIGO E ESTE É VISUALIZADO POR ALGUÉM NO KLIKOT VOCÊ GANHA PONTOS;
4)QUANDO VOCÊ CRIA UM
GRUPO (COMUNIDADE) E ESTE É VISUALIZADO POR ALGUÉM NO KLIKOT VOCÊ GANHA PONTOS;
5)QUANDO VOCÊ CRIA UM
EVENTO E ESTE É VISUALIZADO POR ALGUÉM NO KLIKOT VOCÊ GANHA PONTOS.
CADA ARTIGO, ÁLBUM, EVENTO OU GRUPO ENVIADO CRIA MOVIMENTO
NO SITE. ESSE MOVIMENTO É TRANSFORMADO EM PONTOS POR CONTEÚDO, QUE SÃO TRANSFORMADOS
EM BENEFÍCIOS MONETÁRIOS TAMBÉM AO FINAL DE CADA DIA.
POSSO CUSTOMIZAR? CLARO QUE SIM! NO KLIKOT VOCÊ PODE!
NÃO QUER QUE ALGUÉM SEJA CAPAZ DE BUSCAR O SEU
NOME? TEM FOTOS PRIVADAS QUE NÃO QUER QUE OUTROS VEJAM? SUA EXPERIÊNCIA NO
KLIKOT PODE SER PESSOALMENTE AJUSTADA DE ACORDO COM SUAS PREFERÊNCIAS.
CONFORME
HAVIA INFORMADO ACIMA, É
NECESSÁRIO SER CONVIDADO POR ALGUÉM PARA PARTICIPAR. ACESSE O MEU LINK DE
CONVITE ABAIXO E CADASTRE-SE!
Richard@AthlonXP:~$ ./funcoeszz
bash: $'\r': command not found
bash: $'\r': command not found
bash: $'\r': command not found
': not a valid identifier89: unset: `ZZTMPDIR_DFT
bash: $'\r': command not found
bash: $'\r': command not found
bash: /usr/bin/funcoeszz: line 99: syntax error near unexpected token `$'\r''
'ash: /usr/bin/funcoeszz: line 99: `zztool ()
Richard@AthlonXP:~$
Solução: Parece que nos últimos Cygwins, a forma em que as permissões de
execução (+x) e quebras de linha (LF vs. CRLF) são tratadas mudou, afetando
assim as Funções.
Basta executar o comando:
Richard@AthlonXP:~$ dos2unix funcoeszz
funcoeszz: done.
Richard@AthlonXP:~$
Tentando executar as Funções novamente...
Richard@AthlonXP:~$ ./funcoeszz
Richard@AthlonXP:~$ zzzz --bashrc
Feito!
As Funções ZZ foram instaladas no /home/Richard/.bashrc
Richard@AthlonXP:~$
Oi Richard,
O arquivo das funções já está no formato do Unix, usando apenas \n
para fazer as quebras de linha.
Será que voce não abriu o arquivo para edição em algum aplicativo do
Windows (tipo bloco de notas) e ao fechar/salvar ele converteu para o
formato do Windows (\r\n)?
Abraço
2010/5/22 richardg867 <richard@...>:
> Richard@AthlonXP:~$ ./funcoeszz
> bash: $'\r': command not found
> bash: $'\r': command not found
> bash: $'\r': command not found
> ': not a valid identifier89: unset: `ZZTMPDIR_DFT
> bash: $'\r': command not found
> bash: $'\r': command not found
> bash: /usr/bin/funcoeszz: line 99: syntax error near unexpected token `$'\r''
> 'ash: /usr/bin/funcoeszz: line 99: `zztool ()
> Richard@AthlonXP:~$
>
> Solução: Parece que nos últimos Cygwins, a forma em que as permissões de
execução (+x) e quebras de linha (LF vs. CRLF) são tratadas mudou, afetando
assim as Funções.
>
> Basta executar o comando:
> Richard@AthlonXP:~$ dos2unix funcoeszz
> funcoeszz: done.
> Richard@AthlonXP:~$
>
> Tentando executar as Funções novamente...
> Richard@AthlonXP:~$ ./funcoeszz
> Richard@AthlonXP:~$ zzzz --bashrc
> Feito!
> As Funções ZZ foram instaladas no /home/Richard/.bashrc
> Richard@AthlonXP:~$
>
>
>
> ------------------------------------
>
> --
> Links do Yahoo! Grupos
>
>
>
--
Aurélio | www.aurelio.net | @oreio
Luciano eu já havia identificado esse erro e coloquei no extras um zzloteria2
que corrige esse problema. O que aconteceu é que o mecanismo da duplasena mudou,
mas esse zzloteria2 precisa do zzseq2, que é uma tentativa de melhoria no zzseq
original.
Veja se eles lhe atendem
Sem mais,
Itamar
--- Em zztabtab@..., Luciano Marques <luciano073@...> escreveu
>
> Olá, a função zzloteria tá funcionando pra todas loterias menos pra
> duplasena. Alguém sabe o motivo?
>
> --
> Luciano Marques
> Goiânia - GO
> Brasil
>
E ai pessoal, para usar a função zzcpf em CGI, há alguma peculiaridade?
Eu uso ela na shell e funciona como o esperado, quando utilizo coletando o cpf
de um formulário html ( usando post ) não da certo.
Outros scripts estão OK, e o cpf vai certo, eu faço um teste com echo.
Se alguém souber de algo, posso até passar o script e o formulário, para saber
como foi construído.
Vlw abraçosssssss!!!!
Como você está chamando a função? Chame pelo arquivo principal das
funções, assim:
funcoeszz cpf 123.456.789-10
As outras funções funcionam ou é apenas a zzcpf? Pra testar, faça um:
funcoeszz calcula 2 + 2
Se nenhuma função funciona, pode ser problema de PATH. Inclua o
caminho completo pra funções ZZ pra garantir.
Não é pra ter nenhuma peculiaridade com a zzcpf em si, visto que ela
só usa os comandos internos do próprio Bash, um tr e um sed simples.
Testa aí e conta pra gente o que rolou.
Abraço
2010/6/21 mrodrigomana <mrodrigomana@...>:
> E ai pessoal, para usar a função zzcpf em CGI, há alguma peculiaridade?
> Eu uso ela na shell e funciona como o esperado, quando utilizo coletando o cpf
de um formulário html ( usando post ) não da certo.
> Outros scripts estão OK, e o cpf vai certo, eu faço um teste com echo.
> Se alguém souber de algo, posso até passar o script e o formulário, para saber
como foi construído.
>
> Vlw abraçosssssss!!!!
>
>
>
> ------------------------------------
>
> --
> Links do Yahoo! Grupos
>
>
>
--
Aurélio | www.aurelio.net | @oreio
#### FIM PEGAR DADOS DO FORMULÁRIO, O METODO UTILIZADO E O POST ############
########## A VARIAVEL QUE VEM DO FORMULARIO HTML E ######################
# #
# cpf01="VALORCPF COM 11 DIGITOS" #
# #
########## FIM A VARIAVEL QUE VEM DO FORMULARIO HTML E ##################
echo $cpf01 #####AQUI EU TESTO SE O CPF VEIO CORRETO DO FORMULARIO
zzcpf () { ########## FUNCAO VERIFICA CPF ################
#zzzz -h cpf $1 && return
local i n somatoria digito1 digito2 cpf base
# Remove pontuação do CPF informado, deixando apenas números
cpf="$(echo $* | tr -d -c 0123456789)"
# Extrai os números da base do CPF:
# Os 9 primeiros, sem os dois dÃgitos verificadores.
# Esses dois dÃgitos serão calculados adiante.
if [ "$cpf" ]
then
# Faltou ou sobrou algum número...
if [ ${#cpf} -ne 11 ]
then
validacpf="1";
echo $validacpf;
return
fi
# Apaga os dois últimos dÃgitos
base=${cpf%??}
else
# Não foi informado nenhum CPF, vamos gerar um escolhendo
# nove dÃgitos aleatoriamente para formar a base
while [ ${#cpf} -lt 9 ]
do
cpf="$cpf$((RANDOM % 9))"
done
base=$cpf
fi
# Truque para cada dÃgito da base ser guardado em $1, $2, $3, ...
set - $(echo $base | sed 's/./& /g')
### Cálculo do dÃgito verificador 2
# Tudo igual ao anterior, primeiro setando $1, $2, $3, etc e
# depois fazendo os cálculos já explicados.
#
set - $(echo $base | sed 's/./& /g')
# Passo 1
somatoria=0
for i in 11 10 9 8 7 6 5 4 3; do
n=$1
somatoria=$((somatoria + (i * n)))
shift
done
# Passo 1 e meio (o dobro do verificador 1 entra na somatória)
somatoria=$((somatoria + digito1 * 2))
# Passo 2
digito2=$((11 - (somatoria % 11)))
# Passo 3
[ $digito2 -ge 10 ] && digito2=0
# Mostra ou valida
if [ ${#cpf} -eq 9 ]
then
# Esse CPF foi gerado aleatoriamente pela função.
# Apenas adiciona os dÃgitos verificadores e mostra na tela.
echo $cpf$digito1$digito2 |
sed 's/\(...\)\(...\)\(...\)/\1.\2.\3-/' # nnn.nnn.nnn-nn
else
# Esse CPF foi informado pelo usuário.
# Compara os verificadores informados com os calculados.
if [ "${cpf#?????????}" = "$digito1$digito2" ]
then
validacpf="0";
echo $validacpf;
return
else
# Boa ação do dia: mostrar quais os verificadores corretos
validacpf="1";
echo $validacpf;
return
fi
fi
}
############# FIM FUNCAO VERIFICA CPF ################
verificador=$(zzcpf $cpf01); ### RETORNA DA FUNÇÃO O VALOR "0" PARA CPFS OKS, RETORNA "1" PARA CPF NAO OK
### EM DOIS CASOS ELE RETORNA "1" ( SE FALTA DIGITOS OU SE O VERIFICADOR NAO CONFERE COM A MASCARA)
if [ "$verificador" -eq 0 ]
then
echo "CPF OK";
else
echo "CPF NO OK";
fi
################## TESTEI TAMBEM DESSA FORMA ##################################
if [ "$(zzcpf $cpf01)" -eq 0 ]
then
echo "CPF OK";
else
echo "CPF NO OK";
fi
################## FIM TESTE TAMBEM DESSA FORMA ################################
### FIM ####
--- Em zztabtab@..., Aurélio Jargas <verde@...> escreveu
>
> Como você está chamando a função? Chame pelo arquivo principal das
> funções, assim:
>
> funcoeszz cpf 123.456.789-10
>
> As outras funções funcionam ou é apenas a zzcpf? Pra testar, faça um:
>
> funcoeszz calcula 2 + 2
>
> Se nenhuma função funciona, pode ser problema de PATH. Inclua o
> caminho completo pra funções ZZ pra garantir.
>
> Não é pra ter nenhuma peculiaridade com a zzcpf em si, visto que ela
> só usa os comandos internos do próprio Bash, um tr e um sed simples.
>
> Testa aí e conta pra gente o que rolou.
>
> Abraço
>
>
> 2010/6/21 mrodrigomana <mrodrigomana@...>:
> > E ai pessoal, para usar a função zzcpf em CGI, há alguma peculiaridade?
> > Eu uso ela na shell e funciona como o esperado, quando utilizo coletando o cpf de um formulário html ( usando post ) não da certo.
> > Outros scripts estão OK, e o cpf vai certo, eu faço um teste com echo.
> > Se alguém souber de algo, posso até passar o script e o formulário, para saber como foi construído.
> >
> > Vlw abraçosssssss!!!!
> >
> >
> >
> > ------------------------------------
> >
> > --
> > Links do Yahoo! Grupos
> >
> >
> >
>
>
>
> --
> Aurélio | www.aurelio.net | @oreio
>
Como faço para obter a lista completa de todas as Funções ZZ?
Eu preciso de todas, inclusive .zzextra, e eu preciso de uma
lista bem limpinha, para usar num loop. A lista que aparece em
zz{tab}{tab} é perfeita, mas é claro que não serve, preciso de
output para usar num script.
O meu problema é que eu uso tcsh e cansei de entrar no Bash
sempre que quero usar uma ZZ. Eu preciso de um output bem
bonito, para fazer um foreach no meu .tcshrc e transformar
cada função ZZ em alias (não existem funções em tcsh).
O output de 'zzzz' não serve para mim, pois só lista as funções
de .zzextra, e mesmo assim, de um jeito chato de extrair (observe
a pegadinha do Mallandro: não tem vírgula entre "kernel" e
"noticias").
luc$[503]/> zzzz
( local) /usr/bin/funcoeszz
(versão) 8.9 (ISO-8859-1)
( cores) sim
( tmp) /tmp/zz
(bashrc) não instalado
(extras) /home/luc/.zzextra
( site) http://funcoeszz.net
(( funções disponíveis ))
aulete, definr, delicious, english, euro, filme, globo, kernel
noticias, rastreamento, tvglobofilmes, tvglobograde
--
Luciano ES
>>
Assim, só uma duvida. Você quer usar as zz no tcsh?, quando você instalou as zz, usa-te o zzzz --tcshrc? Por que pela saida do seu zzzz o teu tcshrc não foi instalado corretamente.
Como faço para obter a lista completa de todas as Funções ZZ?
Eu preciso de todas, inclusive .zzextra, e eu preciso de uma
lista bem limpinha, para usar num loop. A lista que aparece em
zz{tab}{tab} é perfeita, mas é claro que não serve, preciso de
output para usar num script.
O meu problema é que eu uso tcsh e cansei de entrar no Bash
sempre que quero usar uma ZZ. Eu preciso de um output bem
bonito, para fazer um foreach no meu .tcshrc e transformar
cada função ZZ em alias (não existem funções em tcsh).
O output de 'zzzz' não serve para mim, pois só lista as funções
de .zzextra, e mesmo assim, de um jeito chato de extrair (observe
a pegadinha do Mallandro: não tem vírgula entre "kernel" e
"noticias").
Marcell S. Martini Red Hat Certified Engineer IT Support Full Analyst - Information Technology Instituto Nokia de Tecnologia marcell.martini@...
Tel: 55 92 2126 1158 http://www.indt.org.br