Bonjour !

Je voudrais utiliser dans une application console l'unité CommandParser qui se trouve dans les démos de XE2 :

http://sourceforge.net/p/radstudiode...RadStudio_XE2/

J'ai téléchargé ce projet utilisant l'unité :

http://bo.codeplex.com/SourceControl.../changes/71461

J'avais trouvé le lien (avec des explications) dans un message de cette discussion :

http://stackoverflow.com/questions/9...ine-parameters

Mais avec tout ça je n'ai pas réussi à faire pour moi-même un petit exemple qui fonctionne. Enfin si, j'ai fait ça, qui est un début et qui montre déjà l'intérêt de cette unité :

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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
program CommandParser1;
 
{$APPTYPE CONSOLE}
 
{$R *.res}
 
uses
  System.SysUtils, CommandParser;
 
var
  cp: TCommandParser;
 
begin
  try
    // Paramètres :
    // /longnames /infile='1.txt' /outfile="2.txt"
 
    cp := TCommandParser.Create(FALSE, 'Unit names convertor');
 
    WriteLn(cp.SwitchChars = '/-');
 
    cp.AddSwitch('s', stBoolean, FALSE, '', 'Conversion to short names', 'shortnames');
    cp.AddSwitch('l', stBoolean, FALSE, '', 'Conversion to long names', 'longnames');
    cp.AddSwitch('i', stString, TRUE, '', 'Input file', 'infile');
    cp.AddSwitch('o', stString, FALSE, '', 'Output file', 'outfile');
 
    WriteLn(cp.Syntax);
    //WriteLn(cp.HelpText);
    //WriteLn(cp.Description);
 
    cp.ProcessCommandLine(CmdLine);
 
    WriteLn(cp.IndexOf('s') = 0);
    WriteLn(cp.IndexOf('l') = 1);
    WriteLn(cp.IndexOf('i') = 2);
    WriteLn(cp.IndexOf('o') = 3);
 
    WriteLn(cp.Switches[3].Name = 'o');
    WriteLn(cp.Switches[3].Value = '"2.txt"');
    WriteLn(cp.Switches[3].HasValue);
    WriteLn(cp.Switches[1].HasValue = FALSE);
 
    cp.Free;
 
    ReadLn;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
Mais je ne vois pas comment récupérer les valeurs booléennes.

J'ai essayé en m'inspirant du projet de suivre la méthode décrite dans la discussion mais c'est trop compliqué (pour moi). Doit-on nécessairement passer par un TComponent ? Si oui, cela peut-il se faire d'une façon relativement simple ?