Newsgroup: it.comp.lang.visual-basic
Titolo: Piu' parametri in riga di comando

Buon giorno a tutti, sono un neofita e mi scuso se la domanda e' banale.
Ho creato un' applicazione in VB6 e questa dovrebbe andare sia in modalita'
interattiva e sia ricevere parametri da riga di comando.
Tutto OK, se non che i parametri che gli passo da riga di comando ...sono un
solo argomento !
Cioe', mi spiego.
Quando da riga di comando si passa il parametro questo diventa il valore
della variabile di sistema COMMAND.
Ok, ma io ho bisogno di passagli almeno 2 variabili !
Cioe' e' possibile fare in modo che al valore COMMAND vengano abbinate due
variabili nel programma senza usare il controllo della stringa e cercare lo
spazio (cosa che ora non so neppure fare)?
Mi sembra impossibile che non esista un metodo + facile.
Forse mi sono spiegato male.
Faccio un esempio:
ecco la riga di comando del mio eseguibile:
'eseguibile.exe pippo pluto'
adesso come adesso nel programma diventa:
COMMAND = "pippo pluto"
mentre io vorrei nel programma una cosa del tipo:
COMMAND1= pippo
COMMAND2=pluto
cioe' avere i due valori gia' separati e comodi da usare.
Grazie e scusate ancora.
--
selidori
NOSPAM_...@yahoo.com
.................
http://www.bloopers.it

 Ok, ma io ho bisogno di passagli almeno 2 variabili !
[SNIP]
Command restituisce sempre l'intera riga di comando, con VB6 pero'
recuperare i singoli parametri separati da uno spazio e' semplice:
Dim Params() As String
'il secondo argomento opzionale di Split e' il separatore
'da cercare, ma lo spazio e' il default per cui non serve
Params = Split(Command$)
nell'array Params ora sono contenuti i parametri.
Con VB5 e' leggermente piu' laborioso in quanto non esiste la funzione
Split, per cui bisogna lavorare un pochino con Instr (cerca un carattere in
una stringa) e Mid (estrae una sottostringa da una stringa, per posizione)
Ciao
--
Luca Dormio
luca....@tin.it

Ciao, potresti passare alla riga di comando i due (o più) valori separati da
un carattere particolare, e poi visto che usi VB6 usare il comando Split( )
per recuperare tutti i parametri distini.
Es.
prog.exe 1|2|3
In questo modo passi al programma i valori 1, 2 e 3.
Byez
Tango

Scusate, sono proprio indietro....
nel FORM_LOAD ho inserito dunque le seguenti righe:
' Valore variabili dedotte da riga di comando
Dim Params() As String
Params = Split(Command$)
txtNumero.Text = Params(0)
txtMessaggio.Text = Params(1)
ma qualcosa non va...
si arrabbia per il OUT OF RANGE della prima assegnazione alla mia textbox.
Sicuramente sbaglio a usare le array....
come faccio a visualizzare il valore ricavato dalla riga di comando ?
grazie di nuovo e buona estate !


 Sicuramente sbaglio a usare le array....
No, la sintassi e' giusta ma sei sicuro che la riga di comando sia piena?!
Devi sempre controllare che nell'array ci siano gli elementi che ti aspetti
di trovare; ad esempio, se il tuo eseguibile parte con
"mioprogramma.exe 12345 ciao"
il codice che hai scritto funziona, txtNumero conterra' "12345" e
txtMessaggio "ciao"
ma se lanci il programma con
"mioprogramma.exe 12345"  oppure semplicemente senza parametri allora
l'array non avra' le dimensioni previste e il codice va in errore.
in sostanza devi aggiungere alcuni controlli, qualcosa di simile a:
Dim Params() As String
If Command$ = "" Then
    MsgBox "Nessun parametro"
Else
    Params = Split(Command$)
    'verifichiamo l'indice massimo dell'array
    Select Case UBound(Params)
    Case 0
        'un solo parametro presente
        txtNumero.Text = Params(0)
    Case 1
        'entrambi i parametri presente
        txtNumero.Text = Params(0)
        txtMessaggio.Text = Params(1)
    End Select
End If
e cosi' via... ricordati che per simulare una riga di comando durante il
debug con l'IDE di VB puoi andare nelle proprieta' del progetto, nel tab
"Crea", e impostare la tua stringa di prova in basso


 Grazie e scusate ancora.
fai cosi che funziona:
txtnumero.Text = Split(Command)(0)
txtmessaggio.Text = Split(Command)(1)
ciao
Bepi