Accueil > Forum > > > > Garder le contrôle d'un programme qui rame
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!
|
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
|
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!
|
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
|
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!
|
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
|
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!
|
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
|
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
|
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!
|
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
Livres en rapport
|
Derniers Blogs
ASYNC/AWAIT: COMPRENDRE COMMENT CA MARCHEASYNC/AWAIT: COMPRENDRE COMMENT CA MARCHE par fathi
Tout le monde est unanime pour dire que la programmation multi-thread et asynchrone est en train de devenir un sujet incontournable. Beaucoup de choses sont arrivées avec le framework 4 pour le code parallèle (TPL, PLinq,.) et bientôt, on va avoir l...
Cliquez pour lire la suite de l'article par fathi PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS !PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS ! par Etienne Margraff
J'ai récemment eu un problème pour obtenir l'intelliTrace sur un site web dans IIS. Il n'y avait pas de message d'erreur, rien dans le journal d'évènement Windows, et après 3 appels à une voyante, 2 visites chez un marabou, j'ai failli me résign...
Cliquez pour lire la suite de l'article par Etienne Margraff OFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONSOFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONS par junarnoalg
De nombreuses entreprises font le choix de SharePoint Online, service fourni au travers de l'offre de Microsoft Office 365. S'il est vrai que ce choix apporte un grand nombre d'avantages; rapidité de mise en œuvre, disponibilité, large couvertu...
Cliquez pour lire la suite de l'article par junarnoalg PRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGEPRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGE par richardc
http://www.c2idotnet.com/articles/presentation-des-api-rest-de-windows-azure-lister-les-comptes-de-storage
Désolé pour "toto", mais c2i existait avant blogs.developpeur.org et c'est mon site "officiel" ;-) ...
Cliquez pour lire la suite de l'article par richardc
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|