[R] Barre de progression again (variables dans une boucle)

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

[R] Barre de progression again (variables dans une boucle)

#1

Message par GhostLine »

Salut à tous !

Je rencontre *de nouveau* un problème : j'ai avancé sur mes briques de programme pour l'exploitation de fichiers plats (voir mon précédent topic ici), et je me suis rendu compte que le parcours d'un fichier tel que je le fais est très long. Voici mon code :
► Afficher le texte
Du coup, je me suis interrogé sur la manière de procéder pour faire une barre de progression, qui évoluerai avec $i et $filecountline ($i lignes lues sur un total de $filcountline lignes dans le fichier) ... et je ne sais pas du tout comment faire ^^'

Merci d'avance de votre aide !
Modifié en dernier par GhostLine le jeu. 13 août 2009 08:45, modifié 3 fois.
Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

Re: [..] Barre de progression again (variables dans une boucle)

#2

Message par GhostLine »

Bon, j'ai compris pourquoi c'était lent ^^' je corrige tout à l'heure. Par contre, je veux bien savoir pour la progress bar ^^
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Barre de progression again (variables dans une boucle)

#3

Message par orax »

Quelque chose comme ça ?

Code : Tout sélectionner

#include <File.au3>

$CountLines = _FileCountLines("c:\boot.ini")
ProgressOn("","aaahh")

$fichier_entree=FileOpen("c:\boot.ini",0)

For $i = 1 To $CountLines
    sleep(1000)
    FileReadLine($fichier_entree,$i)
    $pourcentage= $i * 100/$CountLines
    
    ProgressSet($pourcentage, $pourcentage& " %")
Next
sleep(500)
ProgressOff()
FileClose($fichier_entree)
Mais il y a aussi GUICtrlCreateProgress...
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
GhostLine
Niveau 7
Niveau 7
Messages : 342
Enregistré le : jeu. 12 mars 2009 15:28
Localisation : Paris
Status : Hors ligne

Re: [R] Barre de progression again (variables dans une boucle)

#4

Message par GhostLine »

Je vais me pencher là dessus. Merci de ton aide !
martha
Niveau 1
Niveau 1
Messages : 5
Enregistré le : mer. 28 juil. 2010 15:08
Status : Hors ligne

Re: [R] Barre de progression again (variables dans une boucle)

#5

Message par martha »

Salut,
j'aurais aimé savoir pourquoi le programme tout en haut était lent, puisque tu as trouvé:
j'utilise un programme similaire quoique plus simple, il met 30s (compilé) alors que la même
chose en Perl sur le même PC prend une fraction de seconde!!!

merci...
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [R] Barre de progression again (variables dans une boucle)

#6

Message par SagePourpre »

@martha

Tu as pensé à enlever le sleep(1000) du code ci-haut ?
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
martha
Niveau 1
Niveau 1
Messages : 5
Enregistré le : mer. 28 juil. 2010 15:08
Status : Hors ligne

Re: [R] Barre de progression again (variables dans une boucle)

#7

Message par martha »

Salut,

Oui, j'y avais pensé.
au cas où, voici le code que j'avais fait en guise d'essai:

Code : Tout sélectionner

#include <File.au3>

$i = 0
$recherche = '(?i)motifrecherche' 
$fichier_entree = "total.csv"

$fichier_sortie = FileOpen ( "resultat.txt" , 1 )
$CountLines = _FileCountLines($fichier_entree)
Dim $tableau_resultat[$CountLines]
$handle_fichier_entree = FileOpen($fichier_entree,0)
While 1
    $ligne = FileReadLine($handle_fichier_entree,$i+1)
    If @error = -1 Then ExitLoop 
    If StringRegExp ( $ligne, $recherche ) Then
            FileWriteLine ( $fichier_sortie, $ligne ) 
    EndIf   
$i=$i+1
WEnd

MsgBox(0, "OK", "fin de la recherche")
Ca marchait, mais c'était lent. Et je ne vois pas pourquoi.

(Du coup j'ai gardé autoit pour faire le GUI (entrée du motif de recherche, type de recherche...)
Puis autoit fait appel à un petit programme Perl qui lui envoie les résultats sur STDOUT...
un peu barbare mais ça marche...)

Merci à qui aurait une idée!
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [R] Barre de progression again (variables dans une boucle)

#8

Message par SagePourpre »

@Martha

Code : Tout sélectionner

$ligne = FileReadLine($handle_fichier_entree)
Laisse le paramètre de ligne vide. Comme tu es dans une boucle While, La fonction
lira ton fichier ligne pas ligne. Toute référence à la variable $i peut donc être effacée.
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Répondre