Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1627 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Projet SUIVI] Attendre la fin d'un processus..

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Projet SUIVI] Attendre la fin d'un processus..

n°387964
ndmax
Posté le 09-05-2003 à 10:21:23  profilanswer
 

Salut!
Bon, comme j'en avais parlé, je vais donc vous exposer
un peu mon petit projet.
Je dois donc réaliser une application qui permette
d'envoyer des fichiers par mail, FTP, disquette, CD...
J'ai différentes tables Paradox qui contiennent
les contacts, destinataires...
 
 
[1ère partie]
Je sélectionne un projet, un destinataire, un média
sur lequel envoyer les fichiers et un émetteur.
Toutes ces informations se trouvent dans les tables.
J'ai décidé de faire une fenêtre de ce type:
 
Projet:
Destinataire:
Média:
Emetteur:
 
et qui comprend une ComboBox et 3 boutons (Précédent,
Suivant et Quitter).
Au fur et à mesure, on effectue une sélection à l'aide
de la ComboBox, puis on clique sur Suivant pour passer
à l'étape suivant, bien entendu ;)
 
Pour l'instant tout cela fonctionne, même si ce n'est pas
encore vraiment optimisé..
 
 
[2e partie]
Il faut maintenant sélectionner les fichiers que l'on
souhaite envoyer. Ceux-ci se trouvent dans un répertoire
qui dépend des choix faits précédemment.
Toutefois, il faut donner la possibilité à l'utilisateur
de pouvoir choisir des fichiers dans un autre répertoire.
 
Ici, j'ai plusieurs interrogations...
Je me suis dit que ce serait plus simple à l'aide d'un
OpenDialog, mais je n'ai pas trouvé comment faire pour
sélectionner plusieurs fichiers d'un seul coup dans
cette boîte de dialogue...
Sinon, sachant que le répertoire ne contiendra que peu de
fichiers, on pourrait aussi afficher ces différents fichiers
dans une ListBox mais là le problème est que un peu moins simple
pour aller chercher des fichiers dans d'autres répertoires...
Au fait, on ne peut pas utiliser une arborescence ??
Dans ces cas-là on pourrait facilement se déplacer dans les
répertoires et sélectionner les fichiers voulus.
 
Vous en pensez quoi ??
 
Merci.


Message édité par ndmax le 13-05-2003 à 10:15:46
mood
Publicité
Posté le 09-05-2003 à 10:21:23  profilanswer
 

n°388004
ndmax
Posté le 09-05-2003 à 11:02:31  profilanswer
 

Bon, j'ai testé avec une TOpenDialog et j'ai mis
l'option pour permettre la sélection multiple.

n°388100
ndmax
Posté le 09-05-2003 à 12:20:55  profilanswer
 

Une fois que tous mes fichiers sont sélectionnés, je souhaite
en connaître uniquement le nom, sans avoir le chemin complet..
Pour l'instant, en faisant OpenDialog.Files.Strings[i] j'ai
le nom complet (chemin compris).
Je sais qu'il existait une méthode pour obtenir juste
le nom du fichier, mais je ne la trouve plus et je ne sais
pas si elle est applicable ici..

n°388364
ndmax
Posté le 09-05-2003 à 16:05:03  profilanswer
 

J'aimerais savoir cette fois de quelle façon on peut
obtenir la taille d'un fichier à l'aide de son nom absolu  :??:  
 
Merci.

n°388711
Ciler
Posté le 09-05-2003 à 20:45:35  profilanswer
 

Ndmax a écrit :

Une fois que tous mes fichiers sont sélectionnés, je souhaite
en connaître uniquement le nom, sans avoir le chemin complet..
Pour l'instant, en faisant OpenDialog.Files.Strings[i] j'ai
le nom complet (chemin compris).
Je sais qu'il existait une méthode pour obtenir juste
le nom du fichier, mais je ne la trouve plus et je ne sais
pas si elle est applicable ici..


 
ExtractFileName(<nom complet> );


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
n°389841
Crazy-Eagl​e
Posté le 11-05-2003 à 18:48:12  profilanswer
 

nom complet ? ... nom du fichier tu veux dire

n°390286
ndmax
Posté le 12-05-2003 à 12:32:57  profilanswer
 

Ok, c'est bon pour ça, merci!
Maintenant, disons que je suis à la 3e partie.
 
[3e partie]
Il faut cette fois que je compresse des fichiers
afin des les envoyer plus facilement par mail
notamment. Puis, si la taille de ces derniers
est trop grosse pour être acceptée dans un mail,
je devrais les couper en plusieurs parties
et envoyer un mail par partie bien entendu !
 
