Antes de mais nada, baixa Prisma-1.0.94 – 12/10/2015 ou mais recente.
Com o seguinte exemplo você poderá fazer um mini programa de fazer downloads da internet com links absolutos. Só usar a criatividade e fazer a interface gráfica com igbr.
Segue o código comentado:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
inclua'igbr' //função callback: funcao copiando(cur , tot ) result = (cur * 100) / tot result = mat.separe(result);//pega somente a parte inteira da fracao //ex: imprima( mat.separe(3.409 ) //saida = 3 0.409 imprima('porcentagem:', result,'%', mat.separe( cur / 1024 ) ,'de:' , mat.separe( tot / 1024 ) , 'KB' ); fim //carregue o arquivo 'uri' em uma variável com a função ig.arquivo_uri("http://..."); origem = ig.arquivo_uri('http://linguagemprisma.net/music/teste.mp3'); //carregue um arquivo destino com a função ig.arquivo("arquivo"); destino = ig.arquivo('zz_teste_copy.mp3'); //agora basta chamar a função para copiar passando os arquivos carregados acima: ig.arquivo_copie( origem , destino , ig.tipo_copia_sobreescrita , 'copiando(%s , %s )' ); //argumentos são:( arquivo_uri, arquivo, tipo, função_callback ); poe'fim copia'; se result < 100 entao poe'falha no download tente de novo' fim leia(); |
Obs.: origem é a url da internet sempre completo com o http:\\site.com passada para função ig.arquivo_uri(…);
destino é o local onde será salvo já com o nome.
Função callback (chamada de retorno) é uma string executando a função criada anteriormente, pode deixar vazias as aspas se não quiser usar uma função callback. Esta função é chamada durante todo o processo de transferência e os sinais de escape “%s” são trocados dentro da função pelo tamanho transferido e tamanho total do arquivo, ou seja, você pode medir a transferência se usar a função callback;
Optando por não usar fica assim: ig.arquivo_copie( origem , destino , ig.tipo_copia_sobreescrita , ” ” );
O argumento ig.tipo_copia_sobreescrita faz com que o arquivo destino seja sobre-escrito caso já exista um com o mesmo nome. Outros tipos de cópia:
- ig.tipo_copia_nenhum = tipo em branco.
- ig.tipo_copia_sobreescrita = copia por cima de um arquivo caso já exista um com o mesmo nome do destino.
- ig.tipo_copia_backup = Faz o backup (cópia de segurança)
- ig.tipo_copia_nao_siga_links_simbolicos = não segue links simbólicos.
- ig.tipo_copia_toda_metadata = copia toda a metadata.
- ig.tipo_copia_nao_delete_ao_mover = não apaga o arquivo original em processos de mover arquivo.
- ig.tipo_copia_target_padrao_permis = copia o alvo em permissão padrão.
caso queira passar mais de um tipo, use a função bit32.bor(tipo1, tipo2 , tip3 etc);
Em breve estarei criando mais funções de arquivos em ig a partir do gtk gio.
Bom, qualquer dúvidas pergunte nos comentários ou no fórum Prisma.
até logo.
Att. Adalberto