IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ruby Discussion :

Téléchargement de fichiers : alimenter une jauge de progression


Sujet :

Ruby

  1. #1
    Membre du Club Avatar de Fork Bomb
    Homme Profil pro
    En recherche d’un premier emploi « Technicien Système et Réseau »
    Inscrit en
    Décembre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : En recherche d’un premier emploi « Technicien Système et Réseau »

    Informations forums :
    Inscription : Décembre 2012
    Messages : 29
    Points : 42
    Points
    42
    Par défaut Téléchargement de fichiers : alimenter une jauge de progression
    Bonsoir !
    Dans le cadre d’un projet perso (dont je vois le bout), j’essaye d’alimenter une jauge de progression de téléchargement de fichiers.
    Pour cela, j’ai mélangé deux scripts :
    1/ Le fichier gauge.rb de MrDialog
    2/ Le fichier download-progress.rb (sur un autre Github)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    #!/usr/bin/env ruby
    # -*- coding: utf-8 -*-
    require 'net/http'
    require 'mrdialog'
     
    # --------------------------------------------------------------------
    $height = 20
    $width = 70
    $percent = 0
    $dialog = MRDialog.new
    $dialog.clear = false
    $dialog.title = "Titre de la fenètre"
    $windowTitle = "Sous-titre de la fenètre."
    # -------------------------------------------------------------------- 
     
    def download(url)
      Thread.new do
        thread = Thread.current
        thread[:body] = []
        thread[:done] = 0
        $url = URI(url)
        Net::HTTP.new($url.host, $url.port).get2($url.path) do |res|
          length = thread[:length] = res.content_length
          open Final_name, 'w' do |file|
            res.read_body do |segment|
              file.write segment
              $thread[:body] << segment
              $thread[:done] += segment.length
              $thread[:progress] = thread[:done].fdiv(length)
            end
          end
        end
      end
    end
    Final_name="UbuntuMini.iso"
    $thread = download("http://archive.ubuntu.com/ubuntu/dists/wily/main/installer-amd64/current/images/netboot/mini.iso")
    #puts "%.2f" % (thread[:progress]*100) until thread.join(1)
     
    def fileDownloader
      $dialog.gauge($windowTitle, $height, $width) do |p|
        p.puts "XXX"
        until $thread.join(1)
          p.puts "%.2f" % ($thread[:progress]*100)
        end
        # puts "%.2f" % ($thread[:progress]*100) until $thread.join(1)
        p.puts $windowTitle
        p.puts "XXX"
      end
    end
    fileDownloader
    Je pense que je suis sur le point d’y arriver mais je bloque sur comment terminer.
    Si quelqu’un à une idée…

  2. #2
    Membre du Club Avatar de Fork Bomb
    Homme Profil pro
    En recherche d’un premier emploi « Technicien Système et Réseau »
    Inscrit en
    Décembre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : En recherche d’un premier emploi « Technicien Système et Réseau »

    Informations forums :
    Inscription : Décembre 2012
    Messages : 29
    Points : 42
    Points
    42
    Par défaut
    Je vois beaucoup de lectures mais peu de réponses.
    Ma question est-elle trop compliquée/technique ?
    Aurais-je été impoli ?
    Est-ce tellement évident que j’aurais dû trouver tout seul ?
    ---
    Où est mon problème ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 7
    Points : 15
    Points
    15
    Par défaut
    Salut,

    En fait, la "gauge" s'attends à recevoir un second "XXX" avant de se mettre à jour, les données étant ce que tu lui envois entre les deux "XXX".

    Le until crée une boucle entre les deux "XXX", et donc la gauge n'est jamais rafraîchie.

    Ton code deviens donc :

    Code ruby : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     
    def fileDownloader
      $dialog.gauge($windowTitle, $height, $width) do |p|
     
        until $thread.join(1)
          p.puts "XXX"
          p.puts "%.2f" % ($thread[:progress]*100)
          p.puts $windowTitle
          p.puts "XXX"
        end
        # puts "%.2f" % ($thread[:progress]*100) until $thread.join(1)
     
      end
    end

  4. #4
    Membre du Club Avatar de Fork Bomb
    Homme Profil pro
    En recherche d’un premier emploi « Technicien Système et Réseau »
    Inscrit en
    Décembre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : En recherche d’un premier emploi « Technicien Système et Réseau »

    Informations forums :
    Inscription : Décembre 2012
    Messages : 29
    Points : 42
    Points
    42
    Par défaut
    Merci à toi, ça marche du feu de d.ieu \o/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD17] WINDEV Manipulation d'une jauge de progression
    Par massy2013 dans le forum WinDev
    Réponses: 24
    Dernier message: 05/11/2014, 07h45
  2. Lien de téléchargement de fichier dans une page
    Par Publicnew dans le forum ASP.NET
    Réponses: 10
    Dernier message: 21/01/2013, 11h05
  3. [SP-2010] bloquer le téléchargement de fichiers dans une bibliothèque
    Par jff42 dans le forum SharePoint
    Réponses: 3
    Dernier message: 26/04/2011, 10h11
  4. Réponses: 5
    Dernier message: 28/05/2009, 23h14
  5. [SP-2007] Téléchargement de fichiers dans une bibliothèque
    Par aladdin.ensi dans le forum SharePoint
    Réponses: 1
    Dernier message: 19/05/2009, 10h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo