Passare/leggere parametri a/da linea di comando PDF Stampa E-mail
Scritto da Michael   
Giovedì 04 Settembre 2008 12:01
Qualche mese fa ho avuto l'esigenza di realizzare una breve e leggera applicazione da linea di comando che, una volta lanciata con alcuni parametri, doveva eseguire automaticamente la stampa di alcuni reports. Ma come accedere ad eventuali parametri passati sulla riga di comando? Destination host forbidden
Per quanto riguarda il mio caso, dato che l'operazione doveva essere automatica e senza input alcuno da parte dell'utente, ho utilizzato la tipologia di applicazione "console application" che alla build crea un eseguibile che gira senza interfaccia (aprendo per alcuni istanti la classica finestra nera di MSDOS). Ma le funzioni che andremo ad utilizzare sono disponibili anche nelle classiche applicazioni "VCL Forms Application".

Possiamo molto semplicemente sfruttare due funzioni: ParamCount (che ritorna il numero di parametri passati alla riga di comando) e ParamStr (che è un array contenente i parametri stessi)

Volendo/dovendo fare dei controlli, esiste anche la variabile CmdLine che contiene una stringa con tutti i parametri passati all'applicazione.

Ad esempio volendo semplicemente visualizzare il primo parametro che avete passato all'applicazione sarà sufficiente digitare:

  showmessage(ParamStr(0));

nel gestore di eventi di un pulsante (ad esempio). Solitamente si usa l'evento OnActivate della form per leggere questi parametri.


NB: i parametri devono essere passati suddivisi da uno spazio o da un carattere TAB.

Dovendo leggere tutti i parametri passati all'applicazione sarà sufficiente sfruttare ParamCount realizzando un cliclo, ad esempio:

var
  i:integer;
begin
  for
i:=0 to ParamCount do
   
ShowMessage(ParamStr(i));
end;
Commenti
Nuovo Cerca
+/-
Commenta
Nome:
Email:
 
Website:
Titolo:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:):grin;)8):p:roll:eek:upset:zzz:sigh:?:cry
:(:x
 
Please input the anti-spam code that you can read in the image.

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."