begin process at 2012 02 17 10:40:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

General

 > 

Garder le contrôle d'un programme qui rame


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Garder le contrôle d'un programme qui rame

mardi 7 avril 2009 à 16:56:25 | Garder le contrôle d'un programme qui rame

W@$h!

Membre Club
Bonjour à tous,

Voilà mon problème : je suis en train de develloper un programme en VB6.
Ce programme fait un traitement sur de gros fichier (type films a 700 Mo) en utilisant une DLL que j'ai programmé en C.

Le programme fonctionne sans souci, cela dit pendant le traitement, je perd le contrôle du programme ("form1 (Ne répond pas)")
Le problème, c'est que je me suis bien appliqué a programmer une form qui indique l'etat d'avancement du programme, mais rien à faire, elle plante dès l'ouverture...

Coment pourrais-je éviter cela?

Merci d'avance
mardi 7 avril 2009 à 17:43:35 | Re : Garder le contrôle d'un programme qui rame

jmf0

Membre Club

Bonjour,

en modifiant ton code (qu'on ne voit pas ...!) là où il convient de le faire et comme il convient de le faire ...

mardi 7 avril 2009 à 17:55:30 | Re : Garder le contrôle d'un programme qui rame

W@$h!

Membre Club
voici le code :

    Frame3.Visible = True                          'C'est la Frame qui informe de l'etat d'avancement     
    
     
    For i = 0 To List1.ListCount - 1          
'Les fichiers de la listbox sont les fichiers à traiter
       
       OriginalFile = File1.Path + "\" + List1.List(i)
        FinalFile = OriginalFile + ".cpt"
       
        Label4.Caption = List1.List(i)      'On affiche le nom du fichier en cours de traitement dans la frame d'avancement
        
        retour = Traitement(OriginalFile, FinalFile, Text1.Text)                'La fonction traitement est la fonction de ma DLL
    Next
    
    Frame3.Visible = False                      
'On masque la frame d'avancement, normal : c'est fini...

Le problème est que la premiere ligne, l'affichage de la frame3, ne se fait pas! Et ma form devient "flou" (sous vista, c'est un signe que ca va pas... :) )
mardi 7 avril 2009 à 18:04:28 | Re : Garder le contrôle d'un programme qui rame

jmf0

Membre Club

Cà, ce n'est que le code de traitement d'une liste déjà remplie et l'affichage, juste avant, de ton Frame3

Ca ne nous dit pas vraiment grand chose ...

On peut toutefois deviner un tout petit peu :

Mets voir un DoEvents à la ligne  juste après
Label4.Caption = List1.List(i)

Je ne comprends par contre pas pourquoi ton Frame n'est pas visible dès la première ligne !
Mets un Doevents juste après égalemen,t + un Frame3.Refresh

mardi 7 avril 2009 à 18:13:46 | Re : Garder le contrôle d'un programme qui rame

W@$h!

Membre Club
C'est pourtant tout le code que j'ai dans mon projet VB, le traitement des fichier étant fait la DLL que j'ai programmer en C...

Pour la frame3, c'est simplement un "effet de style", elle n'apparait que lors du traitement des données.

Est-ce que je devrais plutot me tourner vers une modification de ma DLL??

Pour faire cours, la DLL ouvre le fichier en binaire, et fait un XOR octet par octet avec le Text1.Text passé en parametre...

Je le repete encore une fois : tout fonctionne, j'ai simplement une perte du controle de la form le temp du traitement
mardi 7 avril 2009 à 18:29:49 | Re : Garder le contrôle d'un programme qui rame

jmf0

Membre Club

Je ne comprends pas...

 

Quiestions :

1) ton OS ?

2) dans quel évènement as-tu mis ce code ?

3) as-tu tenté ce que je t'ai dit ?

mardi 7 avril 2009 à 18:38:06 | Re : Garder le contrôle d'un programme qui rame

W@$h!

Membre Club

1) Mon OS : Vista

2) Evenement : Lors du clic sur le bouton de départ

3) J'ai tenté ce que tu m'a dit. La frame s'affiche effectivement, mais mon programme passe toujour au bout de 5 sec en mode (Ne répond pas)...

 

mardi 7 avril 2009 à 18:45:07 | Re : Garder le contrôle d'un programme qui rame

jmf0

Membre Club

Alors :

Sous Vista : essaye de désactiver AERO, s'il est activé.
Pour le reste (ton programme qui ne répond plus) : dur dur ...

C'est soit (plus probablement) un problème avec un chemin dans ta listbox, soit un problème dans ta fonction C

5 secondes, dis-tu ? curieux, çà ...