Le petit problème qui se pose ici est que je dois
lancer des commande DOS, pour zipper dans un premier temps.
Cette commande sera du style :
c:\winzip\winzipse.exe fichier param
Sur l'ancien programme, fait en dBASE IV, le
paramètre s'appelait ainsi : @standard.inp
mais là je ne sais pas trop si je vais devoir
mettre le '@' (j'en doute) ou si je devrais mettre
autre chose..
 
Et puis, le gros problème est que je ne sais pas
comment lancer cette commande..... HELP !!
antp m'avait donné un exemple sur un autre topic,
mais je crois qu'il n'est pas applicable ici..
 
Que puis-je faire ??
Merci !

n°390633
ndmax
Posté le 12-05-2003 à 16:20:37  profilanswer
 

Je souhaite savoir quand un processus se termine..
Dans une boucle, je lance plusieurs fois WinzipSE mais
je ne peux pas les lancer en même temps, il faut donc
que j'attende que chacun se termine avant de reprendre ma boucle.
 
Pour cela, dans l'ancien programme, il fallait comparer
la taille du ZIP et celle de l'EXE créé et attendre que
celle de ce dernier soit supérieure.
Mais bon, je pense que c'est vraiment une mauvaise méthode.
 
Est-ce que le fichier que WinzipSE créé ne peut être
perçu par Delphi uniquement lorsque le processus est fini ??
Dans ce cas, je pense qu'il serait plus simple d'attendre
la création du fichier EXE, avant de relancer la boucle..
 
Vous en pensez quoi ??
Merci.

n°390644
ndmax
Posté le 12-05-2003 à 16:27:30  profilanswer
 

J'ai vu aussi qu'il y avait une fonction Wait
(pour le MediaPlayer) mais est-ce que l'on peut
utiliser une fonction de ce style ??

n°390677
ndmax
Posté le 12-05-2003 à 16:47:35  profilanswer
 

Personne ne peut m'aider ??
SVP, ça me bloque !!
 
Merci.

mood
Publicité
Posté le 12-05-2003 à 16:47:35  profilanswer
 

n°391434
ndmax
Posté le 13-05-2003 à 10:19:36  profilanswer
 

Là je bloque vraiment, je ne vois pas trop comment je peux m'en tirer..  :??:  
Il faut que j'arrive à savoir quand le processus de création du Self-Extractor se termine, afin de pouvoir en relancer un second juste après. En effet, si 2 tels processus se lancent en même temps, seul un seul sera exécuté..
 

n°391607
ndmax
Posté le 13-05-2003 à 11:06:07  profilanswer
 

J'ai pensé faire un

Code :
  1. while not FileExists(fichier)


mais mon appli a l'air de boucler à fond......

n°392958
ndmax
Posté le 14-05-2003 à 09:43:22  profilanswer
 

Bon, je suis parvenu à un semblant de "réussite"..
En fait, j'ajoute chaque commande que je souhaite
effectuer dans un BATCH que je lance ensuite.
 
Ainsi, il n'y a plus d'erreur comme quoi 2 instances
de WinzipSE se lancent en même temps.
 
Par contre, le seul problème est que lorsque je lance
mon BATCH, celui-ci n'est pas encore créé,
il n'apparaît que peu de temps après !!!!!!
Comment puis-je faire pour attendre la création de ce
fichier BATCH pour pouvoir le lancer ensuite ??
 
Merci.
 
PS: je crée mon BATCH ainsi

Code :
  1. echo winzipse.exe zipfile.zip > batch.bat

n°394344
bbabar10
Posté le 14-05-2003 à 21:55:39  profilanswer
 

J'ai eu ce probleme sous VB.
Moi la soluce que j'ai trouvé était de mettre les commandes complete dans le Batch et de lancer celui ci.  :p  
 
Ex:
rar a archive.arj nomdesfichiers
rar a archive1.arj nomdesfichiers1
etc....
 
Et là y'avait qu'une seule session RAR a la fois  ;)
 
Pour voir si ton Batch est créé, tu test avec un "If existfile"


Message édité par bbabar10 le 14-05-2003 à 22:00:54
n°394525
ndmax
Posté le 14-05-2003 à 23:52:35  profilanswer
 

Oui, le BATCH c'est comme ça que j'ai fait aussi.
Mais si je fais un FileExists, il va me retourner faux obligatoirement au début, car le fichier sera réellement créé quelques secondes ensuite..
J'ai testé une boucle

Code :
  1. while not FileExists(fichier) do
  2. begin
  3. end;


mais bien entendu ça fait ramer à fond !!!!!!!
 
Je ne sais plus quoi faire..

n°394560
bossamiral​2
Ctrl+Alt+Del
Posté le 15-05-2003 à 01:43:18  profilanswer
 

Ndmax a écrit :

Oui, le BATCH c'est comme ça que j'ai fait aussi.
Mais si je fais un FileExists, il va me retourner faux obligatoirement au début, car le fichier sera réellement créé quelques secondes ensuite..
J'ai testé une boucle

Code :
  1. while not FileExists(fichier) do
  2. begin
  3. end;


mais bien entendu ça fait ramer à fond !!!!!!!
 
Je ne sais plus quoi faire..


 
utilise un timer, cela évitera de bouffer toute les resources cpu

n°394614
ndmax
Posté le 15-05-2003 à 08:59:14  profilanswer
 

Tu peux m'expliquer un peu l'utilisation d'un time STP ??
Je vais essayer de voir ce que je peux faire, mais
si tu peux me guider..
 
Merci.  :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Projet SUIVI] Attendre la fin d'un processus..

 

Sujets relatifs
[C/C++] Dialoguer avec un processus fils[Unix] signaux et processus
[C] Timeout dans un processus ?[ConTEXT] Executer 2 app avec 1 Execute key / Bcc compiler projet
Suivi d'un TP en direct[Vb.net] Intégration d'image au projet....
TCP-IP Pb recv bloquant et terminaison de processusprojet info -> circuits électroniques (en C)
[projet] Quel langage de programmation utiliser ? (active directory...[php-mysql] Idées de projet??
Plus de sujets relatifs à : [Projet SUIVI] Attendre la fin d'un processus..


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR