File Handling in formula node

Hello All,
I am trying to open a file and write some data to a file within the formula node. A declaration like
file *in;
produces this error:
Formula Node:undefined variable.
Error on line 1 is marked by a '#' character: "file# *out;"
How does one do file I/O operations within the formula node?
Thanks,
KB

Hello KB,
it seems you are trying to write a LabView program by
inserting C-code into a formula node... That's not the way it should be.
As far as I know there is no way to open a file inside the formula node. (It's a "formula" node!) So you have to open the file with LabView for reading and/or writing. Use your prefered subVi from the file palette. Perhaps you have to convert the data to a format suitable for your formula node (like string to U8-array).
In my experience it's better to use Labview-code instead of the formula node. In my programs a formula node was always slower than Labview code. So you should think about converting the C-style code to Labview.
Best regards,
GerdW
Best regards,
GerdW
CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
Kudos are welcome

Similar Messages

  • Array Handling in Formula Node

    I have attached a simple VI wherein I want to take an input array, look at its size and use the size of the input array as the size of the output array. The output array needs to be declared. I want to be able to use the size of the input array "N" as the size of the output array too. The size of the input array changes dynamically based on my simulation needs. I dont want to modify the size of the array in the declaration every time I change the array size in simulation.
    I have tried using b[N] instead of b[10] in the formula node. However LV does not seem to accept this and gives me a syntax error. 
    Attachments:
    Array Handling in Formula node.vi ‏8 KB

    AGovi wrote:
     However I require to use complicated formulas such as 
    If a simple formula is easier in G, a complicated formula will also be easier in G.
    Actually, it will scale better.  Since graphical code is 2D, doubling the code will make it only 1.4x (sqrt2) larger in each dimension, while the formula will double in lenght.
    LabVIEW Champion . Do more with less code and in less time .

  • Updating equation in formula node from a string or text file

    Is it possible to have a calculation performed based on an equation stored in a string (read from a text file). I am guessing not because the equation would need be compiled but thought I would ask.

    Hi,
    it depends on how complex the equation is.
    Rather than using a formula node, you could use the eval formula node vi instead. (Functions->Analyze->Mathematics->Formula), but you may needs to re-organise the text formula a little.
    Assuming you're using not the base package, and atleast LabVIEW version 6.1 that shouldn't be a problem.
    Hope that helps.
    Sacha Emery
    National Instruments (UK)
    // it takes almost no time to rate an answer

  • If-then statement in formula node

    **Note - The attached file shows the current block diagram.
    I have a formula node inside a for loop. Inside the formula node I am trying to program the if-then statement:
    If T1<2.0E-5 OR T1>5.5E-4 THEN GOTO 3
    U7=U7+V
    I have 4 items I need help with:
    (1) Is 'II' the correct operator for 'OR'?
    (2) Is 'goto' an acceptable operator within LabVIEW?
    (3) 'U7' is building a 1D array. How do I need to define it? Is it simply 'int U7'? Also, I will add an output value named 'U7' on the formula node wall with an indicator wired to it from outside the for loop.
    (4) Is my use of the equal sign appropriate or do I need to use '=='?
    Thanks for the help.
    Philip
    Attachments:
    if-then_in_FN.jpg ‏18 KB

    Thanks for the help. I went ahead and rewrote the program so I could omit the 'goto's. Another problem that I am having is that I want 2 statements for 1 assignment:
    if (T1>=.002004 && T1<=.002584)
    B1=U
    A1=V;
    I want to assign both B1 and A1 values when the above condition is true. I tried a comma between the U and A1 but it doesn't work as well. Should I define A1 and B1 separately? Or would this create problems?
    if (T1>=.002004 && T1<=.002584)
    B1=U;
    if (T1>=.002004 && T1<=.002584)
    A1=V;
    Thanks,
    Philip

  • "Eval Parsed Formula Node VI" does not return outputs in predefined order

    I make a data analysis program, where the data consists of some million events and each event has e.g. 4 channels and 1-5 hits on each channel. 
    I would like the user to select different expressions of these channels to give coordinates to plot in a 2D histogram (increment a bin in Intensity Graph), e.g. for some experiment you want to show x=ch1-ch2; y=ch1+ch2+ch3+ch4; while in another experiment you want x=ch1-123; y=123-ch2;
    There are other VIs that use static LabView-code for the normal things, but now after a few years of adding to this program I find that it would be quite good with a general plotter and let the user specify simple expressions like this. Also with the "normal" static plots, there is a need to filter out bad data and then it would be much simpler both to program and use if you could write text expressions with boolean logic to combine multiple filters. Making a LabView code and GUI that allows AND/OR/parenthesis combinations of expressions will be quite an effort and not very reusable.
    So, with the above motivation, I hope you see that it would make sense to have a useable string formula evaluator in LabView. I find some info about MathScript's user-defineable functions, but haven't managed to get MathScript working in LV2010 yet (maybe some licensing or installation issues, I think I had it in 8.6). But I think it would be possible to do most of what I want for the display-part (not the filtering) with the simpler Eval/Parse Formula Node VIs and suitable use of the limited variable name space. So I started testing, and found a quite annoying issue with how the evaulator works.
    To the parser, you are expected to send an array of output variable names. But then it ignores this array, and returns one output per assignment/semicolon in the formula, in the order of the formula text. Since the static parts of my program need to know what the output values mean (which of them is x and which is y), I would have to rely on the user not using any intermediate variable and defining x before y. The attached screenshot demonstrates the problem, and also that it has been solved by NI statff in the "Eval Formula Node VI" which does the appropriate array-searching to extract only the pre-defined outputs, in their expected order. But using that VI is about 100 times as slow, I need to pre-compile the formula and then only use the evaulator in the loop that runs over a million events.
    I don't know if I'll take the time to make my own tweks to the parsing stage (e.g. preparation of array-mapping to not have to repeat the search or maybe hacking the output list generated by the parser) or if I'll have to make it in a static Formula Node in the block-diagram (which supports more functions), so that the user has to run with development environment and stop the program to change the plotting function. But I wanted to share this trouble with you, in hope of improvments in future LabView versions or ideas from other people on how I could accomplish my aim. I have MATLAB-formula node possibility too, but is far as I have seen the only place the user could update the formula would then be in a separate .m file, which is re-read only when typing "clear functions" in the Matlab console window. (Having this window is also an annoyance, and perhaps the performance of calling Matlab in every iteration is not great.) 
    Besides this issue, it also seems very strange there is virtually no support for conditional expressions or operators in Formula Node evaulated formulas (called Mathematics VIs in the documentation). Maybe using (1+sign(a-b))/2 you can build something that is 0 when a<b and 1 when a>b, but it is not user friendly! Would it really be diffcult to add a function like iif(condition, return_value_if_true, return_value_if_false) to replace the unsupported "condition ? if_true : if_false" operator? Would it really be difficult to add support for the < <= >= > == || && operators? Although compiled to an assemply language, this can't exactly be difficult for a CPU.
    Attachments:
    LV script test.png ‏62 KB
    LV script test.vi ‏18 KB

    (1) You can put any kind of code inside an event structure with the limitation that it should be able to complete quickly and without user interaction.  For example a while loop for a newton-raphson method is fine, but an interactive while loop where the stop condition depends on user iteraction is not recommended. By default, event structures lock the front panel until the event completes, so you would not even be able to stop it.
    (2) Yes, you can do all that. LabVIEW has no limitation as a programming language. Use shift registers to hold data and state information, the manipulate the contents as needed.
    (3) I would recommend to use plain LabVIEW primitives instead of formula nodes. Show us your code so we can better see what it's all about. Obviously you have a mismatch betweeen scalars and arrays. It is impossible from the given information where the problem is.
    (4) Yes, look inside the nonlinear curve fit VI (you can open it an inspect the code!). One of the subVIs does exactly that. Just supply your model VI.
    LabVIEW Champion . Do more with less code and in less time .

  • How to handle unknown root node type when parsing?

    Hello all, hoping someone knows how to accomplish this...
    I'm trying to use XMLBeans to parse RIXML 2.0 documents. This schema allows for
    multiple root node types, so I don't know when I'm trying to parse a file if the
    root node is a Research node or a Product node, for example. If I try to invoke
    parse and there is a type mismatch I get the following error:
    com.bea.xml.XmlException: D:\RIXML\V2TestDoc.xml:0: error: The document is not
    a Research@http://www.rixml.org/2002/6/RIXML: document element local name mismatch
    expected Researchgot Product
         at com.bea.xbean.store.Root.verifyDocumentType(Root.java:472)
         at com.bea.xbean.store.Root.autoTypedDocument(Root.java:394)
         at com.bea.xbean.store.Root.loadXml(Root.java:763)
         at com.bea.xbean.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:286)
         at com.bea.xbean.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:224)
         at org.rixml.x2002.x6.rixml.ResearchDocument$Factory.parse(Unknown Source)
         at Test.main(Test.java:21)
    Exception in thread "main"
    So how do I generically handle parsing when I don't know what type of root node
    I'm going to get?
    Thanks,
    Joe

    Hello Joe -- You might try parsing the document as XmlObject (which your
    schema-generated types extend). Then you could use an XmlCursor to discover
    what the root element's local name is. Something like the following code
    might be a way to do it. You could also simply re-parse the document after
    discovering its root element name, but that would probably be more
    expensive.
    XmlObject xml = XmlObject.Factory.parse(mydoc.xml);
    XmlCursor cursor = xml.newCursor();
    cursor.toFirstContentToken();
    if (cursor.getName().getLocalPart().equals("Research"))
    // cast the XmlObject to your ResearchDocument type and use it.
    else if (cursor.getName().getLocalPart().equals("Product"))
    // cast the XmlObject to your ProductDocument type and use it.
    cursor.dispose();
    Steve
    "Joe Celentano" <[email protected]> wrote in message
    news:[email protected]..
    >
    Hello all, hoping someone knows how to accomplish this...
    I'm trying to use XMLBeans to parse RIXML 2.0 documents. This schemaallows for
    multiple root node types, so I don't know when I'm trying to parse a fileif the
    root node is a Research node or a Product node, for example. If I try toinvoke
    parse and there is a type mismatch I get the following error:
    com.bea.xml.XmlException: D:\RIXML\V2TestDoc.xml:0: error: The document isnot
    a Research@http://www.rixml.org/2002/6/RIXML: document element local name
    mismatch
    expected Researchgot Product
    at com.bea.xbean.store.Root.verifyDocumentType(Root.java:472)
    at com.bea.xbean.store.Root.autoTypedDocument(Root.java:394)
    at com.bea.xbean.store.Root.loadXml(Root.java:763)
    atcom.bea.xbean.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:28
    6)
    atcom.bea.xbean.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:22
    4)
    at org.rixml.x2002.x6.rixml.ResearchDocument$Factory.parse(Unknown Source)
    at Test.main(Test.java:21)
    Exception in thread "main"
    So how do I generically handle parsing when I don't know what type of rootnode
    I'm going to get?
    Thanks,
    Joe

  • Gamma function in formula node

    I am running LabView V.6.1 and try to use the gamma function in a formula node.
    According to the HELP text ''Formula Node and Expression Node Functions'', the syntax for the Gamma funtion is gamma(x), but this leads to the block diagram error ''Formula node: Undefined variable''.
    Other functions (like exp(x), sqrt(x) etc.) work.
    Thanks for helping.

    Hi,
    we ran into this one a little while ago. The help is a little misleading. The Gamma function actually only works with the Expression Nodes, and not the Formula nodes.
    Go to the labview help file, and search for "Differences Between the Parser in the Mathematics VIs and the Formula Node "
    Also refer to the following link for a bit more information :
    http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101&RPAGEID=135&HOID=50650000000800000020540000&UCATEGORY_0=_49_%24_6_&UCATEGORY_S=0&USEARCHCONTEXT_QUESTION_0=%22Square%22+function+in+formula+node&USEARCHCONTEXT_QUESTION_S=0
    it's a bit long winded, but be patient - the information is in there.
    Hope that helps
    S.
    // it takes almost no time to rate an answer

  • "Square" function in formula node

    The square(x) function in the formula node does not seem to work, can someone confirm, or give me some example syntax?
    LabVIEW 6.1, Win2K
    Certified LabVIEW Architect

    Hi Nadav, Sacha and Martin
    1. The Square Function is not Avilable in Base Package.
    2. The Square Function will not work in the Formula node. There are differences in using the Formula Node and Mathematics Parser. Please Look at attached file in .rtf format. This is Just a Copy of LV6.1 Help
    3. To Implement A Square(x) function Use "Eval Formula Node.vi" or Square(x) function as defined above.
    Please find Attached two implementations of Square(x) and differences as promised.
    Good Luck!!
    Mache
    Good Luck!
    Mache
    Attachments:
    Square_Function.vi ‏16 KB
    Square_Fucntion_2.vi ‏26 KB
    Differences_Between_the_Parser_in_the_Mathematics_VIs_and_the_Formula_Node.rtf ‏16 KB

  • Why do in-line conditiona​l expression​s work in Formula Node but not in 'Eval Formula Node.vi'?

    'Eval Formula Node.vi' and a standard Formula node seem identical in most respects in terms of their functionality, however I'm stumped by the case of inline conditional expressions. 
    I'd like to read in a string in the syntax "(expr)?(expr)expr)" from a text file and recieve the output as a double.
    The subVI seemed like the perfect tool since I was already using it to interpret a number of other calculations within the text file, however in this case the behavior is not as expected.
    Has anyone else ever tried this? is there a different syntax needed between the two tools?
    Are there other features of the Formula Note not replicated by this VI?  (so I can avoid them in future)?
    For simplicity I've attached a little demo of the behavior.
    I am currently working in 2010, which I know is getting on in years.
    If the behavior is improved in later versions, that may be a good excuse to upgrade :-) 
    Thanks,
    Elaine R.
    Attachments:
    Conditional Formula Node demo.vi ‏13 KB

    .aCe. wrote:
    Eval formula Node does not do any conditional expressions as far as I am aware.
    That is right. It's a rather dirty hacked VI library to do some formula evalution and has many limitations in comparison to the Formula Node including no support for conditional operator as well as some others. In addition it can also error on some more complex bracketed expressions.
    It is an old example VI that was never revisited and probably never will be as writing a new one from scratch would be easier. But considering that the Formula Node and Mathscript and other possibilities exist, this is not likely going to happen soon.
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Want to learn more about shift registers and formula nodes

    I am new to Labview and have looked at the example files and help files regarding shift registers and formula nodes. I was hoping that someone has a simple and detailed VI expaining how each of them(shift registers and formula nodes) works.

    Formula nodes are not one of the first things you will need to be looking at. look at the help files (press ctrl-H) for some syntax examples. Shift registers are easy: they carry the value from the end of the loop back into the start of the loop. The great power of shift registers is to use them without initializing. In that case they will retain their last value as long as the vi is in memory. This is a little more advanced topic, though.
    I included a simple example that illustrates what a shift register does. Requires Labview 7.1
    Good luck,
    aartjan
    Attachments:
    shift (LV7.1).vi ‏19 KB

  • How can I programatically perform a conditional formula in "Eval Formula Node"?

    Okay, I'm stumped. I have an application where I need to evaluate a conditional programatically, and I can't do it with a Formula Node.
    Basically, my user wants to be able to enter some formula which describes conditionals, such as "if this temperature goes above X degrees or this temp goes above Y degrees, then take a reading" kind of thing. Since the conditional will be saved in a file, the formula node needs to be dynamic.
    I've used the "Eval Formula Node" before, which is built for this type of application...sort of. I tried it, but after trying in vain to get it to work properly, found out that it doesn't do boolean and conditionals in its parser, so it won't work.
    Does anyone
    have a good idea how to do this??

    Why do you even want to use the formula node at all? I don't think you "can take a reading" (i.e. interact with hardware) inside a formula node anyway.
    The formula node allows conditionals, see e.g. the example in the online help (image attached).
    You could also use a case structure with seperate formula node in each case.
    I highly prefer to skip the formula node and use wires instead. It will be more efficient and also much easier to debug. A formula node is not "in the true spirit of LabVIEW" ;-)
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    FormulaNode.gif ‏2 KB

  • File handling deprecated method - which one?

    I have this code, it should basically use the lines of text in a file and use them to construct nodes in a JTree. The compilation error is that the class uses a deprecated method - so does anybody know what method is the problem and what I should use?
    private void createNodes(DefaultMutableTreeNode top)
       DefaultMutableTreeNode anode = null; 
       File theFile = new File("categories.txt");
    try
    DataInputStream din1 = new DataInputStream(new FileInputStream(theFile));     
        //while (din1.available() !=0)
        while (true)
           String topic = din1.readLine().trim();
           //set the string as a tree node
           anode = new DefaultMutableTreeNode(topic);
           top.add(anode);
         din1.close();//close the file handle
         catch (Exception e)
              System.err.println("File input error");
    }//end of method

    If you compile with deprecation it will tell you specifically.
    I think it is:
    javac -deprecation ...
    The only method from below that I think it could be is readLine() in DataInputStream...
    If you are reading text...try:
    BufferedReader br = new BufferedReader(new FileReader(theFile));
    String topic;
    while ((topic=br.readLine())!=null)
        anode = new DefaultMutableTreeNode(topic);
        top.add(anode);
    br.close();

  • It crushes when the formula in a Formula Node is somewhat complicated.

    I call outer Formula Node VIs using Call By Reference Node VI. This works well in general but for some VIs with a little complicated formulas. The system crushes while calling the VI repeatedly. In the attached files, Script1.vi goes well but Script0.vi doesn't. The difference between two is just that the expressions in the former are short (but equivalent essentially). Are there any rules or constraints here?
    Attachments:
    TestScript.zip ‏40 KB

    Hi Randy,
    Thanks for your answer.
    I've raised one more question at the forum. I lastly attached a sample program for explaining the issue. I would greatly appreciate if you check the program at http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101&RPAGEID=135&HOID=5065000000080000008A6D0000&UCATEGORY_0=_49_%24_6_&UCATEGORY_S=0.
    Michiro

  • Array index problem in formula node

    dear friend
    I'm trying to use formula node to solve a problem because I make this program using c at the begining.
    It runs perfectly in turbo c, but somehow it doesn't work in the formula node.
    I try to debug my source code, and I find that the formula node seems can't read the true value in
    the array.
    Here is the code in the formula node.
    int32 i,j,k;
    for ( i = 0 ; i < sopa; i++ )
     j = 1;
     ep[i][0] = pa[i];
     ep[i][1] = np[ep[i][0]][0];
     while ( ep[i][j-1] != exit )
      for ( k = 0 ; k < sonp ; k++ )
        if ( np[ep[i][j-1]][k] != -1 && (pc[ep[i][j-1]][ep[i][j]] + pc[ep[i][j]][exit] >= pc[ep[i][j-1]][np[ep[i][j-1]][k]] + pc[np[ep[i][j-1]][k]][exit] ) && (pc[ep[i][j-1]][np[ep[i][j-1]][k]] == org[ep[i][j-1]][np[ep[i][j-1]][k]] ))
          ep[i][j] = np[ep[i][j-1]][k];
      j++;
    This is the part that I think the problem might be.
    if ( np[ep[i][j-1]][k] != -1 && (pc[ep[i][j-1]][ep[i][j]] + pc[ep[i][j]][exit] >= pc[ep[i][j-1]][np[ep[i][j-1]][k]] + pc[np[ep[i][j-1]][k]][exit] ) && (pc[ep[i][j-1]][np[ep[i][j-1]][k]] == org[ep[i][j-1]][np[ep[i][j-1]][k]] ))
     ep[i][j] = np[ep[i][j-1]][k];
    I state that "np[ep[i][j-1]][k] != -1" but I do get the value -1 in the array "ep".
    Could someone tell me why I get -1 in the array?
    I hope I can finally do it all by labview not using formula node,but array like "pc[ep[i][j-1]][np[ep[i][j-1]][k]] "
    seems very hard to wire in labview. Could someone give me some good advices of doing this?
    Thanks for your help

    altenbach 已寫:
    normanshi wrote:
     ep[i][0] = pa[i];                                          (A)
     ep[i][1] = np[ep[i][0]][0];                            (B)
    ...    if ( np[ep[i][j-1]][k] != -1 && ... )          (C)
          ep[i][j] = np[ep[i][j-1]][k];                       (D)
    I state that "np[ep[i][j-1]][k] != -1" but I do get the value -1 in the array "ep".
    Could someone tell me why I get -1 in the array?
    I hope I can finally do it all by labview not using formula node,but array like "pc[ep[i][j-1]][np[ep[i][j-1]][k]] "
    seems very hard to wire in labview. Could someone give me some good advices of doing this?
    There are many possible scenarios to get a -1 in the ep output. For example if the -1 gets already written in step (A) or (B) at a certain index, and that index does not get overwritten in step (D). You are indexing all over the place! Is there some bounds checking on the array contents? What are typical inputs and array sizes?
    I'm sure about that the -1 doesn't get already written in step (A) or (B) because ep[i][0] and ep[i][1] is fine. What really makes me confuse is that sometimes ep array has the value like this.
    That means it does overwritten some value in step (D). The -1 should never be written into it because I have already state that np[ep[i][j-1]][k] != -1. Somehow I still get -1,and this is really strange! I'm indexing all over the place becuase I can't figure out a better way to achieve my requirement.
    I think I should briefly tell you what I'm trying to do. In this program,I input some values which means the distance from one point to another. Then I use floyd's all pairs shortest-path algorithm to find all the shortest distance. Finally I want to find out the "shortest path". I mean like from point 4 to point 0,the shortest path might be like 4 -> 2 -> 1 -> 0, and what the formula node part do is trying to find out this "shortest path". Maybe you can give me some better advice of doing this, I have been thinking a better way to do it for about two months. I think I'm really not good at this.
    I try to do it all by labview ,but again I get a strange problem. This time the ep[i][j-1] doesn't get the correct value. In the first time i=0 j-1=0 ep[i][j-1] = 1,but the second time i = 0 j-1 = 1 ep[i][j-1] = 0. This makes the "ep[i][j-1]!=exit" get the incorrect boolean value. The ep[i][j-1] should be 2,not 0. I try to use highlight to find if I make any mistake, but I can't one.This is the input and I put the labview program in attached file (temp4.vi).
    Could you help me find out why this happened?
    Thanks for your help altenbach!
    由 normanshi 在 08-19-2006 10:06 PM 上編輯的訊息
    Attachments:
    temp4.vi ‏191 KB
    ep.jpg ‏10 KB
    input.jpg ‏9 KB

  • Array in formula node

    Hello everyone,
    I am new in labview. I would like to display the coherence function with the correct frequency scale. For instance, I want it to be as follow: FreqAxis = 0:Fs/2/(N+1):Fs/2. where Fs is the sampling frequency and N the number of sample. I am trying to write using Formula node, but it is not working.
    Thanks for your time and your help.
    Axel

    Thanks again for your comments and your time .
    I have attached the .vi file and a screen-shot of the expected result (cohere2.png).
    Cheers
    Axel
    Attachments:
    Code_frequency.vi ‏531 KB
    cohere2.PNG ‏17 KB

Maybe you are looking for

  • GX720 barbone can't install Vista Ultimate 64

    hi everybody! i have gx720 barebone and i tried to install vista ultimate 64 bit on it! everything seems nothing happened ! but when i tried to activate it and restarting! its stops at ms boot screen !the green slide still running ! but it doesnt boo

  • Horizontal jagged lines in ProRes conversion from MPEG-2

    I converted an MPEG-2 from a DVD into a ProRes 422 Quick time through MPEG Streamclip in order to edit excerpts in FCP 7.  When imported in FCP it shows horizontal broken layers when I stop playing it, and full image when it runs.  The specs of the M

  • TS1538 Connecting Iphone to Itunes

    Hello, I just wanted to back -up my Iphone on Itunes as usual, but my Iphone does not come up in the Itunes sidebar and it is not connecting. The Iphone is connected to Windows fine, the Apple Mobile Device is running correctly, my USB cable is fine,

  • Displaying Japanese in Browser from MySQL query

    Hi All, I have the following jsp where I am trying to query a MySQL database for japanese words and display them on a web page. <html> <head> <%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%> <%@page import="java.sql.*" %> </head>

  • Twain problem

    In my ongoing (although so far unsuccessful) attempt to get my 4-year-old Canon MP500 to scan (it will print, though), I downloaded the latest TWAIN but when I try to install it, I get the following error: "Could not complete your request because Pho