Niouzes.org  

Précédent   Niouzes.org > Forum > Newsgroup fr.comp.lang.* Forum > Newsgroup fr.comp.lang.pascal
S'inscrire FAQ Membres Calendrier Recherche Messages du jour Marquer les forums comme lus



Réponse

 

LinkBack Outils de la discussion Modes d'affichage
  #1 (permalink)  
Vieux 14/07/2007, 17h45
Didier
 
Messages: n/a
Par défaut ShellExecute et commande "dos"

Bonjour.
Je cherche, en Delphi 6, à exécuter : cmd /k ipconfig /all > tempo.txt,
puis à relire le résultat pour l'écrire dans un TMemo.
Ma commande s'exécute bien, le fichier tempo.txt est bien créé avec le
bon contenu, mais l'ouverture de ce fichier échoue la première fois. Si
je reclique sur le bouton lançant l'ensemble (le fichier tempo.txt
existe donc déjà) tout se passe bien.
Si je comprends bien, je ne peux pas lire le fichier juste créé.
Je n'arrive pas à comprendre pourquoi.
Mon code :

if ShellExecute(0,'open','cmd',' /k ipconfig /all > c:\tempo.txt',nil,
SW_HIDE) >=32 then
begin
//lecture du fichier tempo.txt et affichage dans resultat
resultat.Lines.clear;
AssignFile(f,'c:\tempo.txt');
{$I-}
reset(f);
{$I+}
if IOResult = 0 then
begin
while not eof(f) do
begin
readln( f,s);
resultat.Lines.add(s);
end;
closefile(f);
end
else
MessageDlg('Fichier non créé', mtWarning, [mbOk], 0);
end

Si vous avez un idée, je suis preneur.
L'erreur est sans doute grossière, mais je ne suis qu'un amateur
autodidacte.
Merci.
Didier.
Réponse avec citation
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Niouzes.org
Standard Sponsored Links

  #2 (permalink)  
Vieux 15/07/2007, 08h41
Jeff
 
Messages: n/a
Par défaut Re: ShellExecute et commande "dos"

Je suis un peu novice aussi, mais ton problème ne viendrait-il pas que lors
de la création de ton fichier, tu ne le fermes pas et donc étant encore
ouvert en écriture tu ne peux le lire ?

"Didier" <nospam***nospamfree.fr.invalid> a écrit dans le message de news:
4698fdbc$0$25906$ba4acef3***news.orange.fr...
> Bonjour.
> Je cherche, en Delphi 6, à exécuter : cmd /k ipconfig /all > tempo.txt,
> puis à relire le résultat pour l'écrire dans un TMemo.
> Ma commande s'exécute bien, le fichier tempo.txt est bien créé avec le bon
> contenu, mais l'ouverture de ce fichier échoue la première fois. Si je
> reclique sur le bouton lançant l'ensemble (le fichier tempo.txt existe
> donc déjà) tout se passe bien.
> Si je comprends bien, je ne peux pas lire le fichier juste créé.
> Je n'arrive pas à comprendre pourquoi.
> Mon code :
>
> if ShellExecute(0,'open','cmd',' /k ipconfig /all > c:\tempo.txt',nil,
> SW_HIDE) >=32 then
> begin
> //lecture du fichier tempo.txt et affichage dans resultat
> resultat.Lines.clear;
> AssignFile(f,'c:\tempo.txt');
> {$I-}
> reset(f);
> {$I+}
> if IOResult = 0 then
> begin
> while not eof(f) do
> begin
> readln( f,s);
> resultat.Lines.add(s);
> end;
> closefile(f);
> end
> else
> MessageDlg('Fichier non créé', mtWarning, [mbOk], 0);
> end
>
> Si vous avez un idée, je suis preneur.
> L'erreur est sans doute grossière, mais je ne suis qu'un amateur
> autodidacte.
> Merci.
> Didier.



Réponse avec citation
  #3 (permalink)  
Vieux 15/07/2007, 08h41
Jeff
 
Messages: n/a
Par défaut Re: ShellExecute et commande "dos"

Je suis un peu novice aussi, mais ton problème ne viendrait-il pas que lors
de la création de ton fichier, tu ne le fermes pas et donc étant encore
ouvert en écriture tu ne peux le lire ?

"Didier" <nospam***nospamfree.fr.invalid> a écrit dans le message de news:
4698fdbc$0$25906$ba4acef3***news.orange.fr...
> Bonjour.
> Je cherche, en Delphi 6, à exécuter : cmd /k ipconfig /all > tempo.txt,
> puis à relire le résultat pour l'écrire dans un TMemo.
> Ma commande s'exécute bien, le fichier tempo.txt est bien créé avec le bon
> contenu, mais l'ouverture de ce fichier échoue la première fois. Si je
> reclique sur le bouton lançant l'ensemble (le fichier tempo.txt existe
> donc déjà) tout se passe bien.
> Si je comprends bien, je ne peux pas lire le fichier juste créé.
> Je n'arrive pas à comprendre pourquoi.
> Mon code :
>
> if ShellExecute(0,'open','cmd',' /k ipconfig /all > c:\tempo.txt',nil,
> SW_HIDE) >=32 then
> begin
> //lecture du fichier tempo.txt et affichage dans resultat
> resultat.Lines.clear;
> AssignFile(f,'c:\tempo.txt');
> {$I-}
> reset(f);
> {$I+}
> if IOResult = 0 then
> begin
> while not eof(f) do
> begin
> readln( f,s);
> resultat.Lines.add(s);
> end;
> closefile(f);
> end
> else
> MessageDlg('Fichier non créé', mtWarning, [mbOk], 0);
> end
>
> Si vous avez un idée, je suis preneur.
> L'erreur est sans doute grossière, mais je ne suis qu'un amateur
> autodidacte.
> Merci.
> Didier.



Réponse avec citation
  #4 (permalink)  
Vieux 15/07/2007, 14h08
Didier
 
Messages: n/a
Par défaut Re: ShellExecute et commande "dos"

Jeff a écrit :
> Je suis un peu novice aussi, mais ton problème ne viendrait-il pas que lors
> de la création de ton fichier, tu ne le fermes pas et donc étant encore
> ouvert en écriture tu ne peux le lire ?
>
> "Didier" <nospam***nospamfree.fr.invalid> a écrit dans le message de news:
> 4698fdbc$0$25906$ba4acef3***news.orange.fr...
>
>>Bonjour.
>>Je cherche, en Delphi 6, à exécuter : cmd /k ipconfig /all > tempo.txt,
>>puis à relire le résultat pour l'écrire dans un TMemo.
>>Ma commande s'exécute bien, le fichier tempo.txt est bien créé avec le bon
>>contenu, mais l'ouverture de ce fichier échoue la première fois. Si je
>>reclique sur le bouton lançant l'ensemble (le fichier tempo.txt existe
>>donc déjà) tout se passe bien.
>>Si je comprends bien, je ne peux pas lire le fichier juste créé.
>>Je n'arrive pas à comprendre pourquoi.
>>Mon code :
>>
>>if ShellExecute(0,'open','cmd',' /k ipconfig /all > c:\tempo.txt',nil,
>>SW_HIDE) >=32 then
>> begin
>> //lecture du fichier tempo.txt et affichage dans resultat
>> resultat.Lines.clear;
>> AssignFile(f,'c:\tempo.txt');
>> {$I-}
>> reset(f);
>> {$I+}
>> if IOResult = 0 then
>> begin
>> while not eof(f) do
>> begin
>> readln( f,s);
>> resultat.Lines.add(s);
>> end;
>> closefile(f);
>> end
>> else
>> MessageDlg('Fichier non créé', mtWarning, [mbOk], 0);
>> end
>>
>>Si vous avez un idée, je suis preneur.
>>L'erreur est sans doute grossière, mais je ne suis qu'un amateur
>>autodidacte.
>>Merci.
>>Didier.

>
>
>

Oui, j'y ai bien pensé, et c'est peut-être le problème.
Pour le créer, j'utilise la redirection de la commande ipconfig /all
vers le fichier : ipconfig /all > c:\tempo.txt.
Donc, en pascal, je ne l'ouvre pas. Si je rajoute un assign et un
closefile, j'ai une erreur aussi.
Merci de ta réponse.
Didier.
Réponse avec citation
  #5 (permalink)  
