Bonjour,
je me suis mis depuis peux à Delphi 6, je suis donc un grand débutant.
je cherche à faire une appli console, donc mon premier soucis est de manager les arguments et les entrées pipes. J'ai réussit pour les arguments, pas de problèmes, j'ai même trouvé comment manipuler des expressions régulières pour filtrer, c'est ok.
Par contre pour les pipes, je galère. Le code sur la FAQ de developpez.com proposé est celui-ci (adapté par mes soins) :
Ca marche trés bien avec ce genre de chose, en console, vous faites un dir /b >MaListe.txt sur une arboresence puis vous lisez le fichier et vous rediriger le flux dans votre programme comme suit : type MaListe.txt | Mon_ProgrammeConsoleEnDelphiQuiEstSenseDechirer.exe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 //----------------------------------------------------------------------- Procedure ReadPipedDatas; //----------------------------------------------------------------------- var Arguments: String; NbArgs: integer; Begin NbArgs:=0; try Assign(INPUT,''); Reset(INPUT); Assign(OUTPUT,''); Rewrite(OUTPUT); While not(Eof) do begin Readln(INPUT,Arguments); Writeln(OUTPUT,Arguments); end Finally Close(INPUT); Close(OUTPUT); end; End;
Sauf que, si j'exécute maintenant mon programme sans rien envoyer dedans, et bien il attends indéfiniment un eof qui ne viendra pas, il faudra faire Ctrl C pour sortir du programme. Et ça c'est très gênant. Une application comme grep.exe ne pose pas ce genre de problème, il est donc certainement possible de s'en sortir.
Question, comment ?
Qui peux me donner la solution, si possible le code en entier pour que je puisse faire un copier coller dans un nouveau projet et tester.
Merci.
Partager