Passare parametri ad un eseguibile esterno e riceverne valori

di il
2 risposte

Passare parametri ad un eseguibile esterno e riceverne valori

Salve ho un programma che comprende degli "importatori" di file di testo.

Ho creato delle funzioni che riconoscono il tipo di file da importare, eseguono l'importazione in un db e mi restituiscono il valore che mi conferma se è andato tutto a buon fine e quante righe importate.

Però ogni volta che cambia la struttura del txt e devo modificare un importatore devo distribuire nuovamente l'app.
Ho visto che altri programmi hanno eseguibili esterni che comprendono ciascuno un importatore in modo da poter aggiornare solo il singolo file senza redistribuire tutto.
Vorrei passare i parametri al file exe (come fosse una funzione) ma anche ricevere il numero di file importati e se è andata a buon fine.

Come faccio a leggere i risultati del file esterno?

Grazie 1000 in anticipo

2 Risposte

  • Re: Passare parametri ad un eseguibile esterno e riceverne valori

    ribelle ha scritto:


    Vorrei passare i parametri al file exe (come fosse una funzione) ma anche ricevere il numero di file importati e se è andata a buon fine.
    Per il passaggio di parametri, puoi invocare l'eseguibile passandoli come faresti lanciando l'applicazione da riga di comando, ossia aggiungendoli dopo il nome dell'eseguibile, mentre nel tuo codice puoi aiutarti con la classe Process e il suo metodo .

    Per ricevere l'esito dell'elaborazione invece, i modi sono molteplici: potresti usare un codice di uscita dall'applicazione (es. zero per "tutto OK", oppure 1, 2, 3, ecc. per diverse tipologie e livelli di errore) tramite Environment.ExitCode, scrivere i risultati sulla Console come output e poi "catturarli" e interpretarli dal chiamante (vedi questo articolo), oppure ancora scrivere l'esito della procedura in un file esterno, magari indicato tra i parametri della chiamata, in cui trovi i dati che ti servono su quanto è stato fatto e sul risultato, in un formato scelto da te che sia congeniale ai tuoi scopi.

    Volendo strutturare meglio il sistema, al posto dell'applicazione potresti predisporre un Web Service, o una Web API, o qualcosa di più curato che possa anche essere meglio gestito in termini infrastrutturali rispetto a un banale EXE che vai a lanciare. Adottando una di queste soluzioni, puoi tranquillamente usare XML oppure JSON come formati di interscambio per passare tutte le informazioni che vuoi e riceverne altrettante, senza particolari limiti imposti.

    Fai una ricerca seguendo i link sopra riportati.
    In caso di dubbi, specifica quali sono o aggiungi dettagli per consentire di comprendere meglio qual è la problematica.

    Ciao!
  • Re: Passare parametri ad un eseguibile esterno e riceverne valori

    Grazie mille per la tempestività e la professionalità.
    Ora faccio dei test.
Devi accedere o registrarti per scrivere nel forum
2 risposte