Vieux 15/07/2007, 14h08
Didier
 
Messages: n/a
Par défaut Re: ShellExecute et commande "dos"

Jeff a écrit :
> Je suis un peu novice aussi, mais ton problème ne viendrait-il pas que lors
> de la création de ton fichier, tu ne le fermes pas et donc étant encore
> ouvert en écriture tu ne peux le lire ?
>
> "Didier" <nospam***nospamfree.fr.invalid> a écrit dans le message de news:
> 4698fdbc$0$25906$ba4acef3***news.orange.fr...
>
>>Bonjour.
>>Je cherche, en Delphi 6, à exécuter : cmd /k ipconfig /all > tempo.txt,
>>puis à relire le résultat pour l'écrire dans un TMemo.
>>Ma commande s'exécute bien, le fichier tempo.txt est bien créé avec le bon
>>contenu, mais l'ouverture de ce fichier échoue la première fois. Si je
>>reclique sur le bouton lançant l'ensemble (le fichier tempo.txt existe
>>donc déjà) tout se passe bien.
>>Si je comprends bien, je ne peux pas lire le fichier juste créé.
>>Je n'arrive pas à comprendre pourquoi.
>>Mon code :
>>
>>if ShellExecute(0,'open','cmd',' /k ipconfig /all > c:\tempo.txt',nil,
>>SW_HIDE) >=32 then
>> begin
>> //lecture du fichier tempo.txt et affichage dans resultat
>> resultat.Lines.clear;
>> AssignFile(f,'c:\tempo.txt');
>> {$I-}
>> reset(f);
>> {$I+}
>> if IOResult = 0 then
>> begin
>> while not eof(f) do
>> begin
>> readln( f,s);
>> resultat.Lines.add(s);
>> end;
>> closefile(f);
>> end
>> else
>> MessageDlg('Fichier non créé', mtWarning, [mbOk], 0);
>> end
>>
>>Si vous avez un idée, je suis preneur.
>>L'erreur est sans doute grossière, mais je ne suis qu'un amateur
>>autodidacte.
>>Merci.
>>Didier.

>
>
>

Oui, j'y ai bien pensé, et c'est peut-être le problème.
Pour le créer, j'utilise la redirection de la commande ipconfig /all
vers le fichier : ipconfig /all > c:\tempo.txt.
Donc, en pascal, je ne l'ouvre pas. Si je rajoute un assign et un
closefile, j'ai une erreur aussi.
Merci de ta réponse.
Didier.
Réponse avec citation
  #6 (permalink)  
Vieux 16/07/2007, 12h48
Francois Piette
 
Messages: n/a
Par défaut Re: ShellExecute et commande "dos"

> Je cherche, en Delphi 6, à exécuter : cmd /k ipconfig /all > tempo.txt,
> puis à relire le résultat pour l'écrire dans un TMemo.


Au lieu de lancer l'interpéteur de commandes avec une redirection des
sorties, pourquoi ne pas lancer directement IpConfig.exe en redirigeant ses
sortie ?

Voici un exemple:
http://laurent-dardenne.developpez.c...ionConsole.zip

Tu en trouveras d'autres ici:
http://www.google.be/search?q=delphi...le+redirection

PS: Pour une réponse plus rapide, utilise plutôt le forum:
news://news.delphinaute.be/delphi

--
Contribuez à l'effort SSL pour ICS.
Visitez http://www.overbyte.be/eng/ssl.html
--
francois.piette***overbyte.be
Auteur du freeware ICS - Internet Component Suite
Auteur du freeware MidWare - Multi-tiers framework
http://www.overbyte.be



"Didier" <nospam***nospamfree.fr.invalid> a écrit dans le message de
news:4698fdbc$0$25906$ba4acef3***news.orange.fr...
> Bonjour.
> Je cherche, en Delphi 6, à exécuter : cmd /k ipconfig /all > tempo.txt,
> puis à relire le résultat pour l'écrire dans un TMemo.
> Ma commande s'exécute bien, le fichier tempo.txt est bien créé avec le
> bon contenu, mais l'ouverture de ce fichier échoue la première fois. Si
> je reclique sur le bouton lançant l'ensemble (le fichier tempo.txt
> existe donc déjà) tout se passe bien.
> Si je comprends bien, je ne peux pas lire le fichier juste créé.
> Je n'arrive pas à comprendre pourquoi.
> Mon code :
>
> if ShellExecute(0,'open','cmd',' /k ipconfig /all > c:\tempo.txt',nil,
> SW_HIDE) >=32 then
> begin
> //lecture du fichier tempo.txt et affichage dans resultat
> resultat.Lines.clear;
> AssignFile(f,'c:\tempo.txt');
> {$I-}
> reset(f);
> {$I+}
> if IOResult = 0 then
> begin
> while not eof(f) do
> begin
> readln( f,s);
> resultat.Lines.add(s);
> end;
> closefile(f);
> end
> else
> MessageDlg('Fichier non créé', mtWarning, [mbOk], 0);
> end
>
> Si vous avez un idée, je suis preneur.
> L'erreur est sans doute grossière, mais je ne suis qu'un amateur
> autodidacte.
> Merci.
> Didier.



Réponse avec citation
  #7 (permalink)  
Vieux 16/07/2007, 12h48
Francois Piette
 
Messages: n/a
Par défaut Re: ShellExecute et commande "dos"

> Je cherche, en Delphi 6, à exécuter : cmd /k ipconfig /all > tempo.txt,
> puis à relire le résultat pour l'écrire dans un TMemo.


Au lieu de lancer l'interpéteur de commandes avec une redirection des
sorties, pourquoi ne pas lancer directement IpConfig.exe en redirigeant ses
sortie ?

Voici un exemple:
http://laurent-dardenne.developpez.c...ionConsole.zip

Tu en trouveras d'autres ici:
http://www.google.be/search?q=delphi...le+redirection

PS: Pour une réponse plus rapide, utilise plutôt le forum:
news://news.delphinaute.be/delphi

--
Contribuez à l'effort SSL pour ICS.
Visitez http://www.overbyte.be/eng/ssl.html
--
francois.piette***overbyte.be
Auteur du freeware ICS - Internet Component Suite
Auteur du freeware MidWare - Multi-tiers framework
http://www.overbyte.be



"Didier" <nospam***nospamfree.fr.invalid> a écrit dans le message de
news:4698fdbc$0$25906$ba4acef3***news.orange.fr...
> Bonjour.
> Je cherche, en Delphi 6, à exécuter : cmd /k ipconfig /all > tempo.txt,
> puis à relire le résultat pour l'écrire dans un TMemo.
> Ma commande s'exécute bien, le fichier tempo.txt est bien créé avec le
> bon contenu, mais l'ouverture de ce fichier échoue la première fois. Si
> je reclique sur le bouton lançant l'ensemble (le fichier tempo.txt
> existe donc déjà) tout se passe bien.
> Si je comprends bien, je ne peux pas lire le fichier juste créé.
> Je n'arrive pas à comprendre pourquoi.
> Mon code :
>
> if ShellExecute(0,'open','cmd',' /k ipconfig /all > c:\tempo.txt',nil,
> SW_HIDE) >=32 then
> begin
> //lecture du fichier tempo.txt et affichage dans resultat
> resultat.Lines.clear;
> AssignFile(f,'c:\tempo.txt');
> {$I-}
> reset(f);
> {$I+}
> if IOResult = 0 then
> begin
> while not eof(f) do
> begin
> readln( f,s);
> resultat.Lines.add(s);
> end;
> closefile(f);
> end
> else
> MessageDlg('Fichier non créé', mtWarning, [mbOk], 0);
> end
>
> Si vous avez un idée, je suis preneur.
> L'erreur est sans doute grossière, mais je ne suis qu'un amateur
> autodidacte.
> Merci.
> Didier.



Réponse avec citation
  #8 (permalink)  
Vieux 20/07/2007, 10h02
JDB
 
Messages: n/a
Par défaut Re: ShellExecute et commande "dos"

