Conversao de tipo de dados (cast)

1. Conversao de tipo de dados (cast)

Eudijuno
Eudijuno

(usa Ubuntu)

Enviado em 08/04/2011 - 09:52h

Aew galera, to com um probleminha aki: é o seguinte, fiz uma sequencia com o comando seq (seq -f %04g '1' '100')...
Mas os numeros da sequencia obviamente sao 'int'...
A questão eh q eu queria eles como string.
Alguem pode me ajudar!?

Abrc


  


2. Re: Conversao de tipo de dados (cast)

Mauricio Souza Klein
Hebang

(usa Arch Linux)

Enviado em 08/04/2011 - 10:29h

Bash não tem tipagem forte, digamos assim. Ele "transforma" o dado conforme a operacão realizada.

Tipo:
MINHA_VAR=15

Se tu fizer:
let "VAL = MINHA_VAR + MINHA_VAR"

Ele trata MINHA_VAR como inteiro

Já se ti fizer:
echo "Minha variavel vale $MINHA_VAR"

Ele trata ela como string.


Espero ter ajudado!


3. Re: Conversao de tipo de dados (cast)

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 08/04/2011 - 11:11h

Concordo, a principio vc pode usala como string (tanto que mantém os zeros a esquerda), como fazer calculos com sua variavel ... neste caso independe.

Então explica melhor o que está "pegando" ...


4. Re: Conversao de tipo de dados (cast)

Eudijuno
Eudijuno

(usa Ubuntu)

Enviado em 08/04/2011 - 11:42h

Ok vcs têm razão obrigado.. axo q o erro aki é outro..
Deixa eu explicar melhor:
Queria pegar uma senha d um arquivo sipado com esse script:

for N in $(seq -w '0' '9999')
do
unzip -uqP $N $1
if test $? -eq 0
then
echo "A senha é: $N"
exit
else
continue
fi
done
echo

Obs: Isso é apenas uma atividade simples que meu professor passou, apenas a carater de informação... e como vcs podem ver é bem facilitado onde a senha so pode ser numeros e obrigatoriamente com 4 algarismos...

O problema é q quando a senha é um numero grande ele da um numero errado,
Exemplo:
se a senha q eu botar for 0022, ele resolve
se a senha q eu botar for 1234, ele retorna um numero incorreto

Desde já agradeço por quem ajudar...


5. Re: Conversao de tipo de dados (cast)

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 08/04/2011 - 12:54h

Cara ... que coisa mais doida isso ein ...
pelo que vi ele gera um erro (RC=2), mas mesmo assim cria o arquivo com zero bytes quando ocorre o erro novamente ele dá RC=0.

Coisa de maluco ... vou dar uma olhada com calma ... tavez seja bug mesmo, mas acho que isso aqui pode funcionar como paliativo ... tenta ai!

for N in $(seq -w '0' '9999')
do
unzip -oqP $N $1
if test $? -eq 0
then
echo "$? A senha é: $N"
exit
else
continue
fi
done
echo


6. Re: Conversao de tipo de dados (cast)

Eudijuno
eudijuno

(usa Ubuntu)

Enviado em 08/04/2011 - 14:48h

Boa fdmarph...
Essa sua sugestão funcionou muito bem... Inda naum sei o q faz essas opções ai do unzip... se vc puder explica-las agradeço
Mas mesmo assim obrigado


7. Re: Conversao de tipo de dados (cast)

Mauricio Souza Klein
Hebang

(usa Arch Linux)

Enviado em 08/04/2011 - 14:54h

Olha, eu até gostaria de ajudar, mas realmente não entendi qual seu objetivo com esse script. Pegar senha de um arquivos zipado? Aquele script parece que tenta bater senhas de 0 a 9999 em um arquivo zip e ve qual delas é aceita...

Não entendi muito bem...


8. Re: Conversao de tipo de dados (cast)

Eudijuno
eudijuno

(usa Ubuntu)

Enviado em 08/04/2011 - 15:00h

Olá helbang,
vc entendeu sim, é apenas isso: pegar uma senha de um arquivo zipado, sendo q a senha tenha apenas 4 numeros...
Isso é apenas uma atividade q meu professor passou a carater d informação...
Mas agradeço sua disposição






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts