MathLink and Notebooks
- To: mathgroup at smc.vnet.net
- Subject: [mg37407] MathLink and Notebooks
- From: Cesar Guerra <guerra_cesar at yahoo.com>
- Date: Sat, 26 Oct 2002 02:04:36 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Hi MathGroup, Working with MathLink and Mathematica functions to manipulate notebooks I had the following problem I tried to make a MathLink function which before giving the final result, it sends to mathematica information about how the process is going on ( for example convergence of a variable or an index in a loop). The point is that printing all this could be very long ( a file is better in this case ) and I wanted a cell which is edited and deleted as the process goes on. The following function is a model of what iI intented /*******************************************************************/ :Begin: :Function: test :Pattern: test[] :Arguments: {} :ArgumentTypes: {} :ReturnType: Integer :End: /********************************************************************/ int test() { int i,j; for ( i=0;i<100 ;i++ ) { /* Sending the variable i to be displayed in Mathematica */ MLPutFunction(stdlink,"EvaluatePacket",1); MLPutFunction(stdlink,"CompoundExpression",2); MLPutFunction(stdlink,"NotebookWrite",3); MLPutFunction(stdlink,"SelectedNotebook",0); MLPutFunction(stdlink,"Cell",2); MLPutFunction(stdlink,"ToString",1); MLPutInteger(stdlink,i); MLPutString(stdlink,"Program"); MLPutSymbol(stdlink,"All"); MLPutSymbol(stdlink,"Null"); MLEndPacket(stdlink); MLFlush(stdlink); MLNewPacket(stdlink); } /* This is the final answer */ return 0; } /********************************************************************/ The function works fine until leaving the for loop. After that the link is lost. I can't fix this problem, I suppose that I don't treat the return packets in a proper way. I would be very greateful for any hints about this Best regards...... Cesar