Didier a utilisé son clavier pour écrire :
> Bonjour.
> Je cherche, en Delphi 6, à exécuter : cmd /k ipconfig /all > tempo.txt, puis
> à relire le résultat pour l'écrire dans un TMemo.
> Ma commande s'exécute bien, le fichier tempo.txt est bien créé avec le bon
> contenu, mais l'ouverture de ce fichier échoue la première fois. Si je
> reclique sur le bouton lançant l'ensemble (le fichier tempo.txt existe donc
> déjà) tout se passe bien.
> Si je comprends bien, je ne peux pas lire le fichier juste créé.
> Je n'arrive pas à comprendre pourquoi.
> Mon code :
>
> if ShellExecute(0,'open','cmd',' /k ipconfig /all > c:\tempo.txt',nil,
> SW_HIDE) >=32 then
> begin
> //lecture du fichier tempo.txt et affichage dans resultat
> resultat.Lines.clear;
> AssignFile(f,'c:\tempo.txt');
> {$I-}
> reset(f);
> {$I+}
> if IOResult = 0 then
> begin
> while not eof(f) do
> begin
> readln( f,s);
> resultat.Lines.add(s);
> end;
> closefile(f);
> end
> else
> MessageDlg('Fichier non créé', mtWarning, [mbOk], 0);
> end
>
> Si vous avez un idée, je suis preneur.
> L'erreur est sans doute grossière, mais je ne suis qu'un amateur autodidacte.
> Merci.
> Didier.


ShellExecute est asynchrone. il faut attendre la fin du process avant
de lire le résultat.


Réponse avec citation
  #9 (permalink)  
Vieux 20/07/2007, 10h02
JDB
 
Messages: n/a
Par défaut Re: ShellExecute et commande "dos"

Didier a utilisé son clavier pour écrire :
> Bonjour.
> Je cherche, en Delphi 6, à exécuter : cmd /k ipconfig /all > tempo.txt, puis
> à relire le résultat pour l'écrire dans un TMemo.
> Ma commande s'exécute bien, le fichier tempo.txt est bien créé avec le bon
> contenu, mais l'ouverture de ce fichier échoue la première fois. Si je
> reclique sur le bouton lançant l'ensemble (le fichier tempo.txt existe donc
> déjà) tout se passe bien.
> Si je comprends bien, je ne peux pas lire le fichier juste créé.
> Je n'arrive pas à comprendre pourquoi.
> Mon code :
>
> if ShellExecute(0,'open','cmd',' /k ipconfig /all > c:\tempo.txt',nil,
> SW_HIDE) >=32 then
> begin
> //lecture du fichier tempo.txt et affichage dans resultat
> resultat.Lines.clear;
> AssignFile(f,'c:\tempo.txt');
> {$I-}
> reset(f);
> {$I+}
> if IOResult = 0 then
> begin
> while not eof(f) do
> begin
> readln( f,s);
> resultat.Lines.add(s);
> end;
> closefile(f);
> end
> else
> MessageDlg('Fichier non créé', mtWarning, [mbOk], 0);
> end
>
> Si vous avez un idée, je suis preneur.
> L'erreur est sans doute grossière, mais je ne suis qu'un amateur autodidacte.
> Merci.
> Didier.


ShellExecute est asynchrone. il faut attendre la fin du process avant
de lire le résultat.


Réponse avec citation
  #10 (permalink)  
Vieux 21/07/2007, 22h16
Didier
 
Messages: n/a
Par défaut Re: ShellExecute et commande "dos"

JDB a écrit :
> Didier a utilisé son clavier pour écrire :
>
>> Bonjour.
>> Je cherche, en Delphi 6, à exécuter : cmd /k ipconfig /all >
>> tempo.txt, puis à relire le résultat pour l'écrire dans un TMemo.
>> Ma commande s'exécute bien, le fichier tempo.txt est bien créé avec le
>> bon contenu, mais l'ouverture de ce fichier échoue la première fois.
>> Si je reclique sur le bouton lançant l'ensemble (le fichier tempo.txt
>> existe donc déjà) tout se passe bien.
>> Si je comprends bien, je ne peux pas lire le fichier juste créé.
>> Je n'arrive pas à comprendre pourquoi.
>> Mon code :
>>
>> if ShellExecute(0,'open','cmd',' /k ipconfig /all > c:\tempo.txt',nil,
>> SW_HIDE) >=32 then
>> begin
>> //lecture du fichier tempo.txt et affichage dans resultat
>> resultat.Lines.clear;
>> AssignFile(f,'c:\tempo.txt');
>> {$I-}
>> reset(f);
>> {$I+}
>> if IOResult = 0 then
>> begin
>> while not eof(f) do
>> begin
>> readln( f,s);
>> resultat.Lines.add(s);
>> end;
>> closefile(f);
>> end
>> else
>> MessageDlg('Fichier non créé', mtWarning, [mbOk], 0);
>> end
>>
>> Si vous avez un idée, je suis preneur.
>> L'erreur est sans doute grossière, mais je ne suis qu'un amateur
>> autodidacte.
>> Merci.
>> Didier.