Mets un compteur sur la variable i ou passe en mode debug pour voir sur quel i elle plante !

mardi 7 avril 2009 à 18:47:25 | Re : Garder le contrôle d'un programme qui rame

jmf0

Membre Club
Attends ....
Regarde aussi l'évolution de l'utilisation de tes ressources... à tout hasard ...
Ta fonction C crée-t-elle des objets ? Les supprime-t-elle au fur et à mesure (lorsque terminée, au moins) ?
mardi 7 avril 2009 à 21:21:51 | Re : Garder le contrôle d'un programme qui rame

W@$h!

Membre Club

Merci pour ton aide jmf0!

Pour ce qui est de AERO, je sais pas trop ce que sais, mai bon... Google est mon ami!

Je ne pense pas que ce soit un probleme dans la listbox ou avec la variable i, puisque quand je fait un test avec un seul fichier dans cette listbox, le programme rame quand même! Et pour ce qui est des objet, ma fonction étant en C, je ne travaille pas sur des objets.

A tout hasard, je poste le code de ma fonction en C, même si j'ai bien conscience que sa place serais plutot sur Cppfrance :)

int DLL_EXPORT _stdcall Xcrypt (char * NomFichier, char * NomFichierCrypt, char * clef)
{
FILE *fichier;
FILE *fichierCrypt;
char Caract;
int PosClef, LongClef;
PosClef=0;
LongClef = strlen(clef);

fichier = fopen(NomFichier, "rb");
fichierCrypt = fopen(NomFichierCrypt, "wb");

fread(&Caract, sizeof(Caract), 1, fichier);

while(!feof(fichier))
{
    Caract = Caract^clef[PosClef];
    PosClef++;
    if(PosClef==LongClef) PosClef=0;

    fwrite(&Caract, sizeof(Caract), 1, fichierCrypt);
    fread(&Caract, sizeof(Caract), 1, fichier);
}

fclose(fichier);
fclose(fichierCrypt);

return(1);
}

Je pense tout simplement que mon prog est trop gourmand en ressources. Mais j'ai déja eu des programme, comme par exemple un programme de récupération de mot de passe d'archive en brute force, qui testait 300 mot de passe à la seconde, et qui utilisait 90% du proc en moyenne. Et il ne plantait pas! Et on pouvais suivre en direct les test de mots de passe...
Donc il doit y avoir un moyen d'éviter cela... Mais lequel?

En tous cas merci a toi de prendre le temps de m'aider...



Cette discussion est classée dans : problème, programme, contrôle, garder, rame


Répondre à ce message

Sujets en rapport avec ce message

programme vb [ par Seb ] Bonjour,je viens de créer un programme VB6 que j'ai déployé avec l'assistant d'empaquetage.A l'installation du logiciel j'ai deux problème.1 * j'ai un Problème de license [ par yakcutter ] J'utilise VBA et lorsque je veux créer un contrôle Microsoft FlexGrid (et même certains autres) il me lance " Le contrôle n'a pas été créé parce qu'il Problème avec mon programme.. arretz le prog en cas d'erreur... [ par Flynn ] Bonjour :)je me susi crée une application qui permet de saisir un pass, un pseudo et un numéro qui vous identifie.. Je comptais mettre sur programme s Problème avec un MsgBox? [ par m.bazier ] Suite à une macro qui créer un nouveau fichier sur excel, je remplace un fichier existant; Tout le programme fonctionne bien jusqu'au moment ou un Msg désespéré - Problème de décimal - VB6 - Access [ par Zepp ] Bonjour,ça fait quelques temps que je suis bloqué au même endroit dans mon programme. Ce problème semble très ridicule et j'imagine qu'il doit être s problème étrange - VB6 - Access - Décimal [ par Zepp ] Bonjour,ça fait quelques temps que je suis bloqué au même endroit dans mon programme. Ce problème semble très ridicule et j'imagine qu'il doit être si Problème avec la lecture.. [ par spliter ] dans mon programme que je fais, lorsque la feuille load je lis dans mon fichier projet3.txt et ensuite c'est afficher dans un textbox.Mais quand c'est Problème pour arrêter un programme dans le gestionnaire des tâche!!!!!HELP ME [ par xfile ] Je voudrais savoir quel est le code pour pouvoir arrêter un programme quelquonque dans la barre des tâches ou si vous préférez, dans le gestionnaire d Processus qui "freeze" en plein traitements. [ par KSK ] Bonjour,J'ai un gros problème avec un programme VB. C'est un programme qui fait divers traitements, et parmi ces traitements il y'a une fonction qui f


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales