[OCaml, lablgtk2, lablrsvg] My program doesn't compile (solved)

Hi,
I wrote few months ago (I used Ubuntu at that time, I just have installed ArchLinux one week ago) a little OCaml program which makes use of the lablgtk2 and lablrsvg libraries (OCaml bindings to gtk2 and rsvg).
I installed ocaml and lablgtk2 (which normally contains lablrsvg, librsvg being flagged as a dependency), but when I try to compile, I get an error :
$ ocamlc -w ys -I +lablgtk2 lablgtk.cma gtkInit.cmo lablrsvg.cma unix.cma entrelacs.cmo io.cmo entrelacs_IHM.ml -o Entrelacs
File "entrelacs_IHM.ml", line 1, characters 0-1:
Error: The file /usr/lib/ocaml/lablgtk2/lablrsvg.cma is not a bytecode object file
make: *** [Entrelacs] Erreur 2
The others files entrelacs.cmo and io.cmo doesn't need lablgtk2 (nor lablrsvg), and they compiled fine.
In /usr/lib/ocaml/lablgtk2/, the file lablrsvg.cma exists, and `file' tells me that this is an "Objective caml library file (.cma) (Version 007)"
The same program compiled fine when I used Ubuntu.
What's wrong?
Thank you
(solved after the update of lablgtk2 today)
Fractal
Last edited by Fractal (2009-09-10 08:22:31)

Things tend to move fasterYep... until something goes wrong... then you're completely stuffed, because you have no idea what's actually happening, because the idjit IDE is hiding all the gory details... it doesn't even tell you what it's doing, let alone how it's doing it, or what to do when it fails.
Another argument for the command line is that it's simple. There are 16 distinct dialogues involved in adding a new jar to a library in jBuilder... There may well be less than 16 characters in the equivalent edition to the equivalent build command line. That's an extreme case, I admit, but it goes to disprove the notion that IDE's are simpler for noobs.
Also, it's easier to get help on command line usage... because it's all text based you can just copy & paste the problematic command and it's output, and the eggspurts (tm) can do likewise with a response... and there are limited number of command lines out there... and *nix, windows, and mac cover maybe 99.5% of java users... and the eggspurts are likely to know all three (colectively if not as individuals) fairly well, because they deal with them all day every day.
My belief is that noob's are better off at the command line until such time as they need (not just want to play with) a visual debugger... at which time its time to download netbeans and eclipse, and see which one suits you better... if you have money to splurge I'd also evaluate intelliJ... But avoid jBuilder, 2008 is total carp! The FREE eclipse is (IMHO) "nicer to use", and it has a LOT less bugs.
Cheers. Keith.

Similar Messages

  • Wine Doesn't Compile [SOLVED]

    Normally I would have stuck with Wine 1.1.11 in the official repository, but I want to try the stable version. However, whenever I try to compile ANY version of wine, it says that gcc failed and that it could not compile the dlls...
    Last edited by ShadowKyogre (2008-12-24 20:35:02)

    Okay, I'll recompile it again and give the errors.
    audio.o: In function `ESD_CloseWaveInDevice':
    audio.c:(.text+0x20f4): undefined reference to `esd_close'
    audio.o: In function `ESD_widMessage':
    audio.c:(.text+0x2d38): undefined reference to `esd_record_stream'
    audio.o: In function `ESD_CloseWaveOutDevice':
    audio.c:(.text+0x3044): undefined reference to `esd_close'
    audio.o: In function `ESD_wodMessage':
    audio.c:(.text+0x44b8): undefined reference to `esd_play_stream'
    audio.o: In function `ESD_WaveInit':
    audio.c:(.text+0x4893): undefined reference to `esd_open_sound'
    audio.c:(.text+0x48a9): undefined reference to `esd_close'
    collect2: ld returned 1 exit status
    winegcc: gcc failed
    make[2]: *** [wineesd.drv.so] Error 2
    make[2]: Leaving directory `/home/shadowkyogre/Desktop/wine-stable/src/wine-1.0.1/dlls/wineesd.drv'
    make[1]: *** [wineesd.drv] Error 2
    make[1]: Leaving directory `/home/shadowkyogre/Desktop/wine-stable/src/wine-1.0.1/dlls'
    make: *** [dlls] Error 2
    Not sure if the first few lines of audio are important or not.
    Last edited by ShadowKyogre (2008-12-24 17:40:57)

  • Timer Class in jsdk 1.4 w2000 doesn't compile

    Since this is based in the tutorial, shouldn't be a big deal but I spent the whole day looking for a solution. Please help!
    The tutorial presents this program:
    //1.3
    import java.util.timer;
    public class Problem {
    public static void main(String[] args) {
    final Timer timer = new Timer();
    timer.schedule(new TimerTask(), 5000);
    System.out.println("In 5 seconds this application will exit. ");
         public class TimerTask implements Timer {
    public void run() {
    System.out.println("Exiting.");
    timer.cancel();
    My problem starts because java.util doesn't have the timer class:
    Problem.java:2: Class java.util.timer not found in import.
    import java.util.timer;
    ^
    Now, JSDK 1.4 doesn't have timer as a package, but as a class, nevertheless, the instruction:
    import java.util.*; // instead of java.util.Timer
    doesn't compile because
    Problem.java:10: Interface Timer of inner class Problem. TimerTask not found.
    Problem.java:6: Class Timer not found in type declaration.
    I think Timer should be expressed as abstract, but how?
    I'm new in Java and feel a little frustrated...

    >
    ProblemSolved.java:3: Class java.util.Timer not found
    in import.
    import java.util.Timer;
    ^
    1 error
    Then you are not using java 1.3. You are using something before that.
    for the Timer and
    javac IteratorDemo.javaIteratorDemo.java:1: Interface java.util.Iterator of
    class IteratorDemo not foun
    d.
    public class IteratorDemo implements
    java.util.Iterator {
    ^
    1 error
    And this suggests that you are using something before 1.2.
    Just a thought...
    Windows comes with the MS version of java, which matches something like 1.1.6. It is in the path. So does you path put the jdk path first or last?

  • Getting an error when running my program but it compiles.

    Hey guys, I'm having a problem running the program. Everything compiles correctly, but then I get the error code linked below. Everything I think is correct here. Any ideas? I posted CinReader as well in case you wanted to try compiling and running it yourself.
    Thanks
    public class TextShuffleLevel
         private String jumble;
         private String [] matchString;
         public TextShuffleLevel ()
              jumble = "dunops";
              matchString = new String[5];
              matchString[0] = new String("abound");
              matchString[1] = new String("bound");
              matchString[2] = new String("undo");
              matchString[3] = new String("band");
              matchString[4] = new String("bond");
         public TextShuffleLevel (int whichDefaultLevel)
              if (whichDefaultLevel == 1)
                   jumble = "dunops";
                   matchString = new String[5];
                   matchString[0] = new String("abound");
                   matchString[1] = new String("bound");
                   matchString[2] = new String("undo");
                   matchString[3] = new String("band");
                   matchString[4] = new String("bond");
              else if (whichDefaultLevel == 2)
                   jumble = "srcaso";
                   matchString = new String[11];
                   matchString[0] = new String("across");
                   matchString[1] = new String("crass");
                   matchString[2] = new String("cross");
                   matchString[3] = new String("scars");
                   matchString[4] = new String("soars");
                   matchString[5] = new String("arcs");
                   matchString[6] = new String("soar");
                   matchString[7] = new String("scar");
                   matchString[8] = new String("oars");
                   matchString[9] = new String("cars");
                   matchString[10] = new String("orcs");
              else
                   jumble = "eplcis";
                   matchString = new String[19];
                   matchString[0] = new String("splice");
                   matchString[1] = new String("spiel");
                   matchString[2] = new String("plies");
                   matchString[3] = new String("slice");
                   matchString[4] = new String("clips");
                   matchString[5] = new String("epics");
                   matchString[6] = new String("spice");
                   matchString[7] = new String("epic");
                   matchString[8] = new String("lice");
                   matchString[9] = new String("slip");
                   matchString[10] = new String("clip");
                   matchString[11] = new String("pile");
                   matchString[12] = new String("lisp");
                   matchString[13] = new String("pies");
                   matchString[14] = new String("isle");
                   matchString[15] = new String("lips");
                   matchString[16] = new String("lies");
                   matchString[17] = new String("ices");
                   matchString[18] = new String("pics");
         public TextShuffleLevel (String newJumble, String [] newMatchString)
              jumble = newJumble;
              matchString = newMatchString;
         /* This is the nasty one */
         public boolean findMatch (String matchTry)
              boolean foundMatch = false;
              for (int i=0; i<matchString.length; i++)
                   if (matchTry.equalsIgnoreCase(matchString))
                        foundMatch = true;
                        break;
              return foundMatch;
         public void setJumble (String newJumble)
              jumble = newJumble;
         public void setMatchStrings (String [] newMatchString)
              matchString = newMatchString;
         public String getJumble ()
              return jumble;
         public int getJumbleLength ()
              return jumble.length();
         public int getNumberOfMatches ()
              return matchString.length;
         public String[] getMatchString ()
              return matchString;
    public class TextShuffleGame
         private int playerLevel = 1; // start them on level 1
         private CinReader reader;
         private TextShuffleLevel l1;
         private TextShuffleLevel l2;
         private TextShuffleLevel l3;
         private TextShuffleLevel onTheFly;
         public TextShuffleGame ()
              reader = new CinReader();
              // Using Statically Set Levels
              l1 = new TextShuffleLevel(1);
              l2 = new TextShuffleLevel(2);
              l3 = new TextShuffleLevel(3);
              // this one allows for a 'custom' level
              String fly[] = {"tea","at", "ate"};
              onTheFly = new TextShuffleLevel("eta", fly);
         //Setup for levels
         public void go ()
              boolean quit = false;
              char choice = 'z';
              int lastLevel = 0;
              while (quit == false)
                   lastLevel = playerLevel;
                   if (playerLevel == 1)
                        play(l1);
                   else if (playerLevel == 2)
                        play(l2);
                   else if (playerLevel == 3)
                        play(l3);
                   else
                        play(onTheFly);
                   if (lastLevel == playerLevel)
                        System.out.print("Play the level again");
                   else
                        System.out.print("Play next level");
                   System.out.print("(y/n)? ");
                   choice = reader.readChar();
                   if (choice == 'N' || choice == 'n')
                        quit = true;
         //Playing each level the same
         public void play (TextShuffleLevel theLevel)
              int numGuesses = 0;
              int numCorrect = 0;
              String userString = "";
              System.out.println("What " + theLevel.getJumbleLength() + "-letter words can you get out of " +
                                                 theLevel.getJumble() + "?\n");
              while (numGuesses < 5 && numCorrect < theLevel.getNumberOfMatches())
                        System.out.print("Enter a string: ");
                        userString = reader.readString();
                        if (theLevel.findMatch(userString) == true)
                             System.out.println("Great! A match!");
                             numCorrect = numCorrect + 1;
                        else
                             System.out.println("Drat... not a match");
                             numGuesses = numGuesses + 1;
              if (numCorrect == theLevel.getNumberOfMatches())
                   System.out.println("Terrific! You are ready to try a harder jumble");
                   playerLevel = playerLevel + 1;
         /* FOR TESTING ONLY -- TO BE REMOVED FOR RELEASE */
         public static void main (String [] args)
              TextShuffleGame tsg = new TextShuffleGame();
              tsg.go();
    import java.io.*;
    import java.util.*;
    public class CinReader
         private static final int INT_MESSAGE = 0;
         private static final int DOUBLE_MESSAGE = 1;
         private static final int CHAR_MESSAGE = 2;
         private static final int STRING_MESSAGE = 3;
         private static final int BOOLEAN_MESSAGE = 4;
         private static final String DEFAULT_ERROR_MESSAGE = "Please reenter. ";
         private String prompt = "> ";
         private String [] errorMessages;
         public CinReader ()
              prompt = "> ";
              setDefaultMessages();
         public CinReader (String newPrompt)
              prompt = newPrompt;
              setDefaultMessages();
         public CinReader (String newPrompt, String [] newErrorMessages)
              prompt = newPrompt;
              if (newErrorMessages != null)
                   setErrorMessages(newErrorMessages);
              else
                   setDefaultMessages();
         public void setPrompt (String newPrompt)
              prompt = newPrompt;
         public void setErrorMessages (String [] newErrorMessages)
              if (newErrorMessages != null)
                   int diff = errorMessages.length - newErrorMessages.length;
                   // NEED A MINIMUM OF 5 ERROR MESSAGES TO AVOID ERRORS
                   if (diff > 0)
                        errorMessages = new String[5];
                        for (int i=0; i<5; i++)
                             if (i < newErrorMessages.length)
                                  errorMessages[i] = new String(newErrorMessages);
                             else
                                  errorMessages[i] = new String(DEFAULT_ERROR_MESSAGE);
                   else
                        errorMessages = newErrorMessages;
         public void setErrorMessage (int idx, String msg)
              if (idx >= 0 && idx < errorMessages.length)
                   errorMessages[idx] = msg;
         public void setErrorMessageString (String msg)
              errorMessages[STRING_MESSAGE] = msg;
         public void setErrorMessageInt (String msg)
              errorMessages[INT_MESSAGE] = msg;
         public void setErrorMessageDouble (String msg)
              errorMessages[DOUBLE_MESSAGE] = msg;
         public void setErrorMessageChar (String msg)
              errorMessages[CHAR_MESSAGE] = msg;
         public void setErrorMessageBoolean (String msg)
              errorMessages[BOOLEAN_MESSAGE] = msg;
         public String readString()
              char theChar = 'x';
              String result = "";
              boolean done = false;
              while (!done)
                   theChar = nextChar();
                   if (theChar == '\n')
                        done = true;
                   else if (theChar == '\r'){}
                   else
                        result = result + theChar;
              return result;
         public String readString (boolean allowEmpty)
              String result = readString();
              if (!allowEmpty)
                   while (result.length() == 0)
                        System.out.println("Empty input not allowed. " + errorMessages[STRING_MESSAGE]);
                        System.out.print(prompt);
                        result = readString();
              return result;
         public String readString (int charLimit)
              String result = readString();
              if (result.length() > charLimit)
                   result = result.substring(0, charLimit);
              return result;
         public String readString (boolean allowEmpty, int charLimit)
              String result = readString(allowEmpty);
              if (result.length() > charLimit)
                   result = result.substring(0, charLimit);
              return result;
         public int readInt()
              String inputString = "";
              int number = 0;
              boolean done = false;
              while (!done)
                   try
                        inputString = readString();
                        inputString = inputString.trim();
                        number = (Integer.valueOf(inputString).intValue());
                        done = true;
                   catch (NumberFormatException e)
                        System.out.println("Input is not an integer. " + errorMessages[INT_MESSAGE]);
                        System.out.print(prompt);
              return number;
         public int readInt(int min, int max)
              String inputString = "";
              int number = 0;
              boolean done = false;
              while (!done)
                   try
                        inputString = readString();
                        inputString = inputString.trim();
                        number = (Integer.valueOf(inputString).intValue());
                        if (number < min || number > max)
                             System.out.println("Please enter an integer between " + min + " and " + max);
                        else
                             done = true;
                   catch (NumberFormatException e)
                        System.out.println("Input is not an integer. " + errorMessages[INT_MESSAGE]);
                        System.out.print(prompt);
              return number;
         public double readDouble()
              String inputString = "";
              double number = 0;
              boolean done = false;
              while (!done)
                   try
                        inputString = readString();
                        inputString = inputString.trim();
                        number = (Double.valueOf(inputString).doubleValue());
                        done = true;
                   catch (NumberFormatException e)
                        System.out.println("Input is not an integer. " + errorMessages[DOUBLE_MESSAGE]);
                        System.out.print(prompt);
              return number;
         public char readChar()
              boolean done = false;
              String inputString = "";
              char nonWhite = 'x';
              while (!done)
                   inputString = readString();
                   inputString = inputString.trim();
                   if (inputString.length() != 1)
                        System.out.println("Input must be a single character. " + errorMessages[CHAR_MESSAGE]);
                        System.out.print(prompt);
    else
    nonWhite = (inputString.charAt(0));
    done = true;
              return nonWhite;
         public char readChar (String range)
              char theChar = 'x';
              boolean done = false;
              while (!done)
                   theChar = readChar();
                   for (int i=0; i<range.length(); i++)
                        if (theChar == range.charAt(i))
                             done = true;
                             break;
                   if (!done)
                        System.out.print("Invalid input. Please enter one of the following -> ");
                        for (int i=0; i<range.length(); i++)
                             System.out.print(range.charAt(i) + " ");
                        System.out.print("\n" + prompt);
              return theChar;
         public boolean readBoolean()
              boolean done = false;
              String inputString = "";
              boolean result = false;
              while (!done)
                   inputString = readString(false);
                   inputString = inputString.trim();
                   if (inputString.equalsIgnoreCase("true") || inputString.equalsIgnoreCase("t"))
                        result = true;
                        done = true;
                   else if (inputString.equalsIgnoreCase("false") || inputString.equalsIgnoreCase("f"))
                        result = false;
                        done = true;
                   else
                        System.out.println("Input must be [t]rue or [f]alse. " + errorMessages[BOOLEAN_MESSAGE]);
                        System.out.print(prompt);
              return result;
         private void setDefaultMessages ()
              errorMessages = new String[5];
              for (int i=0; i<errorMessages.length; i++)
                   errorMessages[i] = new String(DEFAULT_ERROR_MESSAGE);
         private char nextChar()
              int charAsInt = -1;
              try
                   charAsInt = System.in.read();
              catch(IOException e)
                   System.out.println(e.getMessage());
                   System.out.println("Fatal error. Exiting program.");
                   System.exit(0);
              return (char)charAsInt;

    Ok, here's what I did using the JSE 8.1 IDE.
    1) I copied your code into a .java file named "TextShuffleGame".
    It generated about half a dozon errors.
    There are three classes in the program:
    TextShuffleLevel
    TextShuffleGame
    CinReader
    Each of these classes is declared "public" and I got the same error message on each one:
    "class ... is public, should be declared in a file name ... .java"
    so, I...
    2) tried changing them to "private".
    It then said: "modifier private not allowed here".
    so, I...
    3) deleted the modifiers for these three classes and left them as just class. No errors.
    The next two errors had to do with the two import statements:
    "import java.io.*;" and "import java.util.*;".
    It said: "'class' or 'identifier' expected" for both. So, I...
    4) moved them to the top of the source file.
    Didn't help at first. So, I...
    5) fiddle around with them a bit.
    I tried "java.io;" and "java.util;" and then "java.*;" by itself. Still got errors. So, I put them back as you had them and for some mysterious reason, my editor decided they were fine. oO
    This also corrected the last errors in the "CinReader" class. Here is the error-free code I now have in my "TextShuffleGame.java" file:
    import java.io.*;
    import java.util.*;
    class TextShuffleLevel
         private String jumble;
         private String [] matchString;
         public TextShuffleLevel ()
              jumble = "dunops";
              matchString = new String[5];
              matchString[0] = new String("abound");
              matchString[1] = new String("bound");
              matchString[2] = new String("undo");
              matchString[3] = new String("band");
              matchString[4] = new String("bond");
         public TextShuffleLevel (int whichDefaultLevel)
              if (whichDefaultLevel == 1)
                   jumble = "dunops";
                   matchString = new String[5];
                   matchString[0] = new String("abound");
                   matchString[1] = new String("bound");
                   matchString[2] = new String("undo");
                   matchString[3] = new String("band");
                   matchString[4] = new String("bond");
              else if (whichDefaultLevel == 2)
                   jumble = "srcaso";
                   matchString = new String[11];
                   matchString[0] = new String("across");
                   matchString[1] = new String("crass");
                   matchString[2] = new String("cross");
                   matchString[3] = new String("scars");
                   matchString[4] = new String("soars");
                   matchString[5] = new String("arcs");
                   matchString[6] = new String("soar");
                   matchString[7] = new String("scar");
                   matchString[8] = new String("oars");
                   matchString[9] = new String("cars");
                   matchString[10] = new String("orcs");
              else
                   jumble = "eplcis";
                   matchString = new String[19];
                   matchString[0] = new String("splice");
                   matchString[1] = new String("spiel");
                   matchString[2] = new String("plies");
                   matchString[3] = new String("slice");
                   matchString[4] = new String("clips");
                   matchString[5] = new String("epics");
                   matchString[6] = new String("spice");
                   matchString[7] = new String("epic");
                   matchString[8] = new String("lice");
                   matchString[9] = new String("slip");
                   matchString[10] = new String("clip");
                   matchString[11] = new String("pile");
                   matchString[12] = new String("lisp");
                   matchString[13] = new String("pies");
                   matchString[14] = new String("isle");
                   matchString[15] = new String("lips");
                   matchString[16] = new String("lies");
                   matchString[17] = new String("ices");
                   matchString[18] = new String("pics");
         public TextShuffleLevel (String newJumble, String [] newMatchString)
              jumble = newJumble;
              matchString = newMatchString;
         /* This is the nasty one */
         public boolean findMatch (String matchTry)
              boolean foundMatch = false;
              for (int i=0; i<matchString.length; i++)
                   if (matchTry.equalsIgnoreCase(matchString))
                        foundMatch = true;
                        break;
              return foundMatch;
         public void setJumble (String newJumble)
              jumble = newJumble;
         public void setMatchStrings (String [] newMatchString)
              matchString = newMatchString;
         public String getJumble ()
              return jumble;
         public int getJumbleLength ()
              return jumble.length();
         public int getNumberOfMatches ()
              return matchString.length;
         public String[] getMatchString ()
              return matchString;
    class TextShuffleGame
         private int playerLevel = 1; // start them on level 1
         private CinReader reader;
         private TextShuffleLevel l1;
         private TextShuffleLevel l2;
         private TextShuffleLevel l3;
         private TextShuffleLevel onTheFly;
         public TextShuffleGame ()
              reader = new CinReader();
              // Using Statically Set Levels
              l1 = new TextShuffleLevel(1);
              l2 = new TextShuffleLevel(2);
              l3 = new TextShuffleLevel(3);
              // this one allows for a 'custom' level
              String fly[] = {"tea","at", "ate"};
              onTheFly = new TextShuffleLevel("eta", fly);
         //Setup for levels
         public void go ()
              boolean quit = false;
              char choice = 'z';
              int lastLevel = 0;
              while (quit == false)
                   lastLevel = playerLevel;
                   if (playerLevel == 1)
                        play(l1);
                   else if (playerLevel == 2)
                        play(l2);
                   else if (playerLevel == 3)
                        play(l3);
                   else
                        play(onTheFly);
                   if (lastLevel == playerLevel)
                        System.out.print("Play the level again");
                   else
                        System.out.print("Play next level");
                   System.out.print("(y/n)? ");
                   choice = reader.readChar();
                   if (choice == 'N' || choice == 'n')
                        quit = true;
         //Playing each level the same
         public void play (TextShuffleLevel theLevel)
              int numGuesses = 0;
              int numCorrect = 0;
              String userString = "";
              System.out.println("What " + theLevel.getJumbleLength() + "-letter words can you get out of " +
                                                 theLevel.getJumble() + "?\n");
              while (numGuesses < 5 && numCorrect < theLevel.getNumberOfMatches())
                        System.out.print("Enter a string: ");
                        userString = reader.readString();
                        if (theLevel.findMatch(userString) == true)
                             System.out.println("Great! A match!");
                             numCorrect = numCorrect + 1;
                        else
                             System.out.println("Drat... not a match");
                             numGuesses = numGuesses + 1;
              if (numCorrect == theLevel.getNumberOfMatches())
                   System.out.println("Terrific! You are ready to try a harder jumble");
                   playerLevel = playerLevel + 1;
         /* FOR TESTING ONLY -- TO BE REMOVED FOR RELEASE */
         public static void main (String [] args)
              TextShuffleGame tsg = new TextShuffleGame();
              tsg.go();
    class CinReader
         private static final int INT_MESSAGE = 0;
         private static final int DOUBLE_MESSAGE = 1;
         private static final int CHAR_MESSAGE = 2;
         private static final int STRING_MESSAGE = 3;
         private static final int BOOLEAN_MESSAGE = 4;
         private static final String DEFAULT_ERROR_MESSAGE = "Please reenter. ";
         private String prompt = "> ";
         private String [] errorMessages;
         public CinReader ()
              prompt = "> ";
              setDefaultMessages();
         public CinReader (String newPrompt)
              prompt = newPrompt;
              setDefaultMessages();
         public CinReader (String newPrompt, String [] newErrorMessages)
              prompt = newPrompt;
              if (newErrorMessages != null)
                   setErrorMessages(newErrorMessages);
              else
                   setDefaultMessages();
         public void setPrompt (String newPrompt)
              prompt = newPrompt;
         public void setErrorMessages (String [] newErrorMessages)
              if (newErrorMessages != null)
                   int diff = errorMessages.length - newErrorMessages.length;
                   // NEED A MINIMUM OF 5 ERROR MESSAGES TO AVOID ERRORS
                   if (diff > 0)
                        errorMessages = new String[5];
                        for (int i=0; i<5; i++)
                             if (i < newErrorMessages.length)
                                  errorMessages[i] = new String(newErrorMessages[i]);
                             else
                                  errorMessages[i] = new String(DEFAULT_ERROR_MESSAGE);
                   else
                        errorMessages = newErrorMessages;
         public void setErrorMessage (int idx, String msg)
              if (idx >= 0 && idx < errorMessages.length)
                   errorMessages[idx] = msg;
         public void setErrorMessageString (String msg)
              errorMessages[STRING_MESSAGE] = msg;
         public void setErrorMessageInt (String msg)
              errorMessages[INT_MESSAGE] = msg;
         public void setErrorMessageDouble (String msg)
              errorMessages[DOUBLE_MESSAGE] = msg;
         public void setErrorMessageChar (String msg)
              errorMessages[CHAR_MESSAGE] = msg;
         public void setErrorMessageBoolean (String msg)
              errorMessages[BOOLEAN_MESSAGE] = msg;
         public String readString()
              char theChar = 'x';
              String result = "";
              boolean done = false;
              while (!done)
                   theChar = nextChar();
                   if (theChar == '\n')
                        done = true;
                   else if (theChar == '\r'){}
                   else
                        result = result + theChar;
              return result;
         public String readString (boolean allowEmpty)
              String result = readString();
              if (!allowEmpty)
                   while (result.length() == 0)
                        System.out.println("Empty input not allowed. " + errorMessages[STRING_MESSAGE]);
                        System.out.print(prompt);
                        result = readString();
              return result;
         public String readString (int charLimit)
              String result = readString();
              if (result.length() > charLimit)
                   result = result.substring(0, charLimit);
              return result;
         public String readString (boolean allowEmpty, int charLimit)
              String result = readString(allowEmpty);
              if (result.length() > charLimit)
                   result = result.substring(0, charLimit);
              return result;
         public int readInt()
              String inputString = "";
              int number = 0;
              boolean done = false;
              while (!done)
                   try
                        inputString = readString();
                        inputString = inputString.trim();
                        number = (Integer.valueOf(inputString).intValue());
                        done = true;
                   catch (NumberFormatException e)
                        System.out.println("Input is not an integer. " + errorMessages[INT_MESSAGE]);
                        System.out.print(prompt);
              return number;
         public int readInt(int min, int max)
              String inputString = "";
              int number = 0;
              boolean done = false;
              while (!done)
                   try
                        inputString = readString();
                        inputString = inputString.trim();
                        number = (Integer.valueOf(inputString).intValue());
                        if (number < min || number > max)
                             System.out.println("Please enter an integer between " + min + " and " + max);
                        else
                             done = true;
                   catch (NumberFormatException e)
                        System.out.println("Input is not an integer. " + errorMessages[INT_MESSAGE]);
                        System.out.print(prompt);
              return number;
         public double readDouble()
              String inputString = "";
              double number = 0;
              boolean done = false;
              while (!done)
                   try
                        inputString = readString();
                        inputString = inputString.trim();
                        number = (Double.valueOf(inputString).doubleValue());
                        done = true;
                   catch (NumberFormatException e)
                        System.out.println("Input is not an integer. " + errorMessages[DOUBLE_MESSAGE]);
                        System.out.print(prompt);
              return number;
         public char readChar()
              boolean done = false;
              String inputString = "";
              char nonWhite = 'x';
              while (!done)
                   inputString = readString();
                   inputString = inputString.trim();
                   if (inputString.length() != 1)
                        System.out.println("Input must be a single character. " + errorMessages[CHAR_MESSAGE]);
                        System.out.print(prompt);
    else
    nonWhite = (inputString.charAt(0));
    done = true;
              return nonWhite;
         public char readChar (String range)
              char theChar = 'x';
              boolean done = false;
              while (!done)
                   theChar = readChar();
                   for (int i=0; i<range.length(); i++)
                        if (theChar == range.charAt(i))
                             done = true;
                             break;
                   if (!done)
                        System.out.print("Invalid input. Please enter one of the following -> ");
                        for (int i=0; i<range.length(); i++)
                             System.out.print(range.charAt(i) + " ");
                        System.out.print("\n" + prompt);
              return theChar;
         public boolean readBoolean()
              boolean done = false;
              String inputString = "";
              boolean result = false;
              while (!done)
                   inputString = readString(false);
                   inputString = inputString.trim();
                   if (inputString.equalsIgnoreCase("true") || inputString.equalsIgnoreCase("t"))
                        result = true;
                        done = true;
                   else if (inputString.equalsIgnoreCase("false") || inputString.equalsIgnoreCase("f"))
                        result = false;
                        done = true;
                   else
                        System.out.println("Input must be [t]rue or [f]alse. " + errorMessages[BOOLEAN_MESSAGE]);
                        System.out.print(prompt);
              return result;
         private void setDefaultMessages ()
              errorMessages = new String[5];
              for (int i=0; i < errorMessages.length; i++)
                   errorMessages[i] = new String(DEFAULT_ERROR_MESSAGE);
         private char nextChar()
              int charAsInt = -1;
              try
                   charAsInt = System.in.read();
              catch(IOException e)
                   System.out.println(e.getMessage());
                   System.out.println("Fatal error. Exiting program.");
                   System.exit(0);
              return (char)charAsInt;
    Hope that helps.

  • I paid for an upgrade to the Adobe PDF Pack, but the program doesn't recognize that it has been paid for.

    I paid for an Adobe PDF Pack and received an order number, but the program doesn't recognize the upgrade and will not run for me.

    If you're in the U.S., try calling 1-800-MYAPPLE.

  • I recently brought a HD PVR, i put in the disk to install the hard drive and it said " This program doesn't support DOS Mode! how do i get out of DOS Mode?? Please Help

    I recently brought a HD PVR, i put in the disk to install the hard drive and it said " This program doesn't support DOS Mode! how do i get out of DOS Mode?? Please Help

    What exactly are you trying to do? PVRs are for recording from TV not computers.
    Either way, if it's complaining about DOS mode, it's Windows oriented software and not Mac compatible.

  • Vegastrike SVN - doesn't compile

    Hello everybody
    I have problem with vegastrike:
    http://aur.archlinux.org/packages.php?ID=16927
    It simply doesn't compile.
    ==> Setting up build environment...
    ==> Starting make...
    patching file boost/1_35/boost/mpl/apply.hpp
    patching file boost/1_35/boost/mpl/apply_wrap.hpp
    patching file boost/1_35/boost/mpl/aux_/full_lambda.hpp
    patching file boost/1_35/boost/mpl/aux_/numeric_op.hpp
    patching file boost/1_35/boost/mpl/bind.hpp
    patching file src/cmd/basecomputer.cpp
    Hunk #1 FAILED at 3142.
    1 out of 1 hunk FAILED -- saving rejects to file src/cmd/basecomputer.cpp.rej
    ==> BŁĄD: Budowanie nie powiodło się.
    src/cmd/basecomputer.cpp.rej says
    --- src/cmd/basecomputer.cpp 2009-07-17 20:59:40.166058029 +0200
    +++ src/cmd/basecomputer.cpp 2009-07-17 21:06:02.696008744 +0200
    @@ -3142,7 +3142,7 @@
    return s1.st_mtime - s2.st_mtime;
    -#if defined(_WIN32) && !defined(__CYGWIN__)
    +#if (__GLIBC__>2 || __GLIBC_MINOR__>=10) || (defined(_WIN32) && !defined(CYGWIN))
    typedef int (*scancompare) ( const struct dirent **v1, const struct dirent **v2 );
    #else
    typedef int (*scancompare) ( const void *v1, const void *v2 );
    Anybody?
    I have boost package installed.

    Yep - I have 0.5 package from arch-games repo, but I want SVN

  • Generated PLSQL doesn't compile

    I'm using OWB 10.2.0.1.0 with a client version of 10.2.0.1.31.
    In a mapping I'm using a constant with three outputs, first two are numeric and the third is a varchar2. When the plsql is generated it doesn't compile because the constant of type varchar2 isn't enclosed in single quotes.
    I'm new to OWB. Is this a documented problem. I can work around by enclosing the varchar2 constant with single quotes but if this is a problem and is fixed then I'll have to change all my constants that are character datatypes.
    Thanks
    Paddy

    Works great.
    My lack of knowledge, however on the generation I would have thought it not unreasonable for the UI to not allow literals to be entered without single quotes or in the code generation it would have recognised that this value is a datatype of char and create the quotes for it.
    Thanks
    Paddy

  • Burst program doesn't send mail

    Hi,
    we are using a burst concurrent program which will send output to user as an attachment in the mail. Now the problem is, if the output data is huge(say >10MB),the program doesn't send the mail. But the program gets complete normal.
    we are using excel as a output format.
    Is there a way to get huge data in a mail?
    Thanks in advance.

    Sorry, but I just have to ask the question: why would you want to send over 10MB of data as a report result to a user? That's a humungous amount of data...and basically has nothing to do with BI anymore. That's just dumping data into someones inbox.
    Cheers,
    Christi@n

  • IPE doesn't compile

    Hi,
    I just stumbled upon IPE and would like to try it. It's available in AUR (this is why I love AUR :-), but sadly it doesn't compile fully. It finishes with:
    Compiling image.cpp...
    g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fpic -DIPEUI_QT -I../../include -c -o ../../../build/obj/ipelets/image.o image.cpp
    image.cpp:33:23: fatal error: QFileDialog: No such file or directory
    compilation terminated.
    make[1]: *** [../../../build/obj/ipelets/image.o] Error 1
    make[1]: Leaving directory `/tmp/yaourt-tmp-andre/aur-ipe/src/ipe-7.1.1/src/ipelets/image'
    make: *** [ipelets/image] Error 2
    It seems, that the same error appears while manual compilation. It is quite active developed and also the AUR entries are quite new, so I hope someone involved or who had the same problem can help me.
    Regards,
    André

    https://aur.archlinux.org/packages.php?ID=7971 installed just fine using makepkg.
    QFileDialog is provided by qt - do you have it installed?

  • Delphi doesn't compile the examples for DIO32HS

    Delphi doesn't compile the examples for DIO32HS
    Some libraries appear to be required,
    but there are none supplied
    According to the manual, one ActiveX should be sufficient.
    What version is the source provided ?

    The NI CD is Version 6.9.2
    There are examples : \National Instruments\NI-DAQ\Examples\Delphi
    There is no mention which Version of Delphi,
    I have 3,5 and 6. However there should be components
    to be installed into Delphi as DigitalWaveformContinous
    requires TCWNumEdit, TCWDI and so on.
    It also requires the units CWUIControlsLib_TLB,
    CWAnalysisControlsLib_TLB, CWDAQControlsLib_TLB which are not part of Delphi istself but have to be provided
    by NI.
    Today I'm going to try Borland C++Builder, of which
    I have version 4 and 5. This will also require some
    components to be installed in BCB, I couldn't find them
    yet.
    \National Instruments\NI-DAQ\Examples\BorlandC
    BTW: this ActiveX that was talked about couldn't be
    found on the drive either. no *.ocx
    It cannot be that hard. I just want a procedure
    to setup the PCI-DIO-32HS, in terms of what is input
    and output, how the handshaking is done and then
    read/write to the port.
    Rene

  • Programming in C compiling with gcc

    Hi there,
    I've been working on this for a few days but can't seem to figure it out. I am taking an intro to programming class in which we are supposed to write command line C programs, to be compiled with gcc and tested on Linux's, specifically using Kate.
    I have installed Xcode and the Command Line Tools and have checked in xcode preferences and confirmed the install of command line tools worked. For some reason my "developer" folder is not where it should be, in usr.
    I know that v4 of Xcode works differently in this way but I am confused as to what this means for me and trying to write in C on my mac!
    Thanks everyone

    Xcode is a plain old OS X application now.
    There is no developer folder.

  • Uninstalled Itunes and now I get message 'Thank you for downloading Itunes' when I try to install. But the program doesn't install.  Any ideas?

    Uninstalled Itunes and now I get message 'Thank you for downloading Itunes' when I try to install. But the program doesn't install.  Any ideas?

    See the further information area of Troubleshooting issues with iTunes for Windows updates.
    tt2

  • Addes servlet.jar but still doesn't compile

    I'm building a servlet and therefor I added the servlet.jar file in my java/lib directory. After changing the classpath (adding the path to the lib directory), my servlet still doesn't compile. What could be wrong?
    debeumers

    to add a jar to the classpath, you must add the full path to the jar, for example java/lib/servlet.jar

  • SAPGUI login scripting program doesn't work.

    I used a program which is called for sap login through local SAPGUI.
    I call this program, then sapgui is called and then ID and PW is filled with existing value.
    It worked well. however, we upgrade SAP frrom R/3 4.7 to ECC 6.0 and SAPGUI version is also changed.
    after uprading, my program doesn't work.
    although sapgui version is changed, my program can login R/3 4.7 server. but my program can't login ECC 6.0 server.
    In case of ECC 6.0 server, my program can call SAPGUI. however, it can't fill the ID and PW. so it cant login.
    I can't get the source of my program because I received only execution file.
    Can you suggest any solution? such as, change the dll file.
    Plz give me the solution!!!.

    Dear J-Philippe,
    I'm just getting started with SAP GUI Scripting through the COM interface and I seem to be running into the same issue.
    You seem to be referring to a work-around mentioned in the README (#4). I don't know where the README is located, could you (or somebody else) please post the work-around or the README or location thereof?
    By the way, here's the code I'm running (it's Python):
    import win32com.client
    wrapper = win32com.client.Dispatch("SapROTWr.SapROTWrapper")
    sap_gui = wrapper.GetROTEntry("SAPGUI")
    application = sap_gui.GetScriptingEngine
    connection = application.FindById("con[0]") # returns /app/con[0]
    session = connection.FindById("ses[0]") # throws exception
    The last statement fails with an exception "The control could not be found by id".
    When I use connection.Children(0) instead I get the exception "The enumerator of the collection cannot find an element with the specified index"
    Same results when using SapGui.ScriptingCtrl.1.
    Thanks!
    Edited by: brucevdk on Jan 31, 2011 7:51 PM
    I found the mentioned SAP note 1526624 somewhere (I don't yet have access to the official resource) and it made me think that perhaps I'm not dealing with the same issue. I'm also not sure what CreateObject is and if it's similar to the Dispatch functionality above (I'm just getting started with COM Programming). I'll play around with the recorder at work tomorrow to see if scripting works at all.

Maybe you are looking for

  • How to move my all files to one folder

    hi, I had created different folders in the acrobat.com. Now, I want to move all my files from all the folders to a different folder. How can I do this? there is not copy or move options available. Please help..

  • Syncing Contacts between iPhone 4 & Outlook

    iPhone 4. iOS 6.1.3 I have two Contact Groups on my iPhone: All Contacts & iPhone. (I am syncing to Outlook via iTunes.) 1. How can I force the phone to enter all new contacts into only the iPhone group? Currently, it seems that any new contact I add

  • Cisco 3650 Converged LAN/WLAN Design: Radius Authentication configuration example needed

    Hello Cisco-Experts, one of our customers would like to deploy Cisco3650-switches with integrated WLC-functionality. The platform is new to me and I have started to configure some basic settings. Unfortunately I cannot find information on how to impl

  • Installing BSD subsystem for OnyX 1.5.3

    Hi, I'm finding that Onyx 1.5.3 for Panther might be a very good choice for Mac optimization and customization. However, I'm not sure about this installer for it. It says I need to install or have BSD subsystem installed. Is that the developer tools

  • Workflow Ideas for Certificates?

    I'm sure this would be really easy to find if I knew what it was called. We have a local competition, and I have to make certificates for all the winners in all the categories. I have 88 categories, 3 winners in each category, and a handful of ties.