>
>
> ShellExecute est asynchrone. il faut attendre la fin du process avant de
> lire le résultat.
>
>

J'ai mis une boucle while not FileExists('c:\tempo.txt') do; aussotiôt
après le ShellExecute , avec un affichage à chaque passage, il faut
environ 20 passages dans la boucle pour que la fonction FileExists
trouve le fichier.
Je sors alors de la boucle, et rebelote, erreur d'entrée/sortie sur le
fichier au moment du reset(f).
Je craque un peu là.
Didier.
Réponse avec citation
  #11 (permalink)  
Vieux 21/07/2007, 22h16
Didier
 
Messages: n/a
Par défaut Re: ShellExecute et commande "dos"

JDB a écrit :
> Didier a utilisé son clavier pour écrire :
>
>> Bonjour.
>> Je cherche, en Delphi 6, à exécuter : cmd /k ipconfig /all >
>> tempo.txt, puis à relire le résultat pour l'écrire dans un TMemo.
>> Ma commande s'exécute bien, le fichier tempo.txt est bien créé avec le
>> bon contenu, mais l'ouverture de ce fichier échoue la première fois.
>> Si je reclique sur le bouton lançant l'ensemble (le fichier tempo.txt
>> existe donc déjà) tout se passe bien.
>> Si je comprends bien, je ne peux pas lire le fichier juste créé.
>> Je n'arrive pas à comprendre pourquoi.
>> Mon code :
>>
>> if ShellExecute(0,'open','cmd',' /k ipconfig /all > c:\tempo.txt',nil,
>> SW_HIDE) >=32 then
>> begin
>> //lecture du fichier tempo.txt et affichage dans resultat
>> resultat.Lines.clear;
>> AssignFile(f,'c:\tempo.txt');
>> {$I-}
>> reset(f);
>> {$I+}
>> if IOResult = 0 then
>> begin
>> while not eof(f) do
>> begin
>> readln( f,s);
>> resultat.Lines.add(s);
>> end;
>> closefile(f);
>> end
>> else
>> MessageDlg('Fichier non créé', mtWarning, [mbOk], 0);
>> end
>>
>> Si vous avez un idée, je suis preneur.
>> L'erreur est sans doute grossière, mais je ne suis qu'un amateur
>> autodidacte.
>> Merci.
>> Didier.

>
>
> ShellExecute est asynchrone. il faut attendre la fin du process avant de
> lire le résultat.
>
>

J'ai mis une boucle while not FileExists('c:\tempo.txt') do; aussotiôt
après le ShellExecute , avec un affichage à chaque passage, il faut
environ 20 passages dans la boucle pour que la fonction FileExists
trouve le fichier.
Je sors alors de la boucle, et rebelote, erreur d'entrée/sortie sur le
fichier au moment du reset(f).
Je craque un peu là.
Didier.
Réponse avec citation
  #12 (permalink)  
Vieux 23/07/2007, 07h49
Francois Piette
 
Messages: n/a
Par défaut Re: ShellExecute et commande "dos"

Il faut attendre que le ShellExecute se termine. Ca prend un certain temps.
Attende que le fichier existe puis y accéder conduit à une erreur car il est
encore en cours d'utilisation pas IPConfig.

Je pense avoir répondu par email privé avec un bout de code qui utilise
ShellExecuteEx and WaitForSingleObject.

PS: Pour de meilleures réponse, utiliser un forum plus fréquenté que celui
ci ! Par exemple: news://news.delphinaute.be/delphi

--
francois.piette***overbyte.be
Auteur du freeware ICS - Internet Component Suite
Auteur du freeware MidWare - Multi-tiers framework
http://www.overbyte.be
http://francois-piette.blogspot.com



