<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2015-01-02 23:22 GMT+01:00 Aldes Rossi <span dir="ltr"><<a href="mailto:aldes.rossi@rossisoft.com" target="_blank">aldes.rossi@rossisoft.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Vorrei scrivere in Python delle routine di servizio da richiamare in programmi scritti in COBOL.<br>
Per esempio: certe operazioni su stringhe, esecuzione di certi calcoli, compilazioni di tabelle ...<br>
<br>
Per eseguire dal codice COBOL uno script esterno si usa la routine "SYSTEM", passando<br>
come argomento una stringa contenemte il comando che si digiterebbe nella linea di comando<br>
per lanciare lo script manualmente.<br>
<br>
Per esempio:<br>
<br>
MOVE stringa-da-elaborare  TO variabile<br>
CALL "SYSTEM"  USING  "PYTHON  nome-script  variabile"<br>
...<br>
<br>
Così si passa allo script python il dato da elaborare.<br>Ma lo script python, come restituisce al programma cobol il dato elaborato?<br></blockquote><div><br></div><div>Col piffero... :-)</div><div><br></div><div>Scherzi a parte, puoi provare a ridirigere l'output su un file e poi da COBOL aprire quel file. Però questo funziona solo se:</div><div><ul><li>COBOL aspetta la fine dell'esecuzione di SYSTEM<br></li><li>il tuo programma COBOL gira in unica istanza</li><li>Saturno e Giove sono allineati</li></ul><div>Ciao.<br>Marco.</div></div><div>P.S. Per curiosità prima di inviare questa risposta ho pure fatto una ricerchina e, lo and behold, ci avevo azzeccato. Da <a href="http://community.microfocus.com/microfocus/cobol/net_express__server_express/w/knowledge_base/6537.invoke-a-unix-command-from-within-cobol-using-call-system-and-retrieve-return-code.aspx" target="_blank">http://community.microfocus.com/microfocus/cobol/net_express__server_express/w/knowledge_base/6537.invoke-a-unix-command-from-within-cobol-using-call-system-and-retrieve-return-code.aspx</a> :</div></div></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div class="gmail_extra"><div class="gmail_quote"><div><p style="color:rgb(0,0,0);font-family:Verdana;font-size:12px">To pass data back to COBOL from a UNIX command, have the command write the data to a file, then have COBOL read the file. For example, CALL "SYSTEM" with the command "ls -l >lsout.txt", and then program COBOL to open "lsout.txt" as a line sequential file and read the file line by line.</p></div></div></div></blockquote><div class="gmail_extra"><div class="gmail_quote"><div><br></div></div>-- <br><div><div dir="ltr"><div><div><a href="http://beri.it/" target="_blank">http://beri.it/</a> - Un blog</div><div><a href="http://beri.it/i-miei-libri/" target="_blank">http://beri.it/i-miei-libri/</a> - Qualche libro</div><div><span style="font-size:small"><a href="http://beri.it/articoli/" target="_blank">http://beri.it/articoli/</a> - Qualche articolo</span></div></div></div></div>
</div></div>