Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: maxt - Maggio 17, 2013, 07:41:50 pm

Titolo: catturare output esterno non funziona
Inserito da: maxt - Maggio 17, 2013, 07:41:50 pm
ho trovato questo esempio e ho provato a riprodurlo tale e quale
http://freepascalanswers.wordpress.com/tag/commands/

ma quando provo ad eseguirlo ottengo questo errore:
Project project1 raised exception class 'External: SIGSEGV'.

non capisco perche', sapreste aiutarmi?
Titolo: Re:catturare output esterno non funziona
Inserito da: Legolas - Maggio 17, 2013, 08:08:44 pm
Hai impostato a true la proprietà Options.poUsePipes del componente TProcess?
Titolo: Re:catturare output esterno non funziona
Inserito da: El Salvador - Maggio 17, 2013, 08:18:38 pm
Tra l'altro, se non mi sbaglio, la proprietà CommandLine è deprecata. Dovresti usare le proprietà Executable (per il percorso dell'eseguibile) e Parameters (per gli eventuali parametri da passare).
Titolo: Re:catturare output esterno non funziona
Inserito da: maxt - Maggio 17, 2013, 08:32:30 pm
Citazione
Hai impostato a true la proprietà Options.poUsePipes del componente TProcess?

ok, impostando questa opzione leggo i risultati

non capisco una cosa: come mai se lancio qualche comando che genera molto output, nella memobox non vedo l'intero output, ma solo qualche decina/centinaia di righe? sara' qualche limitazione della memobox?
Titolo: Re:catturare output esterno non funziona
Inserito da: El Salvador - Maggio 17, 2013, 08:40:08 pm
Semplicemente il buffer si riempie. Prova a vedere questo esempio presente nel wiki di lazarus http://wiki.freepascal.org/Executing_External_Programs#Reading_large_output