"Didier" <nospam***nospamfree.fr.invalid> a écrit dans le message de
news:46a277a2$0$5114$ba4acef3***news.orange.fr...
> JDB a écrit :
> > Didier a utilisé son clavier pour écrire :
> >
> >> Bonjour.
> >> Je cherche, en Delphi 6, à exécuter : cmd /k ipconfig /all >
> >> tempo.txt, puis à relire le résultat pour l'écrire dans un TMemo.
> >> Ma commande s'exécute bien, le fichier tempo.txt est bien créé avec le
> >> bon contenu, mais l'ouverture de ce fichier échoue la première fois.
> >> Si je reclique sur le bouton lançant l'ensemble (le fichier tempo.txt
> >> existe donc déjà) tout se passe bien.
> >> Si je comprends bien, je ne peux pas lire le fichier juste créé.
> >> Je n'arrive pas à comprendre pourquoi.
> >> Mon code :
> >>
> >> if ShellExecute(0,'open','cmd',' /k ipconfig /all > c:\tempo.txt',nil,
> >> SW_HIDE) >=32 then
> >> begin
> >> //lecture du fichier tempo.txt et affichage dans resultat
> >> resultat.Lines.clear;
> >> AssignFile(f,'c:\tempo.txt');
> >> {$I-}
> >> reset(f);
> >> {$I+}
> >> if IOResult = 0 then
> >> begin
> >> while not eof(f) do
> >> begin
> >> readln( f,s);
> >> resultat.Lines.add(s);
> >> end;
> >> closefile(f);
> >> end
> >> else
> >> MessageDlg('Fichier non créé', mtWarning, [mbOk], 0);
> >> end
> >>
> >> Si vous avez un idée, je suis preneur.
> >> L'erreur est sans doute grossière, mais je ne suis qu'un amateur
> >> autodidacte.
> >> Merci.
> >> Didier.

> >
> >
> > ShellExecute est asynchrone. il faut attendre la fin du process avant de
> > lire le résultat.
> >
> >

> J'ai mis une boucle while not FileExists('c:\tempo.txt') do; aussotiôt
> après le ShellExecute , avec un affichage à chaque passage, il faut
> environ 20 passages dans la boucle pour que la fonction FileExists
> trouve le fichier.
> Je sors alors de la boucle, et rebelote, erreur d'entrée/sortie sur le
> fichier au moment du reset(f).
> Je craque un peu là.
> Didier.



Réponse avec citation
 
Réponse
Tags: , ,



Outils de la discussion
Modes d'affichage

Règles de messages
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Discussions similaires

Discussion Auteur Forum Réponses Dernier message
Pas de commande "Aide et Support" dans le menu "Démarrer" rick22560 Newsgroup microsoft.public.fr.windowsxp.installation 5 12/05/2008 11h55
Où est passé la commande "Insérer > une formule de politesse" ? é¨`^ Newsgroup microsoft.public.fr.word 9 28/02/2008 05h44
commande top et champ "sy" pour programme parallele Matlerouge Newsgroup fr.comp.os.linux.configuration 0 10/01/2008 23h02
[ Tiger ] Commande Finder "diaporama" lance Automator... ric zito Newsgroup fr.comp.os.mac-os.x 3 03/01/2008 20h00
IE7 beta : enlever une commande du menu "tools" jcg Newsgroup microsoft.public.fr.ie 0 05/06/2006 22h51


Fuseau horaire GMT. Il est actuellement 09h34.

Italiano - German - English - Español


Édité par : vBulletin® version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0 © 2007, Crawlability, Inc. Tous droits réservés.
Version française #13 par l'association vBulletin francophone


Politique - Droit - Philosophie - Football - Medicine - Française - Bricolage - Photo - Mac Os X - Divers - Physique - Jardinage
Mecanique - Moto - Photographie - Rail - Route - Aviation - Cinema - Linux - Psychanalyse - Finance - Enigmes - Rugby
Environnement - Histoire - Programmes TV - Education - Travail - Voyages - Windows - Immobilier - Cuisine
Windows XP - Excel - Word - Outlook - Access - Internet Explorer - Office - Vista

Page generated in 0,49083 seconds with 11 queries